[Tux4kids-commits] [SCM] tuxhistory - Educational history game branch, master, updated. 3bf68a001830159904b13a298ce03ceae69c4c27
julio (none)
julio at julio-desktop.
Tue May 25 18:11:33 UTC 2010
The following commit has been merged in the master branch:
commit 3bf68a001830159904b13a298ce03ceae69c4c27
Author: julio <julio at julio-desktop.(none)>
Date: Tue May 25 12:51:53 2010 -0500
Copy of TuxMath
diff --git a/ABOUT-NLS b/ABOUT-NLS
new file mode 100644
index 0000000..83bc72e
--- /dev/null
+++ b/ABOUT-NLS
@@ -0,0 +1,1068 @@
+1 Notes on the Free Translation Project
+***************************************
+
+Free software is going international! The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
+
+ If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site. But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work on translations can contact the appropriate team.
+
+ When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used. The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+1.1 Quick configuration advice
+==============================
+
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+ ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed. So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation. Future versions of GNU `gettext' will
+very likely convey even more functionality. So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+ So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+1.2 INSTALL Matters
+===================
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU `gettext'. Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system already
+provides the GNU `gettext' functions. If not, the included GNU
+`gettext' library will be used. This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour. The commands:
+
+ ./configure --with-included-gettext
+ ./configure --disable-nls
+
+will, respectively, bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+ When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this. This might not be desirable. You should use
+the more recent version of the GNU `gettext' library. I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
+
+ ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+ The configuration process will not test for the `catgets' function
+and therefore it will not be used. The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+ Internationalized packages usually have many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+1.3 Using This Package
+======================
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination. If you happen to have the `LC_ALL' or some other
+`LC_xxx' environment variables set, you should unset them before
+setting `LANG', otherwise the setting of `LANG' will not have the
+desired effect. Here `LL' is an ISO 639 two-letter language code, and
+`CC' is an ISO 3166 two-letter country code. For example, let's
+suppose that you speak German and live in Germany. At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc. On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
+locales supported by your system for your language by running the
+command `locale -a | grep '^LL''.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
+ In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect. For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+1.4 Translating Teams
+=====================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://translationproject.org/', in the "Teams" area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended. For example, speakers of Swedish can send a
+message to `sv-request at li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around. If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `coordinator at translationproject.org' to
+reach the coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skills are praised more than
+programming skills, here.
+
+1.5 Available Packages
+======================
+
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of November
+2007. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo
+ +----------------------------------------------------+
+ Compendium | [] [] [] [] |
+ a2ps | [] [] [] [] [] |
+ aegis | () |
+ ant-phone | () |
+ anubis | [] |
+ ap-utils | |
+ aspell | [] [] [] [] [] |
+ bash | [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | |
+ bison | [] [] |
+ bison-runtime | [] |
+ bluez-pin | [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] [] [] |
+ console-tools | [] [] |
+ coreutils | [] [] [] [] |
+ cpio | |
+ cpplib | [] [] [] |
+ cryptonit | [] |
+ dialog | |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ fetchmail | [] [] () [] [] |
+ findutils | [] |
+ findutils_stable | [] [] [] |
+ flex | [] [] [] |
+ fslint | |
+ gas | |
+ gawk | [] [] [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] |
+ gettext-tools | [] [] |
+ gip | [] |
+ gliv | [] [] |
+ glunarclock | [] |
+ gmult | [] [] |
+ gnubiff | () |
+ gnucash | [] [] () () [] |
+ gnuedu | |
+ gnulib | [] |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | [] |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | |
+ gpe-clock | [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-filemanager | |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] |
+ gpsdrive | |
+ gramadoir | [] [] |
+ grep | [] [] |
+ gretl | () |
+ gsasl | |
+ gss | |
+ gst-plugins-bad | [] [] |
+ gst-plugins-base | [] [] |
+ gst-plugins-good | [] [] [] |
+ gst-plugins-ugly | [] [] |
+ gstreamer | [] [] [] [] [] [] [] |
+ gtick | () |
+ gtkam | [] [] [] [] |
+ gtkorphan | [] [] |
+ gtkspell | [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] |
+ herrie | [] |
+ hylafax | |
+ idutils | [] [] |
+ indent | [] [] [] [] |
+ iso_15924 | |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] [] [] |
+ jpilot | [] |
+ jtag | |
+ jwhois | |
+ kbd | [] [] [] [] |
+ keytouch | [] [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] |
+ latrine | () |
+ ld | [] |
+ leafpad | [] [] [] [] [] |
+ libc | [] [] [] [] |
+ libexif | [] |
+ libextractor | [] |
+ libgpewidget | [] [] [] |
+ libgpg-error | [] |
+ libgphoto2 | [] [] |
+ libgphoto2_port | [] [] |
+ libgsasl | |
+ libiconv | [] [] |
+ libidn | [] [] [] |
+ lifelines | [] () |
+ lilypond | [] |
+ lingoteach | |
+ lprng | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailfromd | |
+ mailutils | [] |
+ make | [] [] |
+ man-db | [] [] [] |
+ minicom | [] [] [] |
+ nano | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ pilot-qof | |
+ popt | [] [] [] |
+ psmisc | [] |
+ pwdutils | |
+ qof | |
+ radius | [] |
+ recode | [] [] [] [] [] [] |
+ rpm | [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] [] |
+ sed | [] [] [] |
+ shared-mime-info | [] [] [] [] () [] [] [] |
+ sharutils | [] [] [] [] [] [] |
+ shishi | |
+ skencil | [] () |
+ solfege | |
+ soundtracker | [] [] |
+ sp | [] |
+ system-tools-ba... | [] [] [] [] [] [] [] [] [] |
+ tar | [] [] |
+ texinfo | [] [] [] |
+ tin | () () |
+ tuxpaint | [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ util-linux-ng | [] [] [] [] |
+ vorbis-tools | [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] |
+ wget | [] [] [] |
+ xchat | [] [] [] [] [] [] [] |
+ xkeyboard-config | [] |
+ xpad | [] [] [] |
+ +----------------------------------------------------+
+ af am ar az be bg bs ca cs cy da de el en en_GB eo
+ 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18
+
+ es et eu fa fi fr ga gl gu he hi hr hu id is it
+ +--------------------------------------------------+
+ Compendium | [] [] [] [] [] |
+ a2ps | [] [] [] () |
+ aegis | |
+ ant-phone | [] |
+ anubis | [] |
+ ap-utils | [] [] |
+ aspell | [] [] [] |
+ bash | [] |
+ bfd | [] [] |
+ bibshelf | [] [] [] |
+ binutils | [] [] [] |
+ bison | [] [] [] [] [] [] |
+ bison-runtime | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] [] |
+ console-tools | |
+ coreutils | [] [] [] [] [] [] |
+ cpio | [] [] [] |
+ cpplib | [] [] |
+ cryptonit | [] |
+ dialog | [] [] [] |
+ diffutils | [] [] [] [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] [] |
+ fetchmail | [] |
+ findutils | [] [] [] |
+ findutils_stable | [] [] [] [] |
+ flex | [] [] [] |
+ fslint | |
+ gas | [] [] |
+ gawk | [] [] [] [] () |
+ gcal | [] [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] |
+ gip | [] [] [] [] |
+ gliv | () |
+ glunarclock | [] [] [] |
+ gmult | [] [] [] |
+ gnubiff | () () |
+ gnucash | () () () |
+ gnuedu | [] |
+ gnulib | [] [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | |
+ gpe-clock | [] [] [] [] |
+ gpe-conf | [] |
+ gpe-contacts | [] [] |
+ gpe-edit | [] [] [] [] |
+ gpe-filemanager | [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] |
+ gpe-package | [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] [] |
+ gpe-taskmanager | [] [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] [] [] |
+ gpsdrive | [] |
+ gramadoir | [] [] |
+ grep | [] [] [] |
+ gretl | [] [] [] () |
+ gsasl | [] [] |
+ gss | [] [] |
+ gst-plugins-bad | [] [] [] [] |
+ gst-plugins-base | [] [] [] [] |
+ gst-plugins-good | [] [] [] [] [] |
+ gst-plugins-ugly | [] [] [] [] |
+ gstreamer | [] [] [] |
+ gtick | [] [] [] |
+ gtkam | [] [] [] [] |
+ gtkorphan | [] [] |
+ gtkspell | [] [] [] [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ herrie | [] |
+ hylafax | |
+ idutils | [] [] [] [] [] |
+ indent | [] [] [] [] [] [] [] [] [] [] |
+ iso_15924 | [] |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | [] |
+ iso_4217 | [] [] [] [] [] [] |
+ iso_639 | [] [] [] [] [] [] |
+ jpilot | [] [] |
+ jtag | [] |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] |
+ keytouch | [] [] [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] [] |
+ latrine | [] [] |
+ ld | [] [] [] [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | [] |
+ libgpewidget | [] [] [] [] [] |
+ libgpg-error | [] |
+ libgphoto2 | [] [] [] |
+ libgphoto2_port | [] [] |
+ libgsasl | [] [] |
+ libiconv | [] [] [] |
+ libidn | [] [] |
+ lifelines | () |
+ lilypond | [] [] [] |
+ lingoteach | [] [] [] |
+ lprng | |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] |
+ mailfromd | |
+ mailutils | [] [] |
+ make | [] [] [] [] [] [] [] [] |
+ man-db | [] |
+ minicom | [] [] [] [] |
+ nano | [] [] [] [] [] [] [] |
+ opcodes | [] [] [] [] |
+ parted | [] [] [] |
+ pilot-qof | |
+ popt | [] [] [] [] |
+ psmisc | [] [] |
+ pwdutils | |
+ qof | [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] |
+ sed | [] [] [] [] [] |
+ shared-mime-info | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] [] |
+ shishi | [] |
+ skencil | [] [] |
+ solfege | [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ system-tools-ba... | [] [] [] [] [] [] [] [] [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] |
+ tin | [] () |
+ tuxpaint | [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux | [] [] [] [] [] [] [] |
+ util-linux-ng | [] [] [] [] [] [] [] |
+ vorbis-tools | |
+ wastesedge | () |
+ wdiff | [] [] [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] |
+ xpad | [] [] [] |
+ +--------------------------------------------------+
+ es et eu fa fi fr ga gl gu he hi hr hu id is it
+ 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52
+
+ ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn
+ +--------------------------------------------------+
+ Compendium | [] |
+ a2ps | () [] [] |
+ aegis | () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | |
+ bison | [] [] [] |
+ bison-runtime | [] [] [] |
+ bluez-pin | [] [] [] |
+ cflow | |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] |
+ cpio | [] |
+ cpplib | [] |
+ cryptonit | [] |
+ dialog | [] [] |
+ diffutils | [] [] [] |
+ doodle | |
+ e2fsprogs | [] |
+ enscript | [] |
+ fetchmail | [] [] |
+ findutils | [] |
+ findutils_stable | [] |
+ flex | [] [] |
+ fslint | |
+ gas | |
+ gawk | [] [] |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gip | [] [] |
+ gliv | [] |
+ glunarclock | [] [] |
+ gmult | [] [] [] |
+ gnubiff | |
+ gnucash | () () () |
+ gnuedu | |
+ gnulib | [] [] |
+ gnunet | |
+ gnunet-gtk | |
+ gnutls | [] |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] |
+ gpe-conf | [] [] [] |
+ gpe-contacts | [] |
+ gpe-edit | [] [] [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] |
+ gpe-taskmanager | [] [] [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] |
+ gprof | [] |
+ gpsdrive | [] |
+ gramadoir | () |
+ grep | [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins-bad | [] |
+ gst-plugins-base | [] |
+ gst-plugins-good | [] |
+ gst-plugins-ugly | [] |
+ gstreamer | [] |
+ gtick | [] |
+ gtkam | [] [] |
+ gtkorphan | [] |
+ gtkspell | [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] [] [] |
+ herrie | [] |
+ hylafax | |
+ idutils | [] |
+ indent | [] [] |
+ iso_15924 | [] |
+ iso_3166 | [] [] [] [] [] [] [] [] |
+ iso_3166_2 | [] |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] [] [] |
+ jpilot | () () |
+ jtag | |
+ jwhois | [] |
+ kbd | [] |
+ keytouch | [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | |
+ latrine | [] |
+ ld | |
+ leafpad | [] [] |
+ libc | [] [] [] |
+ libexif | |
+ libextractor | |
+ libgpewidget | [] |
+ libgpg-error | |
+ libgphoto2 | [] |
+ libgphoto2_port | [] |
+ libgsasl | [] |
+ libiconv | [] |
+ libidn | [] [] |
+ lifelines | [] |
+ lilypond | [] |
+ lingoteach | [] |
+ lprng | |
+ lynx | [] [] |
+ m4 | [] [] |
+ mailfromd | |
+ mailutils | |
+ make | [] [] [] |
+ man-db | |
+ minicom | [] |
+ nano | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ pilot-qof | |
+ popt | [] [] [] |
+ psmisc | [] [] [] |
+ pwdutils | |
+ qof | |
+ radius | |
+ recode | [] |
+ rpm | [] [] |
+ screem | [] |
+ scrollkeeper | [] [] [] [] |
+ sed | [] [] |
+ shared-mime-info | [] [] [] [] [] [] [] |
+ sharutils | [] [] |
+ shishi | |
+ skencil | |
+ solfege | () () |
+ soundtracker | |
+ sp | () |
+ system-tools-ba... | [] [] [] [] |
+ tar | [] [] [] |
+ texinfo | [] [] |
+ tin | |
+ tuxpaint | () [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] |
+ util-linux-ng | [] [] |
+ vorbis-tools | |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ xpad | [] [] [] |
+ +--------------------------------------------------+
+ ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn
+ 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6
+
+ or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ +--------------------------------------------------+
+ Compendium | [] [] [] [] [] |
+ a2ps | () [] [] [] [] [] [] |
+ aegis | () () |
+ ant-phone | [] [] |
+ anubis | [] [] [] |
+ ap-utils | () |
+ aspell | [] [] [] |
+ bash | [] [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | [] [] |
+ bison | [] [] [] [] [] |
+ bison-runtime | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] |
+ console-tools | [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] [] |
+ cpplib | [] |
+ cryptonit | [] [] |
+ dialog | [] |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] [] |
+ fetchmail | [] [] [] |
+ findutils | [] [] [] |
+ findutils_stable | [] [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] [] [] |
+ gcal | [] |
+ gcc | [] [] |
+ gettext-examples | [] [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] [] |
+ gip | [] [] [] [] |
+ gliv | [] [] [] [] [] [] |
+ glunarclock | [] [] [] [] [] [] |
+ gmult | [] [] [] [] |
+ gnubiff | () [] |
+ gnucash | () [] |
+ gnuedu | |
+ gnulib | [] [] [] |
+ gnunet | |
+ gnunet-gtk | [] |
+ gnutls | [] [] |
+ gpe-aerial | [] [] [] [] [] [] [] |
+ gpe-beam | [] [] [] [] [] [] [] |
+ gpe-calendar | [] [] [] [] |
+ gpe-clock | [] [] [] [] [] [] [] [] |
+ gpe-conf | [] [] [] [] [] [] [] |
+ gpe-contacts | [] [] [] [] [] |
+ gpe-edit | [] [] [] [] [] [] [] [] [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] [] [] [] [] [] |
+ gpe-login | [] [] [] [] [] [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] [] [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] [] [] [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] [] |
+ gphoto2 | [] [] [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] [] |
+ gramadoir | [] [] |
+ grep | [] [] [] [] |
+ gretl | [] [] [] |
+ gsasl | [] [] [] |
+ gss | [] [] [] [] |
+ gst-plugins-bad | [] [] [] |
+ gst-plugins-base | [] [] |
+ gst-plugins-good | [] [] |
+ gst-plugins-ugly | [] [] [] |
+ gstreamer | [] [] [] [] |
+ gtick | [] |
+ gtkam | [] [] [] [] [] |
+ gtkorphan | [] |
+ gtkspell | [] [] [] [] [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] [] [] [] |
+ herrie | [] [] [] |
+ hylafax | |
+ idutils | [] [] [] [] [] |
+ indent | [] [] [] [] [] [] [] |
+ iso_15924 | |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] [] [] [] [] [] [] |
+ iso_639 | [] [] [] [] [] [] [] |
+ jpilot | |
+ jtag | [] |
+ jwhois | [] [] [] [] |
+ kbd | [] [] [] |
+ keytouch | [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] |
+ latrine | |
+ ld | [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] |
+ libexif | [] [] |
+ libextractor | [] [] |
+ libgpewidget | [] [] [] [] [] [] [] [] |
+ libgpg-error | [] [] [] |
+ libgphoto2 | [] |
+ libgphoto2_port | [] [] [] |
+ libgsasl | [] [] [] [] |
+ libiconv | [] [] [] |
+ libidn | [] [] () |
+ lifelines | [] [] |
+ lilypond | |
+ lingoteach | [] |
+ lprng | [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailfromd | [] |
+ mailutils | [] [] [] |
+ make | [] [] [] [] |
+ man-db | [] [] [] [] |
+ minicom | [] [] [] [] [] |
+ nano | [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] |
+ pilot-qof | |
+ popt | [] [] [] [] |
+ psmisc | [] [] |
+ pwdutils | [] [] |
+ qof | [] [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] |
+ rpm | [] [] [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] [] |
+ shared-mime-info | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] |
+ shishi | [] |
+ skencil | [] [] [] |
+ solfege | [] |
+ soundtracker | [] [] |
+ sp | |
+ system-tools-ba... | [] [] [] [] [] [] [] [] [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] [] |
+ tin | () |
+ tuxpaint | [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ util-linux-ng | [] [] [] [] |
+ vorbis-tools | [] |
+ wastesedge | |
+ wdiff | [] [] [] [] [] [] [] |
+ wget | [] [] [] [] |
+ xchat | [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] |
+ xpad | [] [] [] |
+ +--------------------------------------------------+
+ or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3
+
+ tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
+ +---------------------------------------------------+
+ Compendium | [] [] [] [] | 19
+ a2ps | [] [] [] | 19
+ aegis | [] | 1
+ ant-phone | [] [] | 6
+ anubis | [] [] [] | 11
+ ap-utils | () [] | 4
+ aspell | [] [] [] | 16
+ bash | [] | 6
+ bfd | | 2
+ bibshelf | [] | 7
+ binutils | [] [] [] [] | 9
+ bison | [] [] [] [] | 20
+ bison-runtime | [] [] [] [] | 18
+ bluez-pin | [] [] [] [] [] [] | 28
+ cflow | [] [] | 5
+ clisp | | 9
+ console-tools | [] [] | 5
+ coreutils | [] [] [] | 18
+ cpio | [] [] [] [] | 11
+ cpplib | [] [] [] [] [] | 12
+ cryptonit | [] | 6
+ dialog | [] [] [] | 9
+ diffutils | [] [] [] [] [] | 29
+ doodle | [] | 6
+ e2fsprogs | [] [] | 10
+ enscript | [] [] [] | 16
+ fetchmail | [] [] | 12
+ findutils | [] [] [] | 11
+ findutils_stable | [] [] [] [] | 18
+ flex | [] [] | 15
+ fslint | [] | 2
+ gas | [] | 3
+ gawk | [] [] [] | 16
+ gcal | [] | 5
+ gcc | [] [] [] | 7
+ gettext-examples | [] [] [] [] [] [] | 29
+ gettext-runtime | [] [] [] [] [] [] | 28
+ gettext-tools | [] [] [] [] [] | 20
+ gip | [] [] | 13
+ gliv | [] [] | 11
+ glunarclock | [] [] [] | 15
+ gmult | [] [] [] [] | 16
+ gnubiff | [] | 2
+ gnucash | () [] | 5
+ gnuedu | [] | 2
+ gnulib | [] | 10
+ gnunet | | 0
+ gnunet-gtk | [] [] | 3
+ gnutls | | 4
+ gpe-aerial | [] [] | 14
+ gpe-beam | [] [] | 14
+ gpe-calendar | [] [] | 7
+ gpe-clock | [] [] [] [] | 21
+ gpe-conf | [] [] [] | 16
+ gpe-contacts | [] [] | 10
+ gpe-edit | [] [] [] [] [] | 22
+ gpe-filemanager | [] [] | 7
+ gpe-go | [] [] [] [] | 19
+ gpe-login | [] [] [] [] [] | 21
+ gpe-ownerinfo | [] [] [] [] | 21
+ gpe-package | [] | 6
+ gpe-sketchbook | [] [] | 16
+ gpe-su | [] [] [] [] | 21
+ gpe-taskmanager | [] [] [] [] | 21
+ gpe-timesheet | [] [] [] [] | 18
+ gpe-today | [] [] [] [] [] | 21
+ gpe-todo | [] [] | 8
+ gphoto2 | [] [] [] [] | 21
+ gprof | [] [] | 13
+ gpsdrive | [] | 5
+ gramadoir | [] | 7
+ grep | [] | 12
+ gretl | | 6
+ gsasl | [] [] [] | 9
+ gss | [] | 7
+ gst-plugins-bad | [] [] [] | 13
+ gst-plugins-base | [] [] | 11
+ gst-plugins-good | [] [] [] [] [] | 16
+ gst-plugins-ugly | [] [] [] | 13
+ gstreamer | [] [] [] | 18
+ gtick | [] [] | 7
+ gtkam | [] | 16
+ gtkorphan | [] | 7
+ gtkspell | [] [] [] [] [] [] | 27
+ gutenprint | | 4
+ hello | [] [] [] [] [] | 38
+ herrie | [] [] | 8
+ hylafax | | 0
+ idutils | [] [] | 15
+ indent | [] [] [] [] [] | 28
+ iso_15924 | [] [] | 4
+ iso_3166 | [] [] [] [] [] [] [] [] [] | 54
+ iso_3166_2 | [] [] | 4
+ iso_4217 | [] [] [] [] [] | 24
+ iso_639 | [] [] [] [] [] | 26
+ jpilot | [] [] [] [] | 7
+ jtag | [] | 3
+ jwhois | [] [] [] | 13
+ kbd | [] [] [] | 13
+ keytouch | [] | 8
+ keytouch-editor | [] | 5
+ keytouch-keyboa... | [] | 5
+ latrine | [] [] | 5
+ ld | [] [] [] [] | 10
+ leafpad | [] [] [] [] [] | 24
+ libc | [] [] [] | 19
+ libexif | [] | 5
+ libextractor | [] | 5
+ libgpewidget | [] [] [] | 20
+ libgpg-error | [] | 6
+ libgphoto2 | [] [] | 9
+ libgphoto2_port | [] [] [] | 11
+ libgsasl | [] | 8
+ libiconv | [] [] | 11
+ libidn | [] [] | 11
+ lifelines | | 4
+ lilypond | [] | 6
+ lingoteach | [] | 6
+ lprng | [] | 2
+ lynx | [] [] [] | 15
+ m4 | [] [] [] | 18
+ mailfromd | [] [] | 3
+ mailutils | [] [] | 8
+ make | [] [] [] | 20
+ man-db | [] | 9
+ minicom | [] | 14
+ nano | [] [] [] | 20
+ opcodes | [] [] | 10
+ parted | [] [] [] | 11
+ pilot-qof | [] | 1
+ popt | [] [] [] [] | 18
+ psmisc | [] [] | 10
+ pwdutils | [] | 3
+ qof | [] | 4
+ radius | [] [] | 7
+ recode | [] [] [] | 25
+ rpm | [] [] [] [] | 13
+ screem | [] | 2
+ scrollkeeper | [] [] [] [] | 26
+ sed | [] [] [] [] | 23
+ shared-mime-info | [] [] [] | 29
+ sharutils | [] [] [] | 23
+ shishi | [] | 3
+ skencil | [] | 7
+ solfege | [] | 3
+ soundtracker | [] [] | 9
+ sp | [] | 3
+ system-tools-ba... | [] [] [] [] [] [] [] | 38
+ tar | [] [] [] | 17
+ texinfo | [] [] [] | 15
+ tin | | 1
+ tuxpaint | [] [] [] | 19
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux | [] [] [] | 20
+ util-linux-ng | [] [] [] | 20
+ vorbis-tools | [] [] | 4
+ wastesedge | | 1
+ wdiff | [] [] | 23
+ wget | [] [] [] | 20
+ xchat | [] [] [] [] | 29
+ xkeyboard-config | [] [] [] | 14
+ xpad | [] [] [] | 15
+ +---------------------------------------------------+
+ 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
+ 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer. There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+ If November 2007 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites. The most
+up-to-date matrix with full percentage details can be found at
+`http://translationproject.org/extra/matrix.html'.
+
+1.6 Using `gettext' in new packages
+===================================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package. Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library. This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+the use of `gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+`coordinator at translationproject.org' to make the `.pot' files available
+to the translation teams.
+
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..c5ba3c9
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+For now, see doc/ChangeLog for changes and their contributors.
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..3f6e259
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,158 @@
+# This file implements a build for TuxMath using CMake
+# License information can be found in doc/COPYING.txt
+#
+# Copyright 2008 by Timothy E. Holy
+#
+# This was based on many examples, but a particular debt is owed to
+# Peter K�mmel of the LyX project.
+
+project(TuxMath)
+
+set(TUXMATH_VERSION "1.7.1")
+set(TUXMATHADMIN_VERSION "0.1.1")
+message("Building TuxMath version ${TUXMATH_VERSION}")
+
+## Setting up CMake itself
+cmake_minimum_required(VERSION 2.6)
+set(CMAKE_MODULE_PATH "${TuxMath_SOURCE_DIR}/cmake-modules")
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+
+#message("CMP: ${CMAKE_MODULE_PATH}")
+
+## Choose a debug build set
+set(CMAKE_BUILD_TYPE Debug)
+
+## Decide on our build-type: installed or relocatable
+## Linux (& Windows?) would be installed, Mac relocatable
+## Someday we might supply a Linux relocatable package; this would be
+## specified by executing cmake -DTUXMATH_BUILD_TYPE=relocatable
+if (NOT TUXMATH_BUILD_TYPE)
+ if (APPLE)
+ set(TUXMATH_BUILD_TYPE relocatable)
+ else (APPLE)
+ set(TUXMATH_BUILD_TYPE installed)
+ endif (APPLE)
+endif (NOT TUXMATH_BUILD_TYPE)
+if (TUXMATH_BUILD_TYPE MATCHES installed)
+ message("The installation location is ${CMAKE_INSTALL_PREFIX}")
+endif (TUXMATH_BUILD_TYPE MATCHES installed)
+
+## Define the extra paths
+#set (DATA_TUXMATH ${tuxmath_SOURCE_DIR}/data)
+#set (DOC_TUXMATH ${tuxmath_SOURCE_DIR}/doc)
+#set (PO_TUXMATH ${tuxmath_SOURCE_DIR}/po)
+
+## Set up OS-specific path & build information
+if (APPLE)
+ set(TUXMATH_MACOSX_BUNDLE_NAME tuxmath)
+ set(MACOSX_BUNDLE_BUNDLE_VERSION ${TUXMATH_VERSION})
+ set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${TUXMATH_VERSION})
+ set(MACOSX_BUNDLE_LONG_VERSION_STRING ${TUXMATH_VERSION})
+ set(MACOSX_BUNDLE_ICON_FILE tuxmath.icns)
+ set(TUXMATH_DATA_PREFIX ${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Resources)
+ set(LOCALE_DIR ${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Resources/locale)
+ # OS X SDL Framework does not have a pre-built libSDLmain, so we
+ # instead include SDLmain.m as a source file
+ set (TUXMATH_EXTRA_INCLUDE ${TuxMath_SOURCE_DIR}/macosx)
+ set (TUXMATH_EXTRA_SRC ${TuxMath_SOURCE_DIR}/macosx/SDLMain.m)
+elseif (UNIX)
+ # A non-apple Unix (Linux, Solaris, etc.)
+ # This is where one would test for installed/relocatable, if that
+ # choice is implemented. For now we just provide installed.
+ set (TUXMATH_DATA_PREFIX ${CMAKE_INSTALL_PREFIX}/share/tuxmath)
+ set (LOCALE_DIR ${CMAKE_INSTALL_PREFIX}/share/locale)
+endif (APPLE)
+#message("TDP ${TUXMATH_DATA_PREFIX}")
+
+## OS X
+# Build universal binaries on OSX
+set(CMAKE_OSX_ARCHITECTURES ppc i386)
+
+## Decide on whether we're going to build with internationalization
+# We can't build with internationalization unless the build computer
+# supports msgfmt
+find_package(MSGFMT)
+if (NOT DEFINED ENABLE_NLS OR NOT MSGFMT_FOUND)
+ # You can disable NLS with -DENABLE_NLS=false
+ set(ENABLE_NLS ${MSGFMT_FOUND})
+endif (NOT DEFINED ENABLE_NLS OR NOT MSGFMT_FOUND)
+if (NOT ENABLE_NLS)
+ message("Internationalization disabled")
+endif (NOT ENABLE_NLS)
+# Even if the build computer supports gettext/msgfmt, we may not be
+# able to guarantee that the computers on which it is installed provides
+# runtime support for gettext. So we may have to build gettext.
+if (ENABLE_NLS)
+ if (APPLE)
+ set(TUXMATH_BUILD_INTL true)
+ endif (APPLE)
+else (ENABLE_NLS)
+ set(TUXMATH_BUILD_INTL false) # No point in building intl if no NLS
+endif (ENABLE_NLS)
+message("ENABLE_NLS ${ENABLE_NLS}")
+set(HAVE_GETTEXT ENABLE_NLS)
+# Check to see if we have SDL_Pango support for the right-to-left languages
+if (ENABLE_NLS)
+ find_package(SDL_Pango)
+ set(SDL_Pango ${SDLPANGO_FOUND}) # For the config.h file
+endif (ENABLE_NLS)
+
+# Line wrapping
+set(TUXMATH_BUILD_LINEBREAK true)
+set(LINEBREAK true)
+
+## Don't think we need SDL_gfx anymore:
+##FIND_PACKAGE(SDL_gfx REQUIRED)
+
+# Check for libRSVG for SVG support
+
+include(FindPkgConfig OPTIONAL)
+
+if(PKG_CONFIG_FOUND)
+ include(FindPkgConfig)
+ PKG_CHECK_MODULES(RSVG librsvg-2.0)
+ if(RSVG_FOUND)
+ PKG_CHECK_MODULES(CAIRO cairo)
+ if(CAIRO_FOUND)
+ set(HAVE_RSVG 1) # For the config.h file
+ endif(CAIRO_FOUND)
+ endif(RSVG_FOUND)
+endif(PKG_CONFIG_FOUND)
+
+
+## Run configure checks
+if (TUXMATH_BUILD_INTL)
+ include(ConfigureChecksIntl)
+endif (TUXMATH_BUILD_INTL)
+include(ConfigureChecks)
+
+## Add subdirectories
+if (TUXMATH_BUILD_INTL)
+ set(INTL_BINARY_DIR ${CMAKE_BINARY_DIR}/intl)
+ set(INTL_SOURCE_DIR ${CMAKE_SOURCE_DIR}/intl)
+ set(TOP_SRC_DIR ${CMAKE_BINARY_DIR})
+ set(PREFIX ${CMAKE_BINARY_DIR})
+ add_subdirectory(intl)
+endif (TUXMATH_BUILD_INTL)
+if (TUXMATH_BUILD_LINEBREAK)
+ set(LINEBREAK_BINARY_DIR ${CMAKE_BINARY_DIR}/linebreak)
+ set(LINEBREAK_SOURCE_DIR ${CMAKE_SOURCE_DIR}/linebreak)
+ set(TOP_SRC_DIR ${CMAKE_BINARY_DIR})
+ set(PREFIX ${CMAKE_BINARY_DIR})
+ add_subdirectory(linebreak)
+endif (TUXMATH_BUILD_LINEBREAK)
+add_subdirectory(src)
+add_subdirectory(data)
+add_subdirectory(doc)
+if (ENABLE_NLS)
+ set(LOCALE_INSTALL_DIR ${CMAKE_BINARY_DIR}/src/${LOCALE_DIR})
+ add_subdirectory(po)
+endif (ENABLE_NLS)
+
+#message("TMBD ${TuxMath_BINARY_DIR}")
+#message("TMBN ${TUXMATH_MACOSX_BUNDLE_NAME}")
+
+if (APPLE)
+ add_subdirectory(macosx)
+endif (APPLE)
+
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..014bd62
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,2 @@
+See doc/COPYING_GPL2 and doc/COPYING_GPL3 for the licenses for the source files
+ in this project.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..dc29bad
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,17 @@
+2007-10-18 gettextize <bug-gnu-gettext at gnu.org>
+
+ * configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
+
+2007-10-18 gettextize <bug-gnu-gettext at gnu.org>
+
+ * Makefile.am (SUBDIRS): Remove intl.
+ * configure.ac (AC_CONFIG_FILES): Remove intl/Makefile.
+
+2007-10-15 gettextize <bug-gnu-gettext at gnu.org>
+
+ * Makefile.am (SUBDIRS): Add intl, po.
+ (ACLOCAL_AMFLAGS): New variable.
+ (EXTRA_DIST): New variable.
+ * configure.ac (AC_CONFIG_FILES): Add intl/Makefile, po/Makefile.in.
+
+For now, see doc/changelog for changes and their contributors.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..ae92fd7
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1 @@
+For now, see doc/INSTALL.txt for this information.
\ No newline at end of file
diff --git a/Info.plist b/Info.plist
new file mode 100644
index 0000000..b646ee8
--- /dev/null
+++ b/Info.plist
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>tuxmath</string>
+ <key>CFBundleGetInfoString</key>
+ <string></string>
+ <key>CFBundleIconFile</key>
+ <string>tuxmath.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.debian.alioth.tux4kids.TuxMath</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleLongVersionString</key>
+ <string>1.7.2</string>
+ <key>CFBundleName</key>
+ <string>TuxMath</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.7.2</string>
+ <key>CFBundleSignature</key>
+ <string>TXPT</string>
+ <key>CFBundleVersion</key>
+ <string>1.7.2</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+ <key>LSRequiresCarbon</key>
+ <true/>
+ <key>NSHumanReadableCopyright</key>
+ <string></string>
+</dict>
+</plist>
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..dc490d1
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,139 @@
+## Top-level Makefile.am for tuxmath:
+## Process with Automake to create Makefile.in
+
+
+## ---------------------------------------------------------------------------
+## Variables: ----------------------------------------------------------------
+## ---------------------------------------------------------------------------
+
+
+SUBDIRS = data \
+ doc \
+ linebreak \
+ po \
+ src
+
+# We bundle intl with us for now in Windows cross-build:
+if BUILD_MINGW32
+ SUBDIRS = $(SUBDIRS) intl
+endif
+
+ACLOCAL_AMFLAGS = -I m4
+
+EXTRA_DIST = tuxmath.spec \
+ tuxmath.desktop \
+ config.rpath \
+ m4/ChangeLog \
+ Info.plist \
+ CMakeLists.txt
+
+##datadir = @datadir@
+##localedir = $(datadir)/locale
+
+
+## These are defined in configure.ac:
+MAKENSIS=$(NSIS)
+##NSIS_FOUND=@NSIS_FOUND@
+##NSI_INSTALL_DIR=@NSI_INSTALL_DIR@
+##NSI_DLL_DIR=@NSI_DLL_DIR@
+NSI_TEMP_INSTALL_DIR=$(abs_top_builddir)/_instw32
+
+
+## ---------------------------------------------------------------------------
+## Rules: --------------------------------------------------------------------
+## ---------------------------------------------------------------------------
+
+
+## Bundle in fonts for distribution tar.gz to be used without package manager:
+## i.e. to make tarball to post for individual download.
+##
+## for tarball with fonts: use 'make dist_with_fonts' (for *tar.gz)
+## or 'make dist_with_fonts_bzip2 (for *tar.bzip2)
+## for tarball without fonts: (e.g. for Debian packaging) - use 'make distcheck'
+##
+## (thanks to Ralf Wildenhues <Ralf.Wildenhues at gmx.de> for automake help!)
+## 'dist_fonts' is in EXTRA_DATA but is empty by default. With this target,
+## 'dist_fonts' gets set to a list of the font files in data/fonts before making
+## 'dist', causing the fonts to be included in the tar.gz.
+## 'data_fonts' should contain all of the fonts in data/fonts. It needs to go
+## in this Makefile.am before the 'dist_with_fonts' target for that target
+## to work - if it is in data/fonts/Makefile.am, it does not get expanded
+## before the 'dist' target starts:
+data_fonts='AndikaDesRevG.ttf'
+dist_with_fonts:
+ $(MAKE) $(AM_MAKEFLAGS) distdir=$(PACKAGE)_w_fonts-$(VERSION) \
+ dist_fonts=$(data_fonts) dist
+dist_with_fonts_bzip2:
+ $(MAKE) $(AM_MAKEFLAGS) distdir=$(PACKAGE)_w_fonts-$(VERSION) \
+ dist_fonts=$(data_fonts) dist-bzip2
+
+
+
+
+## For building the NSIS executable Win32 installer - this rule first
+## does a "make install" into NSI_TEMP_INSTALL_DIR, which results in
+## a local copy of the complete unix-style install.
+## Subsequent commands then copy the needed files into NSI_INSTALL_DIR,
+## which has the exact directory structure of the self-contained
+## 'TuxMath' folder that gets installed onto the Windows machine.
+
+install-nsi-local: all
+## create NSI_TEMP_INSTALL_DIR and install to that location:
+ $(INSTALL) -d $(NSI_TEMP_INSTALL_DIR)
+ $(MAKE) $(AM_MAKEFLAGS) DESTDIR=$(NSI_TEMP_INSTALL_DIR) install
+## create NSI_INSTALL_DIR/data dir and copy data files to that location:
+ $(INSTALL) -d $(top_builddir)/$(NSI_INSTALL_DIR)/data;
+ (cd $(NSI_TEMP_INSTALL_DIR)/$(pkgdatadir); \
+ tar cf - * ) \
+ | ( cd $(top_builddir)/$(NSI_INSTALL_DIR)/data; \
+ tar xf -)
+## create NSI_INSTALL_DIR/doc dir and copy docs to that location:
+ $(INSTALL) -d $(top_builddir)/$(NSI_INSTALL_DIR)/doc;
+ (cd $(NSI_TEMP_INSTALL_DIR)/$(docdir); \
+ tar cf - * ) \
+ | ( cd $(top_builddir)/$(NSI_INSTALL_DIR)/doc; \
+ tar xf -)
+## create NSI_INSTALL_DIR/locale dir and copy locales to that location:
+ $(INSTALL) -d $(top_builddir)/$(NSI_INSTALL_DIR)/locale;
+ (cd $(NSI_TEMP_INSTALL_DIR)/$(localedir); \
+ tar cf - * ) \
+ | ( cd $(top_builddir)/$(NSI_INSTALL_DIR)/locale; \
+ tar xf -)
+## copy executable into NSI_INSTALL_DIR:
+ (cd $(NSI_TEMP_INSTALL_DIR)/$(bindir); \
+ mv *TuxMath.exe TuxMath.exe; \
+ tar cf - TuxMath.exe ) \
+ | ( cd $(top_builddir)/$(NSI_INSTALL_DIR); \
+ tar xf -)
+## Done with NSI_TEMP_INSTALL_DIR so uninstall:
+ $(MAKE) $(AM_MAKEFLAGS) DESTDIR=$(NSI_TEMP_INSTALL_DIR) uninstall
+ rm -rf $(NSI_TEMP_INSTALL_DIR)
+## copy needed dll files into NSI_INSTALL_DIR:
+# -cp $(NSI_DLL_DIR)/*.dll $(top_builddir)/$(NSI_INSTALL_DIR);
+
+
+install-nsi-am: install-nsi-local
+
+
+nsis:
+ if test "x$(MAKENSIS)" = "x"; then \
+ echo "\nError - makensis program not found!"; \
+ echo "It is needed to build the NSIS executable installer for Windows."; \
+ echo "Install it from your distribution's repository, or" ; \
+ echo "download it from: http://nsis.sourceforge.net/Download\n"; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) install-nsi-local; \
+ $(MAKENSIS) -NOCD nsis/tuxmath.nsi; \
+ fi
+
+clean-local:
+ @$(NORMAL_CLEAN)
+ if test -d $(NSI_INSTALL_DIR); then \
+ rm -fr $(NSI_INSTALL_DIR); \
+ fi
+ if test -e tuxmath- at VERSION@-win32-installer.exe; then \
+ rm tuxmath- at VERSION@-win32-installer.exe; \
+ fi
+
+.PHONY: nsis
+
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
diff --git a/Portfile b/Portfile
new file mode 100644
index 0000000..5904a45
--- /dev/null
+++ b/Portfile
@@ -0,0 +1,42 @@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; \
+c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+PortSystem 1.0
+
+name tuxmath
+version 1.7.1
+revision 0
+categories games education
+platforms darwin
+maintainers gmail.com:davidstuartbruce
+
+description Kids math game - help Tux, the Linux Penguin shoot down attacking math questions!
+long_description TuxMath is an SDL-based educational game intended for children ages 4 to 10. \
+ The game offers drill in basic math facts, beginning with simple number \
+ typing and progressing through addition, subtraction, multiplication, and \
+ division. Negative numbers and "missing number" questions (e.g. 5 x ? = -75) \
+ are supported. TuxMath now also offers review of factoring and fraction \
+ simplification via "Factoroids", a tribute to the arcade classic "Asteroids".
+
+homepage http://www.tux4kids.com
+master_sites http://alioth.debian.org/frs/download.php/2733/
+distname ${name}_w_fonts-${version}
+
+checksums md5 4ab3d5bd74adb0d0aeacb721b8cac395 \
+ sha1 caec45d602fbb3344569e839a2de9b03589f476a \
+ rmd160 5db7b48091e56e50f5131fe602e0faacab205678
+
+depends_lib port:libsdl \
+ port:libsdl_image \
+ port:libsdl_mixer \
+ port:libsdl_ttf \
+ port:libsdl_pango \
+ port:gettext
+
+platform darwin {
+ post-destroot {
+ xinstall -m 755 -d ${destroot}/Applications/MacPorts/TuxMath.app/Contents/MacOS
+ ln -s ${prefix}/bin/tuxmath ${destroot}/Applications/MacPorts/TuxMath.app/Contents/MacOS/TuxMath
+ }
+}
diff --git a/README b/README
new file mode 100644
index 0000000..785d168
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+For now, see docs/README.txt for this information.
\ No newline at end of file
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..09b72e4
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,180 @@
+# Configure paths for SDL
+# Sam Lantinga 9/21/99
+# stolen from Manish Singh
+# stolen back from Frank Belew
+# stolen from Manish Singh
+# Shamelessly stolen from Owen Taylor
+
+dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
+dnl
+AC_DEFUN([AM_PATH_SDL],
+[dnl
+dnl Get the cflags and libraries from the sdl-config script
+dnl
+AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
+ sdl_prefix="$withval", sdl_prefix="")
+AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
+ sdl_exec_prefix="$withval", sdl_exec_prefix="")
+AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
+ , enable_sdltest=yes)
+
+ if test x$sdl_exec_prefix != x ; then
+ sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix"
+ if test x${SDL_CONFIG+set} != xset ; then
+ SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
+ fi
+ fi
+ if test x$sdl_prefix != x ; then
+ sdl_args="$sdl_args --prefix=$sdl_prefix"
+ if test x${SDL_CONFIG+set} != xset ; then
+ SDL_CONFIG=$sdl_prefix/bin/sdl-config
+ fi
+ fi
+
+ AC_REQUIRE([AC_CANONICAL_TARGET])
+ PATH="$prefix/bin:$prefix/usr/bin:$PATH"
+ AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
+ min_sdl_version=ifelse([$1], ,0.11.0,$1)
+ AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
+ no_sdl=""
+ if test "$SDL_CONFIG" = "no" ; then
+ no_sdl=yes
+ else
+ SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags`
+ SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs`
+
+ sdl_major_version=`$SDL_CONFIG $sdl_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ if test "x$enable_sdltest" = "xyes" ; then
+ ac_save_CFLAGS="$CFLAGS"
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ ac_save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $SDL_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+ LIBS="$LIBS $SDL_LIBS"
+dnl
+dnl Now check if the installed SDL is sufficiently new. (Also sanity
+dnl checks the results of sdl-config to some extent
+dnl
+ rm -f conf.sdltest
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "SDL.h"
+
+char*
+my_strdup (char *str)
+{
+ char *new_str;
+
+ if (str)
+ {
+ new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
+ strcpy (new_str, str);
+ }
+ else
+ new_str = NULL;
+
+ return new_str;
+}
+
+int main (int argc, char *argv[])
+{
+ int major, minor, micro;
+ char *tmp_version;
+
+ /* This hangs on some systems (?)
+ system ("touch conf.sdltest");
+ */
+ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
+
+ /* HP/UX 9 (%@#!) writes to sscanf strings */
+ tmp_version = my_strdup("$min_sdl_version");
+ if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
+ printf("%s, bad version string\n", "$min_sdl_version");
+ exit(1);
+ }
+
+ if (($sdl_major_version > major) ||
+ (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
+ (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
+ {
+ return 0;
+ }
+ else
+ {
+ printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
+ printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
+ printf("*** best to upgrade to the required version.\n");
+ printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
+ printf("*** to point to the correct copy of sdl-config, and remove the file\n");
+ printf("*** config.cache before re-running configure\n");
+ return 1;
+ }
+}
+
+],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+ CFLAGS="$ac_save_CFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ if test "x$no_sdl" = x ; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ if test "$SDL_CONFIG" = "no" ; then
+ echo "*** The sdl-config script installed by SDL could not be found"
+ echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
+ echo "*** your path, or set the SDL_CONFIG environment variable to the"
+ echo "*** full path to sdl-config."
+ else
+ if test -f conf.sdltest ; then
+ :
+ else
+ echo "*** Could not run SDL test program, checking why..."
+ CFLAGS="$CFLAGS $SDL_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+ LIBS="$LIBS $SDL_LIBS"
+ AC_TRY_LINK([
+#include <stdio.h>
+#include "SDL.h"
+
+int main(int argc, char *argv[])
+{ return 0; }
+#undef main
+#define main K_and_R_C_main
+], [ return 0; ],
+ [ echo "*** The test program compiled, but did not run. This usually means"
+ echo "*** that the run-time linker is not finding SDL or finding the wrong"
+ echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
+ echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+ echo "*** to the installed location Also, make sure you have run ldconfig if that"
+ echo "*** is required on your system"
+ echo "***"
+ echo "*** If you have an old version installed, it is best to remove it, although"
+ echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+ [ echo "*** The test program failed to compile or link. See the file config.log for the"
+ echo "*** exact error that occured. This usually means SDL was incorrectly installed"
+ echo "*** or that you have moved SDL since it was installed. In the latter case, you"
+ echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
+ CFLAGS="$ac_save_CFLAGS"
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ LIBS="$ac_save_LIBS"
+ fi
+ fi
+ SDL_CFLAGS=""
+ SDL_CXXFLAGS=""
+ SDL_LIBS=""
+ ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(SDL_CFLAGS)
+ AC_SUBST(SDL_LIBS)
+ rm -f conf.sdltest
+])
diff --git a/buildw32/cross-configure.sh b/buildw32/cross-configure.sh
new file mode 100755
index 0000000..cb5ddfb
--- /dev/null
+++ b/buildw32/cross-configure.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# Script for crossbuilding of Windows binaries on Linux/Unix host
+# using mingw port of GCC. Obtained from http://www.libsdl.org
+# and lightly modified by David Bruce <davidstuartbruce at gmail.com>
+
+CONFIG_SHELL=/bin/sh
+export CONFIG_SHELL
+
+# Set PREFIX, BUILD, TARGET, and CONFIG_PATH according to your build machine:
+
+# Path to crossbuild setup:
+#PREFIX=/usr/local/mingw
+PREFIX=/opt/mingw-cross-env/usr
+
+# Architecture of the build machine itself:
+BUILD=x86_64-linux
+
+# Architecture of the build machine's crossbuild setup
+# as located by PREFIX:
+TARGET=i686-pc-mingw32
+
+# Path to configure script
+CONFIG_PATH=../configure
+
+PATH="$PREFIX/bin:$PREFIX/$TARGET/bin:$PATH"
+export PATH
+if [ -f "$PREFIX/$TARGET/bin/$TARGET-sdl-config" ]; then
+ SDL_CONFIG="$PREFIX/$TARGET/bin/$TARGET-sdl-config"
+ export SDL_CONFIG
+fi
+
+CPPFLAGS=-I$PREFIX/$TARGET/include LDFLAGS=-L$PREFIX/$TARGET/lib sh $CONFIG_PATH \
+ --target=$TARGET --host=$TARGET --build=$BUILD --prefix="$PREFIX/$TARGET" \
+ $*
+status=$?
+
+exit $status
diff --git a/buildw32/cross-make.sh b/buildw32/cross-make.sh
new file mode 100755
index 0000000..294bc39
--- /dev/null
+++ b/buildw32/cross-make.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# Script for crossbuilding of Windows binaries on Linux/Unix host
+# using mingw port of GCC. Obtained from http://www.libsdl.org
+# and lightly modified by David Bruce <davidstuartbruce at gmail.com>
+
+# Path to crossbuild setup:
+#PREFIX=/usr/local/mingw
+PREFIX=/opt/mingw-cross-env/usr
+
+# Architecture of the build machine's crossbuild setup
+# as located by PREFIX:
+TARGET=i686-pc-mingw32
+
+PATH="$PREFIX/bin:$PREFIX/$TARGET/bin:$PATH"
+export PATH
+exec make $*
diff --git a/buildw32/tmwin.sh b/buildw32/tmwin.sh
new file mode 100755
index 0000000..d3535c9
--- /dev/null
+++ b/buildw32/tmwin.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# An 'all-in-one' script to build the Windows installer executable.
+
+echo "Cleaning build directory:"
+./cross-make.sh clean>/dev/null
+./cross-make.sh distclean>/dev/null
+echo "Running autoreconf --install .."
+autoreconf --install ..
+echo "Running ./cross-configure.sh --host=i686-pc-mingw32"
+./cross-configure.sh --host=i686-pc-mingw32 --without-sdlpango --without-sdlnet
+echo "Running ./cross-make.sh"
+./cross-make.sh
+echo "Running ./cross-make.sh dist (to generate gmo files)"
+./cross-make.sh dist
+echo "Building NSIS installer file"
+./cross-make.sh nsis
+
diff --git a/cmake-modules/ConfigureChecks.cmake b/cmake-modules/ConfigureChecks.cmake
new file mode 100644
index 0000000..c6edcc8
--- /dev/null
+++ b/cmake-modules/ConfigureChecks.cmake
@@ -0,0 +1,6 @@
+include(CheckIncludeFile)
+include(CheckSymbolExists)
+
+check_symbol_exists(scandir dirent.h HAVE_SCANDIR)
+check_include_file (error.h HAVE_ERROR_H)
+check_include_file (search.h HAVE_TSEARCH)
diff --git a/cmake-modules/ConfigureChecksIntl.cmake b/cmake-modules/ConfigureChecksIntl.cmake
new file mode 100644
index 0000000..407fa81
--- /dev/null
+++ b/cmake-modules/ConfigureChecksIntl.cmake
@@ -0,0 +1,71 @@
+# This is a relatively minimal set of checks needed to get the
+# gettext-runtime library to compile. It's possible that more extensive
+# checks would optimize it.
+
+if (NOT INTL_CHECKS_DONE)
+ include(CheckIncludeFiles)
+ include(CheckSymbolExists)
+ include(CheckCSourceCompiles)
+ include(CheckCSourceRuns)
+ include(CheckTypeSize)
+
+ # Set _GNU_SOURCE appropriately; this is required for certain checks
+ # below (e.g., asprintf, stpcpy, mempcpy).
+ check_c_source_compiles("
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ int main() {return 0;}
+ #endif
+ " HAVE_GNU_SOURCE)
+ if (HAVE_GNU_SOURCE)
+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+ endif()
+
+ # These first three are necessary if the check_type_size calls are to work
+ check_include_files(sys/types.h HAVE_SYS_TYPES_H)
+ check_include_files(stdint.h HAVE_STDINT_H)
+ check_include_files(stddef.h HAVE_STDDEF_H)
+ # Other checks (in some cases only for check_symbol_exists commands)
+ check_include_files(inttypes.h HAVE_INTTYPES_H)
+ check_include_files(unistd.h HAVE_UNISTD_H)
+
+ # The next 4 checks are required for the conversion of libgnuintl.h.in
+ # to libintl.h and libgnuintl.h
+ check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF)
+ check_symbol_exists(asprintf "stdio.h" HAVE_ASPRINTF)
+ check_symbol_exists(wprintf "stdio.h" HAVE_WPRINTF)
+ check_c_source_runs("
+ #include <stdio.h>
+ #include <string.h>
+ static char *format = \"%2$d %1$d\";
+ static char buf[100];
+ int main ()
+ {
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, \"55 33\") != 0);
+ }" HAVE_POSIX_PRINTF)
+
+
+ check_symbol_exists(LC_MESSAGES "locale.h" HAVE_LC_MESSAGES)
+ check_symbol_exists(fcntl "fcntl.h" HAVE_FCNTL)
+ check_symbol_exists(stpcpy "string.h" HAVE_STPCPY)
+ check_symbol_exists(mempcpy "string.h" HAVE_MEMPCPY)
+ check_symbol_exists(getcwd "unistd.h" HAVE_GETCWD)
+ check_symbol_exists(alloca "alloca.h" HAVE_ALLOCA)
+ check_c_source_compiles("
+ #include <inttypes.h>
+ #include <sys/types.h>
+ int main() {uintmax_t tmp; return 0;}
+ " HAVE_INTTYPES_H_WITH_UINTMAX)
+ check_c_source_compiles("
+ #include <stdint.h>
+ #include <sys/types.h>
+ int main() {uintmax_t tmp; return 0;}
+ " HAVE_STDINT_H_WITH_UINTMAX)
+
+
+ check_type_size(intmax_t INTMAX_T)
+ check_type_size(uintmax_t UINTMAX_T)
+
+ set(INTL_CHECKS_DONE TRUE)
+endif (NOT INTL_CHECKS_DONE)
diff --git a/cmake-modules/FindIconv.cmake b/cmake-modules/FindIconv.cmake
new file mode 100644
index 0000000..736948b
--- /dev/null
+++ b/cmake-modules/FindIconv.cmake
@@ -0,0 +1,74 @@
+# - Try to find Iconv
+# Once done this will define
+#
+# ICONV_FOUND - system has Iconv
+# ICONV_INCLUDE_DIR - the Iconv include directory
+# ICONV_LIBRARIES - Link these to use Iconv
+# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
+#
+# This was mostly borrowed from Strigi. LyX also has a (quite
+# different) FindICONV: the one in LyX does not check
+# second_argument_is_const, but seems to have more fleshed-out support
+# for WIN32. There may need to be some merging done.
+# Tim Holy, 2008-05-07
+
+include(CheckCXXSourceCompiles)
+
+IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+ # Already in cache, be silent
+ SET(ICONV_FIND_QUIETLY TRUE)
+ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+
+FIND_PATH(ICONV_INCLUDE_DIR iconv.h
+ /Developer/SDKs/MacOSX10.4u.sdk/usr/include/iconv.h
+ /Developer/SDKs/MacOSX10.5.sdk/usr/include/iconv.h
+ /usr/include
+)
+
+
+FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv2 c
+ PATHS
+ /Developer/SDKs/MacOSX10.4u.sdk/usr/lib
+ /Developer/SDKs/MacOSX10.5.sdk/usr/lib
+ /usr/lib
+)
+
+
+IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+ SET(ICONV_FOUND TRUE)
+ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
+
+set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
+set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
+IF(ICONV_FOUND)
+ check_cxx_source_compiles("
+ #include <iconv.h>
+ int main(){
+ iconv_t conv = 0;
+ const char* in = 0;
+ size_t ilen = 0;
+ char* out = 0;
+ size_t olen = 0;
+ iconv(conv, &in, &ilen, &out, &olen);
+ return 0;
+ }
+" ICONV_SECOND_ARGUMENT_IS_CONST )
+ENDIF(ICONV_FOUND)
+set(CMAKE_REQUIRED_INCLUDES)
+set(CMAKE_REQUIRED_LIBRARIES)
+
+IF(ICONV_FOUND)
+ IF(NOT ICONV_FIND_QUIETLY)
+ MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
+ ENDIF(NOT ICONV_FIND_QUIETLY)
+ELSE(ICONV_FOUND)
+ IF(Iconv_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "Could not find Iconv")
+ ENDIF(Iconv_FIND_REQUIRED)
+ENDIF(ICONV_FOUND)
+
+MARK_AS_ADVANCED(
+ ICONV_INCLUDE_DIR
+ ICONV_LIBRARIES
+ ICONV_SECOND_ARGUMENT_IS_CONST
+)
diff --git a/cmake-modules/FindMSGFMT.cmake b/cmake-modules/FindMSGFMT.cmake
new file mode 100644
index 0000000..3f72595
--- /dev/null
+++ b/cmake-modules/FindMSGFMT.cmake
@@ -0,0 +1,49 @@
+#
+# Find the msgfmt program
+#
+# Defined variables:
+# MSGFMT_FOUND
+# MSGFMT_EXECUTABLE
+#
+# Macro:
+# ADD_TRANSLATIONS
+#
+# This requires that the variable LOCALE_INSTALL_DIR be set to the place you
+# want to install the .mo files.
+
+
+IF(MSGFMT_EXECUTABLE)
+ SET(MSGFMT_FOUND TRUE)
+ELSE(MSGFMT_EXECUTABLE)
+ FIND_PROGRAM(MSGFMT_EXECUTABLE
+ NAMES msgfmt gmsgfmt
+ PATHS /bin /usr/bin /usr/local/bin /opt/local/bin)
+ IF(MSGFMT_EXECUTABLE)
+ SET(MSGFMT_FOUND TRUE)
+ ELSE(MSGFMT_EXECUTABLE)
+ IF(NOT MSGFMT_FIND_QUIETLY)
+ IF(MSGFMT_FIND_REQUIRED)
+ MESSAGE(FATAL_ERROR "msgfmt program couldn't be found")
+ ENDIF(MSGFMT_FIND_REQUIRED)
+ ENDIF(NOT MSGFMT_FIND_QUIETLY)
+ ENDIF(MSGFMT_EXECUTABLE)
+ MARK_AS_ADVANCED(MSGFMT_EXECUTABLE)
+ENDIF (MSGFMT_EXECUTABLE)
+
+MACRO(ADD_TRANSLATIONS _baseName)
+ SET(_outputs)
+ FOREACH(_file ${ARGN})
+ GET_FILENAME_COMPONENT(_file_we ${_file} NAME_WE)
+ SET(_out "${CMAKE_CURRENT_BINARY_DIR}/${_file_we}.gmo")
+ SET(_in "${CMAKE_CURRENT_SOURCE_DIR}/${_file_we}.po")
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_out}
+ COMMAND ${MSGFMT_EXECUTABLE} -o ${_out} ${_in}
+ DEPENDS ${_in} )
+ INSTALL(FILES ${_out}
+ DESTINATION ${LOCALE_INSTALL_DIR}/${_file_we}/LC_MESSAGES/
+ RENAME ${_baseName}.mo )
+ SET(_outputs ${_outputs} ${_out})
+ ENDFOREACH(_file)
+ ADD_CUSTOM_TARGET(translations ALL DEPENDS ${_outputs})
+ENDMACRO(ADD_TRANSLATIONS)
diff --git a/cmake-modules/FindSDL_Pango.cmake b/cmake-modules/FindSDL_Pango.cmake
new file mode 100644
index 0000000..39283bd
--- /dev/null
+++ b/cmake-modules/FindSDL_Pango.cmake
@@ -0,0 +1,83 @@
+# - Locate SDL_Pango library
+# This module defines
+# SDLPANGO_LIBRARY, the library to link against
+# SDLPANGO_FOUND, if false, do not try to link to SDL
+# SDLPANGO_INCLUDE_DIR, where to find SDL/SDL.h
+#
+# $SDLDIR is an environment variable that would
+# correspond to the ./configure --prefix=$SDLDIR
+# used in building SDL.
+# Created by Tim Holy. This was influenced by the FindSDL_ttf.cmake
+# module by Eric Wing.
+# An SDL_Pango framework doesn't seem to exist for OS X, so the rest
+# of the comments below are probably not relevant.
+# This has modifications to recognize OS X frameworks and
+# additional Unix paths (FreeBSD, etc).
+# On OSX, this will prefer the Framework version (if found) over others.
+# People will have to manually change the cache values of
+# SDLPANGO_LIBRARY to override this selection.
+FIND_PATH(SDLPANGO_INCLUDE_DIR SDL_Pango.h
+ $ENV{SDLPANGODIR}/include
+ $ENV{SDLDIR}/include
+ ~/Library/Frameworks/SDL_Pango.framework/Headers
+ /Library/Frameworks/SDL_Pango.framework/Headers
+ /usr/local/include/SDL
+ /usr/include/SDL
+ /usr/local/include/SDL12
+ /usr/local/include/SDL11 # FreeBSD ports
+ /usr/include/SDL12
+ /usr/include/SDL11
+ /usr/local/include
+ /usr/include
+ /sw/include/SDL # Fink
+ /sw/include
+ /opt/local/include/SDL # DarwinPorts
+ /opt/local/include
+ /opt/csw/include/SDL # Blastwave
+ /opt/csw/include
+ /opt/include/SDL
+ /opt/include
+ )
+# I'm not sure if I should do a special casing for Apple. It is
+# unlikely that other Unix systems will find the framework path.
+# But if they do ([Next|Open|GNU]Step?),
+# do they want the -framework option also?
+IF(${SDLPANGO_INCLUDE_DIR} MATCHES ".framework")
+ # Extract the path the framework resides in so we can use it for the -F flag
+ STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" SDLPANGO_FRAMEWORK_PATH_TEMP ${SDLPANGO_INCLUDE_DIR})
+ IF("${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # String is in default search path, don't need to use -F
+ SET(SDLPANGO_LIBRARY "-framework SDL_Pango" CACHE STRING "SDL_Pango framework for OSX")
+ ELSE("${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # String is not /Library/Frameworks, need to use -F
+ SET(SDLPANGO_LIBRARY "-F${SDLPANGO_FRAMEWORK_PATH_TEMP} -framework SDL_Pango" CACHE STRING "SDL_Pango framework for OSX")
+ ENDIF("${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLPANGO_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # Clear the temp variable so nobody can see it
+ SET(SDLPANGO_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
+
+ELSE(${SDLPANGO_INCLUDE_DIR} MATCHES ".framework")
+ FIND_LIBRARY(SDLPANGO_LIBRARY
+ NAMES SDL_Pango
+ PATHS
+ $ENV{SDLPANGODIR}/lib
+ $ENV{SDLDIR}/lib
+ /usr/local/lib
+ /usr/lib
+ /sw/lib
+ /opt/local/lib
+ /opt/csw/lib
+ /opt/lib
+ )
+ENDIF(${SDLPANGO_INCLUDE_DIR} MATCHES ".framework")
+
+SET(SDLPANGO_FOUND "NO")
+IF(SDLPANGO_LIBRARY)
+ SET(SDLPANGO_FOUND "YES")
+ENDIF(SDLPANGO_LIBRARY)
+
diff --git a/cmake-modules/FindSDL_gfx.cmake b/cmake-modules/FindSDL_gfx.cmake
new file mode 100644
index 0000000..f4f23a3
--- /dev/null
+++ b/cmake-modules/FindSDL_gfx.cmake
@@ -0,0 +1,81 @@
+# - Locate SDL_gfx library
+# This module defines
+# SDLGFX_LIBRARY, the library to link against
+# SDLGFX_FOUND, if false, do not try to link to SDL
+# SDLGFX_INCLUDE_DIR, where to find SDL/SDL_gfxPrimitives.h
+#
+# $SDLDIR is an environment variable that would
+# correspond to the ./configure --prefix=$SDLDIR
+# used in building SDL.
+#
+# Created by Olivier DOLE. This was copied from the FindSDL_image.cmake
+# module.
+
+# On OSX, this will prefer the Framework version (if found) over others.
+# People will have to manually change the cache values of
+# SDLGFX_LIBRARY to override this selection.
+FIND_PATH(SDLGFX_INCLUDE_DIR SDL_gfxPrimitives.h
+ $ENV{SDLGFXDIR}/include
+ $ENV{SDLDIR}/include
+ ~/Library/Frameworks/SDL_gfx.framework/Headers
+ /Library/Frameworks/SDL_gfx.framework/Headers
+ /usr/local/include/SDL
+ /usr/include/SDL
+ /usr/local/include/SDL12
+ /usr/local/include/SDL11 # FreeBSD ports
+ /usr/include/SDL12
+ /usr/include/SDL11
+ /usr/local/include
+ /usr/include
+ /sw/include/SDL # Fink
+ /sw/include
+ /opt/local/include/SDL # DarwinPorts
+ /opt/local/include
+ /opt/csw/include/SDL # Blastwave
+ /opt/csw/include
+ /opt/include/SDL
+ /opt/include
+ )
+# I'm not sure if I should do a special casing for Apple. It is
+# unlikely that other Unix systems will find the framework path.
+# But if they do ([Next|Open|GNU]Step?),
+# do they want the -framework option also?
+IF(${SDLGFX_INCLUDE_DIR} MATCHES ".framework")
+ # Extract the path the framework resides in so we can use it for the -F flag
+ STRING(REGEX REPLACE "(.*)/.*\\.framework/.*" "\\1" SDLGFX_FRAMEWORK_PATH_TEMP ${SDLGFX_INCLUDE_DIR})
+ IF("${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # String is in default search path, don't need to use -F
+ SET(SDLGFX_LIBRARY "-framework SDL_gfx" CACHE STRING "SDL_gfx framework for OSX")
+ ELSE("${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # String is not /Library/Frameworks, need to use -F
+ SET(SDLGFX_LIBRARY "-F${SDLGFX_FRAMEWORK_PATH_TEMP} -framework SDL_gfx" CACHE STRING "SDL_gfx framework for OSX")
+ ENDIF("${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/Library/Frameworks"
+ OR "${SDLGFX_FRAMEWORK_PATH_TEMP}" STREQUAL "/System/Library/Frameworks"
+ )
+ # Clear the temp variable so nobody can see it
+ SET(SDLGFX_FRAMEWORK_PATH_TEMP "" CACHE INTERNAL "")
+
+ELSE(${SDLGFX_INCLUDE_DIR} MATCHES ".framework")
+ FIND_LIBRARY(SDLGFX_LIBRARY
+ NAMES SDL_gfx
+ PATHS
+ $ENV{SDLGFXDIR}/lib
+ $ENV{SDLDIR}/lib
+ /usr/local/lib
+ /usr/lib
+ /sw/lib
+ /opt/local/lib
+ /opt/csw/lib
+ /opt/lib
+ )
+ENDIF(${SDLGFX_INCLUDE_DIR} MATCHES ".framework")
+
+SET(SDLGFX_FOUND "NO")
+IF(SDLGFX_LIBRARY)
+ SET(SDLGFX_FOUND "YES")
+ENDIF(SDLGFX_LIBRARY)
+
diff --git a/config.h.cmake b/config.h.cmake
new file mode 100644
index 0000000..6a2e56c
--- /dev/null
+++ b/config.h.cmake
@@ -0,0 +1,17 @@
+#cmakedefine HAVE_ERROR_H 1
+#cmakedefine HAVE_SCANDIR 1
+
+#cmakedefine HAVE_GETTEXT 1
+#cmakedefine ENABLE_NLS 1
+#cmakedefine SDL_Pango 1
+#cmakedefine HAVE_RSVG 1
+
+/* Stuff needed for linewrap */
+#cmakedefine LINEBREAK 1
+#cmakedefine HAVE_STDINT_H 1
+#cmakedefine ICONV_SECOND_ARGUMENT_IS_CONST 1
+#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
+#define ICONV_CONST const
+#else
+#define ICONV_CONST
+#endif
diff --git a/config.rpath b/config.rpath
new file mode 100755
index 0000000..c547c68
--- /dev/null
+++ b/config.rpath
@@ -0,0 +1,666 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2007 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ darwin*)
+ case $cc_basename in
+ xlc*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | pw32* | os2*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ newsos6)
+ ;;
+ linux* | k*bsd*-gnu)
+ case $cc_basename in
+ icc* | ecc*)
+ wl='-Wl,'
+ ;;
+ pgcc | pgf77 | pgf90)
+ wl='-Wl,'
+ ;;
+ ccc*)
+ wl='-Wl,'
+ ;;
+ como)
+ wl='-lopt='
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ wl='-Wl,'
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
+ unicos*)
+ wl='-Wl,'
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we cannot use
+ # them.
+ ld_shlibs=no
+ ;;
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ gnu* | linux* | k*bsd*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = no; then
+ hardcode_libdir_flag_spec=
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+ bsdi[45]*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ hardcode_direct=no
+ if test "$GCC" = yes ; then
+ :
+ else
+ case $cc_basename in
+ xlc*)
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd* | dragonfly*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+ hpux11*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ ;;
+ *)
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ ;;
+ sysv5* | sco3.2v5* | sco5v6*)
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ library_names_spec='$libname.a'
+ ;;
+ aix4* | aix5*)
+ library_names_spec='$libname$shrext'
+ ;;
+ amigaos*)
+ library_names_spec='$libname.a'
+ ;;
+ beos*)
+ library_names_spec='$libname$shrext'
+ ;;
+ bsdi[45]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ cygwin* | mingw* | pw32*)
+ shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ library_names_spec='$libname$shrext'
+ ;;
+ dgux*)
+ library_names_spec='$libname$shrext'
+ ;;
+ freebsd1*)
+ ;;
+ freebsd* | dragonfly*)
+ case "$host_os" in
+ freebsd[123]*)
+ library_names_spec='$libname$shrext$versuffix' ;;
+ *)
+ library_names_spec='$libname$shrext' ;;
+ esac
+ ;;
+ gnu*)
+ library_names_spec='$libname$shrext'
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $host_cpu in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ library_names_spec='$libname$shrext'
+ ;;
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux* | k*bsd*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ netbsd*)
+ library_names_spec='$libname$shrext'
+ ;;
+ newsos6)
+ library_names_spec='$libname$shrext'
+ ;;
+ nto-qnx*)
+ library_names_spec='$libname$shrext'
+ ;;
+ openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ library_names_spec='$libname.a'
+ ;;
+ osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv4*MP*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
+ ;;
+ uts4*)
+ library_names_spec='$libname$shrext'
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..3ba4704
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,454 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+AC_INIT([Tux Of Math Command],[1.8.0],[tuxmath-devel at lists.sourceforge.net],[tuxmath])
+
+AC_PREREQ(2.61)
+AC_CANONICAL_HOST
+AC_CANONICAL_BUILD
+AC_CANONICAL_TARGET
+
+AM_INIT_AUTOMAKE(foreign)
+AC_CONFIG_SRCDIR([src/tuxmath.c])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_MACRO_DIR([m4])
+
+NAME_VERSION=$PACKAGE-$VERSION
+
+AC_DEFINE_UNQUOTED([PROGRAM_NAME], "$PACKAGE", [Tux Of Math Command])
+
+AC_SUBST(NAME_VERSION)
+
+AC_GNU_SOURCE
+
+dnl For libtool support to link libt4k-common:
+dnl NOTE - currently libtool init commented out because of errors in crossbuild.
+dnl libtool not actually needed until we start to use libt4k-common.
+dnl When crossbuild issues fixed, uncomment libtool init and remove ranlib line.
+#LT_INIT
+AC_PROG_RANLIB
+
+# ----------------------------------------------------------------------
+# Checks for programs.
+# ----------------------------------------------------------------------
+
+AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+AC_PROG_AWK
+AC_PROG_CPP
+AC_PROG_MKDIR_P
+AC_PROG_YACC
+
+
+# ---------------------------------------------------------------------
+# Gettext support:
+# ---------------------------------------------------------------------
+
+AM_GNU_GETTEXT_VERSION([0.17])
+
+dnl Use the following line whenever possible:
+AM_GNU_GETTEXT([external])
+dnl If external intl lib unavailable on platform, comment out the
+dnl above line and uncomment the following line to use the included
+dnl intl subdirectory. This used to be needed for the Windows cross-
+dnl build but is not longer necessary:
+#AM_GNU_GETTEXT
+
+# -----------------------------------------------------------------------
+# Checks for libraries.
+# -----------------------------------------------------------------------
+
+# Check platform - see if WinMain needed:
+AC_MSG_CHECKING([for native Win32])
+case "$host" in
+ *-*-mingw*)
+ native_win32=yes
+ ;;
+ *)
+ native_win32=no
+ ;;
+esac
+AC_MSG_RESULT([$native_win32])
+
+dnl FIXME - get rid of remaining win32 conditional code
+AM_CONDITIONAL(BUILD_MINGW32, test $native_win32 = yes)
+
+
+
+# -----------------------------------------------------------------------
+# Checks for libraries.
+# -----------------------------------------------------------------------
+
+
+
+dnl ---------------------------------------------------------
+dnl For crossbuild with mingw-cross-env, we use pkg_config,
+dnl but for native linux build we use #AC_CHECK_LIB() because
+dnl some distros (incl. Debian) don't support pkg_config for
+dnl all of the SDL libraries:
+dnl ---------------------------------------------------------
+
+
+dnl Check for SDL
+PKG_CHECK_MODULES([SDL],
+ [sdl >= 1.2.0],
+ [],
+ [ SDL_VERSION=1.2.0
+ AM_PATH_SDL($SDL_VERSION, :,
+ AC_MSG_ERROR([SDL version $SDL_VERSION not found! http://www.libsdl.org])
+ )
+ ]
+)
+
+CFLAGS="$CFLAGS $SDL_CFLAGS"
+LIBS="$LIBS $SDL_LIBS"
+
+
+
+
+dnl ---------------------------------------------------------------------------
+dnl In the following checks we attempt to use pkg-config if available, falling
+dnl back to #AC_CHECK_LIB if #PKG_CHECK_MODULES fails.
+dnl ---------------------------------------------------------------------------
+
+dnl Check for SDL_image: ------------------------------------------------------
+
+PKG_CHECK_MODULES([SDL_IMAGE],
+ [SDL_image],
+ ,
+ [
+ [echo "SDL_IMAGE not found via pkg_config, checking with AC_CHECK_LIB:"]
+ AC_CHECK_LIB([SDL_image],
+ [IMG_Load],
+ ,
+ [AC_MSG_ERROR([SDL_image not found! http://www.libsdl.org/projects/SDL_image])]
+ )
+ [echo "SDL_IMAGE successfully located"]
+ ]
+)
+
+AC_DEFINE([HAVE_LIBSDL_IMAGE],[1],[Define to 1 if you have the `SDL_image` library])
+CFLAGS="$CFLAGS $SDL_IMAGE_CFLAGS"
+LIBS="$LIBS $SDL_IMAGE_LIBS"
+
+
+dnl Check for SDL_mixer: --------------------------------------------------------
+
+PKG_CHECK_MODULES([SDL_MIXER],
+ [SDL_mixer],
+ ,
+ [
+ [echo "SDL_MIXER not found via pkg_config, checking with AC_CHECK_LIB:"]
+ AC_CHECK_LIB([SDL_mixer],
+ [Mix_OpenAudio],
+ ,
+ [AC_MSG_ERROR([SDL_mixer not found! http://www.libsdl.org/projects/SDL_mixer])]
+ )
+ [echo "SDL_MIXER successfully located"]
+ ]
+)
+
+AC_DEFINE([HAVE_LIBSDL_MIXER],[1],[Define to 1 if you have the `SDL_mixer` library])
+CFLAGS="$CFLAGS $SDL_MIXER_CFLAGS"
+LIBS="$LIBS $SDL_MIXER_LIBS"
+
+
+
+dnl Check for SDL_Pango: --------------------------------------------------------
+
+dnl SDL_Pango is enabled by default.
+dnl If SDL_Pango disabled at configure time, or if we can't find it,
+dnl we look for SDL_ttf:
+
+AC_ARG_WITH([sdlpango],
+ [AS_HELP_STRING([--without-sdlpango],
+ [Do not use SDL_Pango even if available])],
+ [],
+ [with_sdlpango=yes]
+)
+
+if test "x$with_sdlpango" != xno; then
+
+PKG_CHECK_MODULES([SDL_PANGO],
+ [SDL_Pango],
+ ,
+ [
+ [echo "SDL_PANGO not found via pkg_config, checking with AC_CHECK_LIB:"]
+ AC_CHECK_LIB([SDL_Pango],
+ [SDLPango_Init],
+ ,
+ [AC_MSG_ERROR([SDL_Pango not found! http://sdlpango.sourceforge.net])]
+ )
+ [echo "SDL_PANGO successfully located"]
+ ]
+)
+
+AC_DEFINE([HAVE_LIBSDL_PANGO],[1],[Define to 1 if you have the `SDL_Pango` library])
+CFLAGS="$CFLAGS $SDL_PANGO_CFLAGS"
+LIBS="$LIBS $SDL_PANGO_LIBS"
+
+fi
+
+dnl We only use SDL_ttf if SDL_Pango disabled: --------------------------------------
+
+if [test "x$with_sdlpango" = xno]; then
+
+dnl Add freetype link "by hand" until mingw-cross-env takes care
+dnl of this automatically
+LIBS="-lfreetype $LIBS"
+
+AC_CHECK_LIB([SDL_ttf],
+ [TTF_Init],
+ ,
+ [AC_MSG_ERROR([SDL_ttf not found! http://www.libsdl.org/projects/SDL_ttf])])
+fi
+
+
+
+dnl Check for libRSVG and cairo. SVG support is enabled by default
+
+AC_ARG_WITH([rsvg],
+ [AS_HELP_STRING([--without-rsvg],[do not use libRSVG even if available])],
+ [with_rsvg=no],
+ [with_rsvg=yes])
+
+if test "x$with_rsvg" = xyes; then
+ RSVG_CFLAGS=""
+ RSVG_LIBS=""
+ PKG_CHECK_MODULES([RSVG],
+ [librsvg-2.0 >= 2.18],
+ ,
+ [AC_MSG_FAILURE([libRSVG test failed (--without-rsvg to disable svg support)])])
+ CFLAGS="$CFLAGS $RSVG_CFLAGS"
+ LIBS="$LIBS $RSVG_LIBS"
+fi
+
+if test "x$with_rsvg" = xyes; then
+ CAIRO_CFLAGS=""
+ CAIRO_LIBS=""
+ PKG_CHECK_MODULES([CAIRO],
+ [cairo >= 1.4.10],
+ ,
+ [AC_MSG_FAILURE([cairo test failed (--without-rsvg to disable svg support)])])
+ CFLAGS="$CFLAGS $CAIRO_CFLAGS"
+ LIBS="$LIBS $CAIRO_LIBS"
+ AC_DEFINE([HAVE_RSVG],[1],[Define to 1 if you have the `libRSVG` library])
+fi
+
+dnl Check for (somewhat) higher-level math functions - needed for SDL_extras
+AC_CHECK_LIB([m],
+ [csin],
+ ,
+ [AC_MSG_ERROR([Math library not found - functions in <math.h> may not be available.])])
+
+
+
+
+dnl Check for SDL_net: --------------------------------------------------------
+
+dnl SDL_net is enabled by default.
+
+AC_ARG_WITH([sdlnet],
+ [AS_HELP_STRING([--without-sdlnet],
+ [Do not use SDL_net even if available])],
+ [],
+ [with_sdlnet=yes]
+)
+
+if test "x$with_sdlnet" != xno; then
+ dnl We will need this for socket programming on Win32
+ AC_CHECK_LIB([ws2_32],
+ [WSAStartup],
+ ,
+ [AC_MSG_NOTICE([Windows socket library ws2_32 not found - (only needed on win32)])]
+ )
+
+
+
+ PKG_CHECK_EXISTS([SDL_net],
+ dnl Use pkg-config if possible:
+ [SDL_NET_CFLAGS=""
+ SDL_NET_LIBS=""
+ PKG_CHECK_MODULES([SDL_NET],
+ [SDL_net],
+ ,
+ [with_sdlnet=no;
+ AC_MSG_FAILURE([SDL_net test failed (--without-sdlnet to disable)])])
+ CFLAGS="$CFLAGS $SDL_NET_CFLAGS"
+ LIBS="$LIBS $SDL_NET_LIBS"
+ AC_DEFINE([HAVE_LIBSDL_NET],[1],[Define to 1 if you have the `SDL_net` library]
+ )],
+ dnl Fallback if we can't use pkg-config:
+ [AC_CHECK_LIB([SDL_net],
+ [SDLNet_Init],
+ ,
+ [with_sdlnet=no;
+ AC_MSG_FAILURE([SDL_net test failed (--without-sdlnet to disable)])]
+ )]
+ )
+fi
+
+
+
+dnl Use of libt4kcommon is disabled for now by default
+dnl but can be enabled at configure time for testing and development.
+
+AC_ARG_WITH([libt4kcommon],
+ [AS_HELP_STRING([--with-libt4kcommon],[use libtk4common if available])],
+ [with_libt4kcommon=yes],
+ [with_libt4kcommon=no])
+
+if test "x$with_libt4kcommon" != xno; then
+AC_CHECK_LIB([t4kcommon],
+ [InitT4KCommon],
+ ,
+ [with_libt4kcommon=no;
+ AC_MSG_FAILURE([libt4kcommon test failed (--without-libt4kcommon to disable use of libt4kcommon)])])
+fi
+
+
+dnl Check for (somewhat) higher-level math functions - needed for SDL_extras
+dnl AC_CHECK_LIB([m],
+dnl [csin],
+dnl ,
+dnl [AC_MSG_ERROR([Math library not found - functions in <math.h> may not be available.])])
+
+
+
+# --------------------------------------------------------------------------------------
+# Checks for header files.
+# --------------------------------------------------------------------------------------
+
+AC_FUNC_ALLOCA
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS([argz.h error.h errno.h fcntl.h float.h iconv.h inttypes.h langinfo.h libgen.h libintl.h limits.h locale.h malloc.h math.h pthread.h stddef.h stdint.h stdio_ext.h stdlib.h string.h strings.h sys/param.h unistd.h wchar.h])
+
+
+# --------------------------------------------------------------------------------------------
+# Checks for typedefs, structures, and compiler characteristics.
+# --------------------------------------------------------------------------------------------
+
+AC_HEADER_STDBOOL
+AC_C_CONST
+AC_C_INLINE
+AC_C_RESTRICT
+AC_TYPE_MODE_T
+AC_TYPE_SIZE_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT8_T
+AC_C_VOLATILE
+AC_CHECK_TYPES([ptrdiff_t])
+
+
+
+# -------------------------------------------------------------------------------------------
+# Checks for library functions.
+# -------------------------------------------------------------------------------------------
+
+
+AC_FUNC_CLOSEDIR_VOID
+AC_FUNC_ERROR_AT_LINE
+#AC_FUNC_MALLOC
+AC_FUNC_MMAP
+#AC_FUNC_REALLOC
+AC_FUNC_STAT
+AC_FUNC_STRCOLL
+AC_FUNC_STRTOD
+AC_FUNC_VPRINTF
+AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify atexit basename bcopy fcntl floor getcwd localeconv localtime_r memmove mempcpy memset Mix_Init mkdir munmap nl_langinfo scandir setlocale sqrt stpcpy strcasecmp strchr strcspn strdup strncasecmp strndup strrchr strstr strtoul])
+
+
+# Set the
+MINGW32_PACKAGE_DATA_DIR="data"
+AC_SUBST(MINGW32_PACKAGE_DATA_DIR)
+
+#AM_CONDITIONAL(BUILD_MINGW32, test "$native_win32" = yes)
+
+if test $native_win32 = yes; then
+ AC_DEFINE([BUILD_MINGW32], 1,[Native MinGW32 build])
+ CFLAGS="$CFLAGS -D__GW32__"
+ LIBS="$LIBS -luuid -lole32 -lwsock32 -mwindows"
+ CPPFLAGS="$CPPFLAGS -idirafter $prefix/include/glibc"
+ AC_PATH_PROG(WINDRES, "$target_alias-windres", no, [$PATH])
+fi
+
+
+# ------------------------------------------------------------
+# Support for building NSIS Win32 installer:
+# ------------------------------------------------------------
+
+# This is the temporary DESTDIR target into which we do a "make install" before
+# the files get copied into the NSIS installer:
+NSI_INSTALL_DIR=mingw32
+AC_SUBST(NSI_INSTALL_DIR)
+
+# This is the path (relative to the TuxMath.exe binary) where the data files are
+# placed within the TuxMath folder on the user's Windows machine:
+MINGW32_PACKAGE_DATA_DIR="data"
+AC_SUBST(MINGW32_PACKAGE_DATA_DIR)
+
+AC_ARG_WITH([dll-directory],
+ AS_HELP_STRING([--with-dll-directory=path], [provide location of DLL files needed for build [$(NSI_DLL_DIR)]]),
+ [dll_path=$withval],
+ [dll_path=no])
+
+AM_CONDITIONAL(NSI_BUILD, test $dll_path = no)
+
+if test $dll_path != no; then
+NSI_DLL_DIR=$dll_path
+else
+NSI_DLL_DIR=~/tuxmath_dll
+fi
+AC_SUBST(NSI_DLL_DIR)
+
+AC_PATH_PROG(NSIS, makensis, [], [$PATH])
+
+
+
+# ---------------------------------------------------------------
+# Create Makefiles
+# ---------------------------------------------------------------
+
+AC_CONFIG_FILES([
+Makefile
+tuxmath.spec
+tuxmath_preview.spec
+data/Makefile
+data/fonts/Makefile
+data/images/Makefile
+data/images/backgrounds/Makefile
+data/images/cities/Makefile
+data/images/comets/Makefile
+data/images/icons/Makefile
+data/images/igloos/Makefile
+data/images/penguins/Makefile
+data/images/sprites/Makefile
+data/images/status/Makefile
+data/images/title/Makefile
+data/images/tux/Makefile
+data/images/factoroids/Makefile
+data/menus/Makefile
+data/missions/Makefile
+data/missions/arcade/Makefile
+data/missions/campaign/Makefile
+data/missions/campaign/ace/Makefile
+data/missions/campaign/cadet/Makefile
+data/missions/campaign/commando/Makefile
+data/missions/campaign/ranger/Makefile
+data/missions/campaign/scout/Makefile
+data/missions/lessons/Makefile
+data/missions/multiplay/Makefile
+data/sounds/Makefile
+doc/Makefile
+nsis/tuxmath.nsi
+nsis/tuxmath_with_conf.nsi
+src/Makefile
+intl/Makefile
+linebreak/Makefile
+po/Makefile.in
+])
+
+AC_OUTPUT
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100644
index 0000000..ce901bb
--- /dev/null
+++ b/data/CMakeLists.txt
@@ -0,0 +1,22 @@
+# The information in the data directory has to be placed in a location
+# that tuxmath can find
+
+if (UNIX)
+ if (APPLE)
+ # The MACOSX_PACKAGE_LOCATION source file property doesn't seem to
+ # work, so just do this by an explicit install command.
+ set (DESTDIR "${TuxMath_BINARY_DIR}/src/${TUXMATH_DATA_PREFIX}")
+ # Install the icon file in the proper location
+ install (FILES images/icons/tuxmath.icns
+ DESTINATION ${DESTDIR})
+ else (APPLE)
+ # This sets it relative to the install location (usually /usr/local/)
+ set (DESTDIR "${TUXMATH_DATA_PREFIX}")
+ endif (APPLE)
+ install (DIRECTORY .
+ DESTINATION ${DESTDIR}
+ PATTERN Makefile* EXCLUDE
+ PATTERN .svn EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE
+ PATTERN *~ EXCLUDE)
+endif (UNIX)
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 0000000..9c7ee6c
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data:
+## Process with Automake to create Makefile.in
+
+SUBDIRS = fonts \
+ images \
+ menus \
+ missions \
+ sounds
+
+#EXTRA_DIST = options
diff --git a/data/fonts/AndikaDesRevG.ttf b/data/fonts/AndikaDesRevG.ttf
new file mode 100644
index 0000000..f9dd29f
Binary files /dev/null and b/data/fonts/AndikaDesRevG.ttf differ
diff --git a/data/fonts/Makefile.am b/data/fonts/Makefile.am
new file mode 100644
index 0000000..fca95d9
--- /dev/null
+++ b/data/fonts/Makefile.am
@@ -0,0 +1,27 @@
+## Makefile.am for tuxmath - data/fonts:
+
+## A little explanation - these variables allow building of the dist tarball
+## either without the fonts ("make dist") or with the fonts ("make dist_with_fonts"),
+## see also top level Makefile.am.
+## 'data_fonts' is a list of the font files in this directory.
+## 'dist_fonts' determines what fonts get bundled in. It is empty by default,
+## but gets set to 'data_fonts' in the "make dist_with_fonts" target in the
+## top-level Makefile.am.
+
+EXTRA_DIST = $(dist_fonts)
+
+
+## Handle install "manually" because otherwise it fails on package without fonts.
+## The INSTALL_DATA lines are prefixed with '-' because the fonts may or may not be
+## included (depending if package built with "make dist" or "make dist_with_fonts"
+## 'fontsdir' is where the fonts are installed.
+
+fontsdir = $(pkgdatadir)/fonts
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(fontsdir)
+ -$(INSTALL_DATA) $(srcdir)/AndikaDesRevG.ttf $(DESTDIR)$(fontsdir)
+
+uninstall-local:
+ -rm -f $(DESTDIR)$(fontsdir)/AndikaDesRevG.ttf
+ -rm -f $(DESTDIR)$(fontsdir)
\ No newline at end of file
diff --git a/data/images/Makefile.am b/data/images/Makefile.am
new file mode 100644
index 0000000..55c7689
--- /dev/null
+++ b/data/images/Makefile.am
@@ -0,0 +1,15 @@
+## Makefile.am for tuxmath data/images:
+## Process with AutoMake:
+
+SUBDIRS = backgrounds \
+ cities \
+ comets \
+ factoroids \
+ icons \
+ igloos \
+ penguins \
+ sprites \
+ status \
+ title \
+ tux
+
diff --git a/data/images/backgrounds/0.jpg b/data/images/backgrounds/0.jpg
new file mode 100644
index 0000000..a0ea980
Binary files /dev/null and b/data/images/backgrounds/0.jpg differ
diff --git a/data/images/backgrounds/1.jpg b/data/images/backgrounds/1.jpg
new file mode 100644
index 0000000..5eaa151
Binary files /dev/null and b/data/images/backgrounds/1.jpg differ
diff --git a/data/images/backgrounds/2.jpg b/data/images/backgrounds/2.jpg
new file mode 100644
index 0000000..2879ed3
Binary files /dev/null and b/data/images/backgrounds/2.jpg differ
diff --git a/data/images/backgrounds/3.jpg b/data/images/backgrounds/3.jpg
new file mode 100644
index 0000000..f211ad6
Binary files /dev/null and b/data/images/backgrounds/3.jpg differ
diff --git a/data/images/backgrounds/4.jpg b/data/images/backgrounds/4.jpg
new file mode 100644
index 0000000..c9f353c
Binary files /dev/null and b/data/images/backgrounds/4.jpg differ
diff --git a/data/images/backgrounds/5.jpg b/data/images/backgrounds/5.jpg
new file mode 100644
index 0000000..b335dc6
Binary files /dev/null and b/data/images/backgrounds/5.jpg differ
diff --git a/data/images/backgrounds/6.jpg b/data/images/backgrounds/6.jpg
new file mode 100644
index 0000000..2641d58
Binary files /dev/null and b/data/images/backgrounds/6.jpg differ
diff --git a/data/images/backgrounds/7.jpg b/data/images/backgrounds/7.jpg
new file mode 100644
index 0000000..0dd878c
Binary files /dev/null and b/data/images/backgrounds/7.jpg differ
diff --git a/data/images/backgrounds/Makefile.am b/data/images/backgrounds/Makefile.am
new file mode 100644
index 0000000..bce2d6f
--- /dev/null
+++ b/data/images/backgrounds/Makefile.am
@@ -0,0 +1,13 @@
+## Makefile.am for tuxmath data/images/backgrounds:
+## Process with AutoMake:
+
+backgroundsdir = $(pkgdatadir)/images/backgrounds
+
+dist_backgrounds_DATA = 0.jpg \
+ 1.jpg \
+ 2.jpg \
+ 3.jpg \
+ 4.jpg \
+ 5.jpg \
+ 6.jpg \
+ 7.jpg
diff --git a/data/images/cities/Makefile.am b/data/images/cities/Makefile.am
new file mode 100644
index 0000000..9f35898
--- /dev/null
+++ b/data/images/cities/Makefile.am
@@ -0,0 +1,34 @@
+## Makefile.am for tuxmath data/images/cities:
+## Process with AutoMake:
+
+citiesdir = $(pkgdatadir)/images/cities
+
+dist_cities_DATA = city-blue.png \
+ cdead-blue.png \
+ csplode-blue-1.png \
+ csplode-blue-2.png \
+ csplode-blue-3.png \
+ csplode-blue-4.png \
+ csplode-blue-5.png \
+ city-green.png \
+ cdead-green.png \
+ csplode-green-1.png \
+ csplode-green-2.png \
+ csplode-green-3.png \
+ csplode-green-4.png \
+ csplode-green-5.png \
+ city-orange.png \
+ cdead-orange.png \
+ csplode-orange-1.png \
+ csplode-orange-2.png \
+ csplode-orange-3.png \
+ csplode-orange-4.png \
+ csplode-orange-5.png \
+ city-red.png \
+ cdead-red.png \
+ csplode-red-1.png \
+ csplode-red-2.png \
+ csplode-red-3.png \
+ csplode-red-4.png \
+ csplode-red-5.png \
+ shields.png
diff --git a/data/images/cities/cdead-blue.png b/data/images/cities/cdead-blue.png
new file mode 100644
index 0000000..bc82870
Binary files /dev/null and b/data/images/cities/cdead-blue.png differ
diff --git a/data/images/cities/cdead-green.png b/data/images/cities/cdead-green.png
new file mode 100644
index 0000000..8f884ae
Binary files /dev/null and b/data/images/cities/cdead-green.png differ
diff --git a/data/images/cities/cdead-orange.png b/data/images/cities/cdead-orange.png
new file mode 100644
index 0000000..1d8d852
Binary files /dev/null and b/data/images/cities/cdead-orange.png differ
diff --git a/data/images/cities/cdead-red.png b/data/images/cities/cdead-red.png
new file mode 100644
index 0000000..21243b7
Binary files /dev/null and b/data/images/cities/cdead-red.png differ
diff --git a/data/images/cities/city-blue.png b/data/images/cities/city-blue.png
new file mode 100644
index 0000000..e5b0783
Binary files /dev/null and b/data/images/cities/city-blue.png differ
diff --git a/data/images/cities/city-green.png b/data/images/cities/city-green.png
new file mode 100644
index 0000000..5dd40f7
Binary files /dev/null and b/data/images/cities/city-green.png differ
diff --git a/data/images/cities/city-orange.png b/data/images/cities/city-orange.png
new file mode 100644
index 0000000..7c31332
Binary files /dev/null and b/data/images/cities/city-orange.png differ
diff --git a/data/images/cities/city-red.png b/data/images/cities/city-red.png
new file mode 100644
index 0000000..ee7548e
Binary files /dev/null and b/data/images/cities/city-red.png differ
diff --git a/data/images/cities/csplode-blue-1.png b/data/images/cities/csplode-blue-1.png
new file mode 100644
index 0000000..046e450
Binary files /dev/null and b/data/images/cities/csplode-blue-1.png differ
diff --git a/data/images/cities/csplode-blue-2.png b/data/images/cities/csplode-blue-2.png
new file mode 100644
index 0000000..451e8f6
Binary files /dev/null and b/data/images/cities/csplode-blue-2.png differ
diff --git a/data/images/cities/csplode-blue-3.png b/data/images/cities/csplode-blue-3.png
new file mode 100644
index 0000000..c3c3063
Binary files /dev/null and b/data/images/cities/csplode-blue-3.png differ
diff --git a/data/images/cities/csplode-blue-4.png b/data/images/cities/csplode-blue-4.png
new file mode 100644
index 0000000..dbf60fb
Binary files /dev/null and b/data/images/cities/csplode-blue-4.png differ
diff --git a/data/images/cities/csplode-blue-5.png b/data/images/cities/csplode-blue-5.png
new file mode 100644
index 0000000..cb4f167
Binary files /dev/null and b/data/images/cities/csplode-blue-5.png differ
diff --git a/data/images/cities/csplode-green-1.png b/data/images/cities/csplode-green-1.png
new file mode 100644
index 0000000..a3894f5
Binary files /dev/null and b/data/images/cities/csplode-green-1.png differ
diff --git a/data/images/cities/csplode-green-2.png b/data/images/cities/csplode-green-2.png
new file mode 100644
index 0000000..4bbf4b4
Binary files /dev/null and b/data/images/cities/csplode-green-2.png differ
diff --git a/data/images/cities/csplode-green-3.png b/data/images/cities/csplode-green-3.png
new file mode 100644
index 0000000..1b68b20
Binary files /dev/null and b/data/images/cities/csplode-green-3.png differ
diff --git a/data/images/cities/csplode-green-4.png b/data/images/cities/csplode-green-4.png
new file mode 100644
index 0000000..e7d64dd
Binary files /dev/null and b/data/images/cities/csplode-green-4.png differ
diff --git a/data/images/cities/csplode-green-5.png b/data/images/cities/csplode-green-5.png
new file mode 100644
index 0000000..f92bab0
Binary files /dev/null and b/data/images/cities/csplode-green-5.png differ
diff --git a/data/images/cities/csplode-orange-1.png b/data/images/cities/csplode-orange-1.png
new file mode 100644
index 0000000..6e2b07a
Binary files /dev/null and b/data/images/cities/csplode-orange-1.png differ
diff --git a/data/images/cities/csplode-orange-2.png b/data/images/cities/csplode-orange-2.png
new file mode 100644
index 0000000..48255cd
Binary files /dev/null and b/data/images/cities/csplode-orange-2.png differ
diff --git a/data/images/cities/csplode-orange-3.png b/data/images/cities/csplode-orange-3.png
new file mode 100644
index 0000000..d4bf56b
Binary files /dev/null and b/data/images/cities/csplode-orange-3.png differ
diff --git a/data/images/cities/csplode-orange-4.png b/data/images/cities/csplode-orange-4.png
new file mode 100644
index 0000000..b5e7e25
Binary files /dev/null and b/data/images/cities/csplode-orange-4.png differ
diff --git a/data/images/cities/csplode-orange-5.png b/data/images/cities/csplode-orange-5.png
new file mode 100644
index 0000000..9861ea3
Binary files /dev/null and b/data/images/cities/csplode-orange-5.png differ
diff --git a/data/images/cities/csplode-red-1.png b/data/images/cities/csplode-red-1.png
new file mode 100644
index 0000000..8a0c6e0
Binary files /dev/null and b/data/images/cities/csplode-red-1.png differ
diff --git a/data/images/cities/csplode-red-2.png b/data/images/cities/csplode-red-2.png
new file mode 100644
index 0000000..cfc28c3
Binary files /dev/null and b/data/images/cities/csplode-red-2.png differ
diff --git a/data/images/cities/csplode-red-3.png b/data/images/cities/csplode-red-3.png
new file mode 100644
index 0000000..97b3af2
Binary files /dev/null and b/data/images/cities/csplode-red-3.png differ
diff --git a/data/images/cities/csplode-red-4.png b/data/images/cities/csplode-red-4.png
new file mode 100644
index 0000000..7dd730d
Binary files /dev/null and b/data/images/cities/csplode-red-4.png differ
diff --git a/data/images/cities/csplode-red-5.png b/data/images/cities/csplode-red-5.png
new file mode 100644
index 0000000..64dc84b
Binary files /dev/null and b/data/images/cities/csplode-red-5.png differ
diff --git a/data/images/cities/shields.png b/data/images/cities/shields.png
new file mode 100644
index 0000000..0a11929
Binary files /dev/null and b/data/images/cities/shields.png differ
diff --git a/data/images/comets/Makefile.am b/data/images/comets/Makefile.am
new file mode 100644
index 0000000..df6e178
--- /dev/null
+++ b/data/images/comets/Makefile.am
@@ -0,0 +1,27 @@
+## Makefile.am for tuxmath data/images/comets:
+## Process with AutoMake:
+
+cometsdir = $(pkgdatadir)/images/comets
+
+dist_comets_DATA = bonus_comet0.png \
+ bonus_comet1.png \
+ bonus_comet2.png \
+ bonus_comet.svg \
+ bonus_cometex0.png \
+ bonus_cometex1.png \
+ bonus_cometex2.png \
+ bonus_cometex3.png \
+ bonus_cometex.svg \
+ comet0.png \
+ comet1.png \
+ comet2.png \
+ comet.svg \
+ cometex0.png \
+ cometex1.png \
+ cometex2.png \
+ cometex3.png \
+ cometex.svg \
+ mini_comet1.png \
+ mini_comet2.png \
+ mini_comet3.png
+
diff --git a/data/images/comets/bonus_comet.svg b/data/images/comets/bonus_comet.svg
new file mode 100644
index 0000000..f7eb0cf
--- /dev/null
+++ b/data/images/comets/bonus_comet.svg
@@ -0,0 +1,941 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="58.729076"
+ height="149.08838"
+ id="svg2760"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="bonus_comet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>3 frames</desc>
+ <svg:defs
+ id="defs2762">
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ id="stop3855"
+ offset="0"
+ style="stop-color:#e2eacf;stop-opacity:1;" />
+ <svg:stop
+ id="stop3857"
+ offset="1"
+ style="stop-color:#e8000c;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ style="stop-color:#ff6b00;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <svg:stop
+ style="stop-color:#ff0000;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2768" />
+ <inkscape:perspective
+ id="perspective2777"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2798"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2827"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2846"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2975"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3813"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2572"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2570"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2568"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2566"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2564"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2562"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2560"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2558"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2556"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2554"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2552" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2550" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2548" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2546" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2544" />
+ <inkscape:perspective
+ id="perspective2542"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ id="stop2538"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2540"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2532" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2534" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2528"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2526"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2524"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2729"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2727"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2725"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2723"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2721"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2719"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2717"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2715"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2713"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2711"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2709" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2707" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2705" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2703" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2701" />
+ <inkscape:perspective
+ id="perspective2699"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ id="stop2695"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2697"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2689" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2691" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2685"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2683"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2681"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2751"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2508"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,246.91486,379.97944)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2511"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,252.26397,375.65703)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2514"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,123.82938,544.17087)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3299"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3301"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3303"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,-88.848519,153.61038)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-122.82473,167.66508)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3315"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-281.33843,346.08924)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3340"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,-4.36287,158.80925)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,-23.81276,169.28131)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3353"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,-34.286414,176.57816)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-120.79428,337.06144)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="-54.791847"
+ inkscape:cy="59.869827"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame0"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata2765">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(-277.13377,-210.75898)"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path2928"
+ d="M 301.57913,358.07445 C 301.57913,357.52445 300.79163,357.07277 299.82913,357.07071 C 294.94753,357.06028 280.57913,344.02739 280.57913,339.60995 C 280.57913,338.28034 280.16375,336.93577 279.65607,336.622 C 277.6279,335.36853 277.42239,330.05746 279.24876,326.09609 C 281.19394,321.87703 283.70464,321.00089 287.70879,323.14384 C 289.1684,323.925 290.10012,323.88696 291.16558,323.0027 C 292.44171,321.94361 293.14447,321.28513 291.81242,319.25217 C 288.99691,314.95516 289.37862,312.35497 294.93578,309.58367 C 296.87391,308.61715 297.04697,307.84743 296.74322,301.54463 C 296.55846,297.71103 295.99596,294.14695 295.49322,293.62445 C 294.20717,292.28788 294.35563,285.65908 295.73964,282.62151 C 297.21959,279.37338 299.57913,279.30819 299.57913,282.51544 C 299.57913,285.91209 301.76457,286.77741 303.62877,284.1159 C 304.91409,282.28084 304.57913,278.33883 304.57913,263.399 C 304.57913,251.6942 305.51173,244.69679 306.60492,243.27046 C 307.95634,241.50721 307.29613,239.5441 306.18621,237.42233 C 305.24447,235.62204 305.48062,235.07088 306.0257,233.87684 C 306.36418,233.13539 306.57913,231.63945 306.57913,230.37445 C 306.57913,229.10945 306.93913,228.07445 307.37913,228.07445 C 309.2598,228.07445 310.57913,230.758 310.57913,234.58332 C 310.57913,236.8432 310.68357,239.65841 311.49108,240.72603 C 312.68528,242.30491 313.8597,247.07149 313.26921,266.62445 C 312.3836,295.94996 312.8327,294.23882 317.31511,293.35257 C 320.42272,292.73815 322.57913,296.40772 322.57913,303.34418 C 322.57913,306.98091 322.12913,310.23453 321.57913,310.57445 C 320.1888,311.43372 320.32543,316.42075 321.77913,317.87445 C 322.43913,318.53445 323.71939,319.07445 324.62414,319.07445 C 326.75508,319.07445 329.57913,322.21353 329.57913,324.58219 C 329.57913,325.59984 329.05063,327.894 328.40468,329.68034 C 327.34348,332.61504 327.48812,333.26635 329.90468,336.43462 C 331.37563,338.36313 332.57913,340.6891 332.57913,341.60344 C 332.57913,345.72349 323.66922,357.07445 320.4352,357.07445 C 319.47928,357.07445 318.41905,357.52445 318.07913,358.07445 C 317.73921,358.62445 313.88765,359.07445 309.52011,359.07445 C 304.89279,359.07445 301.57913,358.65716 301.57913,358.07445 z M 280.57913,279.07445 C 280.57913,277.74112 281.2458,277.07445 282.57913,277.07445 C 283.91246,277.07445 284.57913,277.74112 284.57913,279.07445 C 284.57913,280.40779 283.91246,281.07445 282.57913,281.07445 C 281.2458,281.07445 280.57913,280.40779 280.57913,279.07445 z M 325.57913,265.07445 C 325.57913,263.74112 326.2458,263.07445 327.57913,263.07445 C 328.91246,263.07445 329.57913,263.74112 329.57913,265.07445 C 329.57913,266.40779 328.91246,267.07445 327.57913,267.07445 C 326.2458,267.07445 325.57913,266.40779 325.57913,265.07445 z M 289.79683,252.91996 C 290.04325,252.17993 291.0469,251.41898 292.02716,251.22895 C 293.16718,251.00795 293.64801,251.36832 293.36143,252.22895 C 293.11501,252.96898 292.11136,253.72993 291.1311,253.91996 C 289.99108,254.14095 289.51025,253.78058 289.79683,252.91996 z"
+ style="fill:url(#radialGradient2514);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient2511);fill-opacity:1"
+ d="M 301.57913,358.07445 C 301.57913,357.52445 300.79163,357.07277 299.82913,357.07071 C 294.94753,357.06028 280.57913,344.02739 280.57913,339.60995 C 280.57913,338.28034 280.16375,336.93577 279.65607,336.622 C 277.6279,335.36853 277.42239,330.05746 279.24876,326.09609 C 281.19394,321.87703 283.70464,321.00089 287.70879,323.14384 C 289.1684,323.925 290.10012,323.88696 291.16558,323.0027 C 292.44171,321.94361 292.43371,321.50145 291.10166,319.46849 C 288.28615,315.17148 289.37862,312.35497 294.93578,309.58367 C 296.87391,308.61715 297.04697,307.84743 296.74322,301.54463 C 296.55846,297.71103 295.99596,294.14695 295.49322,293.62445 C 294.20717,292.28788 294.35563,285.65908 295.73964,282.62151 C 297.21959,279.37338 299.57913,279.30819 299.57913,282.51544 C 299.57913,285.91209 301.14651,286.53019 303.01071,283.86868 C 304.29603,282.03362 304.57913,278.33883 304.57913,263.399 C 304.57913,251.6942 304.99454,244.25683 305.73964,242.62151 C 306.62752,240.67283 306.61627,239.45139 305.69177,237.42233 C 304.84937,235.57346 307.79833,236.58512 308.52883,235.85462 C 309.10516,235.27829 306.57913,231.63945 306.57913,230.37445 C 306.57913,229.10945 306.93913,228.07445 307.37913,228.07445 C 309.2598,228.07445 310.57913,230.758 310.57913,234.58332 C 310.57913,236.8432 311.23982,239.5657 312.04733,240.63332 C 313.24153,242.2122 314.13782,247.07149 313.54733,266.62445 C 312.66172,295.94996 313.46581,294.96806 317.62414,293.07445 C 320.66994,291.68746 322.57913,296.40772 322.57913,303.34418 C 322.57913,306.98091 322.12913,310.23453 321.57913,310.57445 C 320.1888,311.43372 320.32543,316.42075 321.77913,317.87445 C 322.43913,318.53445 323.71939,319.07445 324.62414,319.07445 C 326.75508,319.07445 329.57913,322.21353 329.57913,324.58219 C 329.57913,325.59984 329.05063,327.894 328.40468,329.68034 C 327.34348,332.61504 327.48812,333.26635 329.90468,336.43462 C 331.37563,338.36313 332.57913,340.6891 332.57913,341.60344 C 332.57913,345.72349 323.66922,357.07445 320.4352,357.07445 C 319.47928,357.07445 318.41905,357.52445 318.07913,358.07445 C 317.73921,358.62445 313.88765,359.07445 309.52011,359.07445 C 304.89279,359.07445 301.57913,358.65716 301.57913,358.07445 z M 280.57913,279.07445 C 280.57913,277.74112 281.2458,277.07445 282.57913,277.07445 C 283.91246,277.07445 284.57913,277.74112 284.57913,279.07445 C 284.57913,280.40779 283.91246,281.07445 282.57913,281.07445 C 281.2458,281.07445 280.57913,280.40779 280.57913,279.07445 z M 325.57913,265.07445 C 325.57913,263.74112 326.2458,263.07445 327.57913,263.07445 C 328.91246,263.07445 329.57913,263.74112 329.57913,265.07445 C 329.57913,266.40779 328.91246,267.07445 327.57913,267.07445 C 326.2458,267.07445 325.57913,266.40779 325.57913,265.07445 z M 289.79683,252.91996 C 290.04325,252.17993 291.0469,251.41898 292.02716,251.22895 C 293.16718,251.00795 293.64801,251.36832 293.36143,252.22895 C 293.11501,252.96898 292.11136,253.72993 291.1311,253.91996 C 289.99108,254.14095 289.51025,253.78058 289.79683,252.91996 z"
+ id="path3877"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path3881"
+ d="M 301.57913,358.07445 C 301.57913,357.52445 300.79163,357.07277 299.82913,357.07071 C 294.94753,357.06028 280.57913,344.02739 280.57913,339.60995 C 280.57913,338.28034 280.16375,336.93577 279.65607,336.622 C 277.6279,335.36853 277.42239,330.05746 279.24876,326.09609 C 281.19394,321.87703 283.70464,321.00089 287.70879,323.14384 C 289.1684,323.925 290.10012,323.88696 291.16558,323.0027 C 292.44171,321.94361 292.43371,321.50145 291.10166,319.46849 C 288.28615,315.17148 289.37862,312.35497 294.93578,309.58367 C 296.87391,308.61715 297.04697,307.84743 296.74322,301.54463 C 296.55846,297.71103 295.99596,294.14695 295.49322,293.62445 C 294.20717,292.28788 294.35563,285.65908 295.73964,282.62151 C 297.21959,279.37338 299.57913,279.30819 299.57913,282.51544 C 299.57913,285.91209 301.14651,286.53019 303.01071,283.86868 C 304.29603,282.03362 304.57913,278.33883 304.57913,263.399 C 304.57913,251.6942 304.99454,244.25683 305.73964,242.62151 C 306.62752,240.67283 306.61627,239.45139 305.69177,237.42233 C 304.84937,235.57346 305.69694,234.97817 306.42744,234.24767 C 307.00377,233.67134 306.57913,231.63945 306.57913,230.37445 C 306.57913,229.10945 306.93913,228.07445 307.37913,228.07445 C 309.2598,228.07445 310.57913,230.758 310.57913,234.58332 C 310.57913,236.8432 311.23982,239.5657 312.04733,240.63332 C 313.24153,242.2122 314.13782,247.07149 313.54733,266.62445 C 312.66172,295.94996 313.46581,294.96806 317.62414,293.07445 C 320.66994,291.68746 322.57913,296.40772 322.57913,303.34418 C 322.57913,306.98091 322.12913,310.23453 321.57913,310.57445 C 320.1888,311.43372 320.32543,316.42075 321.77913,317.87445 C 322.43913,318.53445 323.71939,319.07445 324.62414,319.07445 C 326.75508,319.07445 329.57913,322.21353 329.57913,324.58219 C 329.57913,325.59984 329.05063,327.894 328.40468,329.68034 C 327.34348,332.61504 327.48812,333.26635 329.90468,336.43462 C 331.37563,338.36313 332.57913,340.6891 332.57913,341.60344 C 332.57913,345.72349 323.66922,357.07445 320.4352,357.07445 C 319.47928,357.07445 318.41905,357.52445 318.07913,358.07445 C 317.73921,358.62445 313.88765,359.07445 309.52011,359.07445 C 304.89279,359.07445 301.57913,358.65716 301.57913,358.07445 z M 280.57913,279.07445 C 280.57913,277.74112 281.2458,277.07445 282.57913,277.07445 C 283.91246,277.07445 284.57913,277.74112 284.57913,279.07445 C 284.57913,280.40779 283.91246,281.07445 282.57913,281.07445 C 281.2458,281.07445 280.57913,280.40779 280.57913,279.07445 z M 325.57913,265.07445 C 325.57913,263.74112 326.2458,263.07445 327.57913,263.07445 C 328.91246,263.07445 329.57913,263.74112 329.57913,265.07445 C 329.57913,266.40779 328.91246,267.07445 327.57913,267.07445 C 326.2458,267.07445 325.57913,266.40779 325.57913,265.07445 z M 289.79683,252.91996 C 290.04325,252.17993 291.0469,251.41898 292.02716,251.22895 C 293.16718,251.00795 293.64801,251.36832 293.36143,252.22895 C 293.11501,252.96898 292.11136,253.72993 291.1311,253.91996 C 289.99108,254.14095 289.51025,253.78058 289.79683,252.91996 z"
+ style="fill:url(#radialGradient2508);fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc"
+ id="path2926"
+ d="M 301.57913,358.07445 C 301.57913,357.52445 300.79163,357.07277 299.82913,357.07071 C 294.94753,357.06028 280.57913,344.02739 280.57913,339.60995 C 280.57913,338.28034 280.16375,336.93577 279.65607,336.622 C 277.6279,335.36853 277.42239,330.05746 279.24876,326.09609 C 281.2015,321.86062 283.70457,321.00085 287.76154,323.17207 C 289.36331,324.02932 290.15552,323.92663 291.37895,322.7032 C 292.80094,321.28121 292.79018,320.96514 291.26229,319.27684 C 288.08089,315.76143 289.37029,312.35912 294.93578,309.58367 C 296.87391,308.61715 297.04697,307.84743 296.74322,301.54463 C 296.55846,297.71103 295.99596,294.14695 295.49322,293.62445 C 294.20717,292.28788 294.35563,285.65908 295.73964,282.62151 C 297.21959,279.37338 299.57913,279.30819 299.57913,282.51544 C 299.57913,285.57079 300.96784,286.51594 302.58827,284.56344 C 304.77217,281.932 305.57949,282.95242 305.56382,288.32445 C 305.54647,294.27378 304.92722,295.67875 302.07913,296.23064 C 300.45306,296.54573 300.10156,297.36196 300.1991,300.59632 C 300.26509,302.78429 300.88946,306.51508 301.5866,308.88695 C 302.53377,312.10948 302.56664,313.48695 301.71663,314.33695 C 300.86663,315.18695 300.27583,315.17115 299.37913,314.27445 C 297.62366,312.51898 294.79131,312.80947 293.6953,314.85738 C 293.07313,316.01991 293.13674,318.12253 293.8781,320.90003 C 294.69039,323.9433 294.70949,325.64734 293.94498,326.86711 C 292.42909,329.28569 288.76587,329.55343 286.40635,327.41808 C 284.46345,325.65978 284.35289,325.66337 282.98881,327.52885 C 278.81937,333.23091 283.49404,343.05834 293.91205,350.49247 C 300.91941,355.49283 306.81792,357.00264 314.0473,355.6464 C 318.41306,354.82738 325.32697,348.90712 327.232,344.35657 C 329.01869,340.08872 329.03057,340.12778 325.57913,338.92461 C 321.89138,337.63905 321.63925,334.78176 324.74852,329.51193 C 327.39986,325.01824 326.42506,322.80308 321.47557,322.07445 C 318.12604,321.58136 318.07972,321.5054 318.12161,316.57445 C 318.14497,313.82445 318.79054,308.79566 319.55621,305.39935 C 321.28882,297.71399 320.2428,295.62021 315.55475,297.38976 C 310.25595,299.38983 310.07913,298.54648 310.07913,271.27326 C 310.07913,255.80739 309.70531,246.38754 309.07913,246.07445 C 307.83331,245.45154 306.85196,255.00139 306.69601,269.26544 C 306.63135,275.17979 304.80352,285.2388 304.25031,285.5807 C 303.59761,285.98409 304.57913,274.86108 304.57913,262.96221 C 304.57913,247.10683 304.80376,244.48372 306.30344,242.82659 C 307.90028,241.0621 307.69254,240.77591 306.20319,238.18086 C 305.19431,236.42298 305.13499,234.80585 305.67989,233.94566 C 306.15763,233.1915 306.55539,231.56195 306.56382,230.32445 C 306.57224,229.08695 306.93913,228.07445 307.37913,228.07445 C 309.33224,228.07445 310.57913,230.83223 310.57913,235.15201 C 310.57913,238.08988 311.13701,240.29256 312.07913,241.07445 C 313.33678,242.11821 313.57913,246.22569 313.57913,266.4969 C 313.57913,291.37402 313.83793,293.07445 317.62414,293.07445 C 320.97088,293.07445 322.57913,296.40772 322.57913,303.34418 C 322.57913,306.98091 322.12913,310.23453 321.57913,310.57445 C 320.1888,311.43372 320.32543,316.42075 321.77913,317.87445 C 322.43913,318.53445 323.71939,319.07445 324.62414,319.07445 C 326.75508,319.07445 329.57913,322.21353 329.57913,324.58219 C 329.57913,325.59984 329.05063,327.894 328.40468,329.68034 C 327.34348,332.61504 327.48812,333.26635 329.90468,336.43462 C 331.37563,338.36313 332.57913,340.6891 332.57913,341.60344 C 332.57913,345.72349 323.66922,357.07445 320.4352,357.07445 C 319.47928,357.07445 318.41905,357.52445 318.07913,358.07445 C 317.73921,358.62445 313.88765,359.07445 309.52011,359.07445 C 304.89279,359.07445 301.57913,358.65716 301.57913,358.07445 z M 295.41046,343.19003 C 292.64532,340.6986 292.26623,339.88134 293.17998,338.38145 C 293.78545,337.3876 295.74004,336.4303 297.52352,336.25412 C 301.88211,335.82354 304.77434,338.46897 304.37765,342.52335 C 303.94686,346.92637 299.89188,347.22784 295.41046,343.19003 z M 301.07913,341.00481 C 301.07913,340.23318 300.29163,339.45018 299.32913,339.26482 C 297.60539,338.93286 296.89279,341.05477 298.26663,342.42862 C 299.31484,343.47682 301.07913,342.58367 301.07913,341.00481 z M 308.56136,329.04124 C 306.80037,325.75082 308.12049,322.07445 311.063,322.07445 C 313.84146,322.07445 315.86865,325.02542 315.39192,328.37603 C 314.9454,331.51439 310.13563,331.9828 308.56136,329.04124 z M 280.57913,279.07445 C 280.57913,277.74112 281.2458,277.07445 282.57913,277.07445 C 283.91246,277.07445 284.57913,277.74112 284.57913,279.07445 C 284.57913,280.40779 283.91246,281.07445 282.57913,281.07445 C 281.2458,281.07445 280.57913,280.40779 280.57913,279.07445 z M 325.57913,265.07445 C 325.57913,263.74112 326.2458,263.07445 327.57913,263.07445 C 328.91246,263.07445 329.57913,263.74112 329.57913,265.07445 C 329.57913,266.40779 328.91246,267.07445 327.57913,267.07445 C 326.2458,267.07445 325.57913,266.40779 325.57913,265.07445 z M 289.79683,252.91996 C 290.04325,252.17993 291.0469,251.41898 292.02716,251.22895 C 293.16718,251.00795 293.64801,251.36832 293.36143,252.22895 C 293.11501,252.96898 292.11136,253.72993 291.1311,253.91996 C 289.99108,254.14095 289.51025,253.78058 289.79683,252.91996 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3910"
+ d="M 302.29659,341.66446 C 302.29659,342.94589 301.25354,343.3947 299.50389,343.3947 C 297.75425,343.3947 293.94319,341.06832 295.6308,338.87769 C 296.76079,337.41088 299.3402,338.0822 300.44139,338.66255 C 301.98923,339.47831 302.29659,340.38303 302.29659,341.66446 z"
+ style="fill:#fffff7;fill-opacity:1" />
+ <svg:path
+ style="fill:#fffaff;fill-opacity:1"
+ d="M 313.5664,326.74291 C 313.96819,328.02434 312.7714,328.93041 311.82532,328.93041 C 310.07568,328.93041 309.68247,327.71184 309.68247,326.43041 C 309.68247,325.14898 310.20961,324.10898 311.42353,323.93041 C 313.15455,323.67577 313.52176,325.95255 313.5664,326.74291 z"
+ id="path3915"
+ sodipodi:nodetypes="csssc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:path
+ id="path2956"
+ d="M 27.80016,149.15476 C 27.80016,148.60476 26.42781,148.15476 24.7505,148.15476 C 19.11372,148.15476 12.83491,143.14034 6.45271,133.54165 C 4.09718,129.99899 3.69415,128.31505 3.54672,121.39993 C 3.37399,113.29848 4.44104,110.15476 7.36359,110.15476 C 9.96192,110.15476 9.78055,108.22597 6.76158,103.7527 C 5.07427,101.25258 3.26768,98.9437 2.74695,98.62187 C 2.22622,98.30004 1.80016,94.22934 1.80016,89.57587 C 1.80016,82.26243 2.1409,80.57525 4.31271,77.13489 C 6.45841,73.73587 7.33442,73.15476 10.31271,73.15476 C 14.11218,73.15476 14.66975,74.42096 12.26836,77.59589 C 11.46085,78.66351 10.80016,81.61101 10.80016,84.14589 C 10.80016,86.68077 10.35387,89.20104 9.80842,89.7465 C 8.87647,90.67845 9.78012,94.98304 11.77896,99.13328 C 12.59531,100.8283 18.89714,102.41641 20.10649,101.23188 C 20.54997,100.7975 19.76247,99.07499 18.35649,97.40407 C 15.27065,93.73676 15.0249,89.16634 17.7795,86.67345 C 19.68933,84.94508 19.82114,84.95911 21.53267,87.07275 L 23.3065,89.26333 L 25.55333,87.17009 C 27.33594,85.50934 27.80016,83.98296 27.80016,79.78247 C 27.80016,73.97937 27.15828,72.61266 25.19721,74.2402 C 24.48938,74.82765 22.87297,75.16124 21.6052,74.98152 C 19.82023,74.72848 19.22946,73.92149 18.9868,71.40476 C 18.73218,68.76397 19.03117,68.15476 20.58181,68.15476 C 21.63142,68.15476 23.29507,69.04415 24.27882,70.13118 C 26.38228,72.45548 27.80016,71.92682 27.80016,68.81825 C 27.80016,67.59809 28.43016,65.70032 29.20017,64.60098 C 30.19639,63.17867 30.54321,59.92917 30.40265,53.3343 C 30.15366,41.65221 32.40781,2.21378 33.38007,1.24152 C 34.57286,0.04873 36.74025,5.19219 36.76836,9.28232 C 36.78801,12.14274 37.37297,14.38526 38.30016,15.15476 C 39.42736,16.09026 39.80016,18.60599 39.80016,25.27721 C 39.80016,33.87407 39.72744,34.15476 37.50016,34.15476 C 33.22476,34.15476 32.80016,35.68995 32.80016,51.14796 L 32.80016,65.74117 L 36.05016,66.69796 C 39.22097,67.63145 39.30742,67.80735 39.5982,73.91713 C 39.80899,78.34633 39.44308,80.82647 38.3482,82.38964 C 36.00002,85.74213 36.26183,95.3576 38.76291,97.62105 C 39.84243,98.598 41.34266,99.16056 42.09675,98.87119 C 42.85085,98.58182 45.15486,94.93077 47.21679,90.75776 C 49.27871,86.58474 51.44675,82.87318 52.03466,82.50983 C 55.19299,80.55787 57.16475,92.06571 54.62648,97.6366 C 53.62262,99.83984 53.76597,100.60625 55.61729,102.93365 C 59.17381,107.40475 60.97916,112.361 60.4332,116.15476 C 59.26548,124.26884 57.86495,129.02334 54.83635,135.15476 C 50.728,143.47217 46.32191,148.15476 42.60399,148.15476 C 41.06188,148.15476 39.80016,148.60476 39.80016,149.15476 C 39.80016,149.71032 37.13349,150.15476 33.80016,150.15476 C 30.46683,150.15476 27.80016,149.71032 27.80016,149.15476 z M 44.80016,72.80975 C 44.80016,68.05507 47.50091,64.44221 50.26291,65.50209 C 52.50677,66.36314 52.30188,73.39074 49.97142,75.49977 C 46.5886,78.56118 44.80016,77.63086 44.80016,72.80975 z"
+ style="fill:url(#radialGradient3315);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient3312);fill-opacity:1"
+ d="M 27.80016,149.15476 C 27.80016,148.60476 26.42781,148.15476 24.7505,148.15476 C 19.11372,148.15476 12.83491,143.14034 6.45271,133.54165 C 4.09718,129.99899 3.69415,128.31505 3.54672,121.39993 C 3.37399,113.29848 4.44104,110.15476 7.36359,110.15476 C 9.96192,110.15476 9.78055,108.22597 6.76158,103.7527 C 5.07427,101.25258 3.26768,98.9437 2.74695,98.62187 C 2.22622,98.30004 1.80016,94.22934 1.80016,89.57587 C 1.80016,82.26243 2.1409,80.57525 4.31271,77.13489 C 6.45841,73.73587 7.33442,73.15476 10.31271,73.15476 C 14.11218,73.15476 14.66975,74.42096 12.26836,77.59589 C 11.46085,78.66351 10.80016,81.61101 10.80016,84.14589 C 10.80016,86.68077 10.35387,89.20104 9.80842,89.7465 C 8.87647,90.67845 9.78012,94.98304 11.77896,99.13328 C 12.59531,100.8283 18.89714,102.41641 20.10649,101.23188 C 20.54997,100.7975 19.76247,99.07499 18.35649,97.40407 C 15.27065,93.73676 15.0249,89.16634 17.7795,86.67345 C 19.68933,84.94508 19.82114,84.95911 21.53267,87.07275 L 23.3065,89.26333 L 25.55333,87.17009 C 27.33594,85.50934 27.80016,83.98296 27.80016,79.78247 C 27.80016,73.97937 27.15828,72.61266 25.19721,74.2402 C 24.48938,74.82765 22.87297,75.16124 21.6052,74.98152 C 19.82023,74.72848 19.22946,73.92149 18.9868,71.40476 C 18.73218,68.76397 19.03117,68.15476 20.58181,68.15476 C 21.63142,68.15476 23.29507,69.04415 24.27882,70.13118 C 26.38228,72.45548 27.80016,71.92682 27.80016,68.81825 C 27.80016,67.59809 28.43016,65.70032 29.20017,64.60098 C 30.19639,63.17867 30.54321,59.92917 30.40265,53.3343 C 30.15366,41.65221 32.40781,2.21378 33.38007,1.24152 C 34.57286,0.04873 36.74025,5.19219 36.76836,9.28232 C 36.78801,12.14274 37.37297,14.38526 38.30016,15.15476 C 39.42736,16.09026 39.80016,18.60599 39.80016,25.27721 C 39.80016,33.87407 39.72744,34.15476 37.50016,34.15476 C 33.22476,34.15476 32.80016,35.68995 32.80016,51.14796 L 32.80016,65.74117 L 36.05016,66.69796 C 39.22097,67.63145 39.30742,67.80735 39.5982,73.91713 C 39.80899,78.34633 39.44308,80.82647 38.3482,82.38964 C 36.00002,85.74213 36.26183,95.3576 38.76291,97.62105 C 39.84243,98.598 41.34266,99.16056 42.09675,98.87119 C 42.85085,98.58182 45.15486,94.93077 47.21679,90.75776 C 49.27871,86.58474 51.44675,82.87318 52.03466,82.50983 C 55.19299,80.55787 57.16475,92.06571 54.62648,97.6366 C 53.62262,99.83984 53.76597,100.60625 55.61729,102.93365 C 59.17381,107.40475 60.97916,112.361 60.4332,116.15476 C 59.26548,124.26884 57.86495,129.02334 54.83635,135.15476 C 50.728,143.47217 46.32191,148.15476 42.60399,148.15476 C 41.06188,148.15476 39.80016,148.60476 39.80016,149.15476 C 39.80016,149.71032 37.13349,150.15476 33.80016,150.15476 C 30.46683,150.15476 27.80016,149.71032 27.80016,149.15476 z M 44.80016,72.80975 C 44.80016,68.05507 47.50091,64.44221 50.26291,65.50209 C 52.50677,66.36314 52.30188,73.39074 49.97142,75.49977 C 46.5886,78.56118 44.80016,77.63086 44.80016,72.80975 z"
+ id="path3891" />
+ <svg:path
+ id="path3895"
+ d="M 27.80016,149.15476 C 27.80016,148.60476 26.42781,148.15476 24.7505,148.15476 C 19.11372,148.15476 12.83491,143.14034 6.45271,133.54165 C 4.09718,129.99899 3.69415,128.31505 3.54672,121.39993 C 3.37399,113.29848 4.44104,110.15476 7.36359,110.15476 C 9.96192,110.15476 9.78055,108.22597 6.76158,103.7527 C 5.07427,101.25258 3.26768,98.9437 2.74695,98.62187 C 2.22622,98.30004 1.80016,94.22934 1.80016,89.57587 C 1.80016,82.26243 2.1409,80.57525 4.31271,77.13489 C 6.45841,73.73587 7.33442,73.15476 10.31271,73.15476 C 14.11218,73.15476 14.66975,74.42096 12.26836,77.59589 C 11.46085,78.66351 10.80016,81.61101 10.80016,84.14589 C 10.80016,86.68077 10.35387,89.20104 9.80842,89.7465 C 8.87647,90.67845 9.78012,94.98304 11.77896,99.13328 C 12.59531,100.8283 18.89714,102.41641 20.10649,101.23188 C 20.54997,100.7975 19.76247,99.07499 18.35649,97.40407 C 15.27065,93.73676 15.0249,89.16634 17.7795,86.67345 C 19.68933,84.94508 19.82114,84.95911 21.53267,87.07275 L 23.3065,89.26333 L 25.55333,87.17009 C 27.33594,85.50934 27.80016,83.98296 27.80016,79.78247 C 27.80016,73.97937 27.15828,72.61266 25.19721,74.2402 C 24.48938,74.82765 22.87297,75.16124 21.6052,74.98152 C 19.82023,74.72848 19.22946,73.92149 18.9868,71.40476 C 18.73218,68.76397 19.03117,68.15476 20.58181,68.15476 C 21.63142,68.15476 23.29507,69.04415 24.27882,70.13118 C 26.38228,72.45548 27.80016,71.92682 27.80016,68.81825 C 27.80016,67.59809 28.43016,65.70032 29.20017,64.60098 C 30.19639,63.17867 30.54321,59.92917 30.40265,53.3343 C 30.15366,41.65221 32.40781,2.21378 33.38007,1.24152 C 34.57286,0.04873 36.74025,5.19219 36.76836,9.28232 C 36.78801,12.14274 37.37297,14.38526 38.30016,15.15476 C 39.42736,16.09026 39.80016,18.60599 39.80016,25.27721 C 39.80016,33.87407 39.72744,34.15476 37.50016,34.15476 C 33.22476,34.15476 32.80016,35.68995 32.80016,51.14796 L 32.80016,65.74117 L 36.05016,66.69796 C 39.22097,67.63145 39.30742,67.80735 39.5982,73.91713 C 39.80899,78.34633 39.44308,80.82647 38.3482,82.38964 C 36.00002,85.74213 36.26183,95.3576 38.76291,97.62105 C 39.84243,98.598 41.34266,99.16056 42.09675,98.87119 C 42.85085,98.58182 45.15486,94.93077 47.21679,90.75776 C 49.27871,86.58474 51.44675,82.87318 52.03466,82.50983 C 55.19299,80.55787 57.16475,92.06571 54.62648,97.6366 C 53.62262,99.83984 53.76597,100.60625 55.61729,102.93365 C 59.17381,107.40475 60.97916,112.361 60.4332,116.15476 C 59.26548,124.26884 57.86495,129.02334 54.83635,135.15476 C 50.728,143.47217 46.32191,148.15476 42.60399,148.15476 C 41.06188,148.15476 39.80016,148.60476 39.80016,149.15476 C 39.80016,149.71032 37.13349,150.15476 33.80016,150.15476 C 30.46683,150.15476 27.80016,149.71032 27.80016,149.15476 z M 44.80016,72.80975 C 44.80016,68.05507 47.50091,64.44221 50.26291,65.50209 C 52.50677,66.36314 52.30188,73.39074 49.97142,75.49977 C 46.5886,78.56118 44.80016,77.63086 44.80016,72.80975 z"
+ style="fill:url(#radialGradient3309);fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssscccsssssssssssssssscccsssssssssssssccssssssssssssssssssssssssccsssccsssccssccssccssc"
+ id="path2954"
+ d="M 27.80016,149.15476 C 27.80016,148.60476 26.42781,148.15476 24.7505,148.15476 C 19.11372,148.15476 12.83491,143.14034 6.45271,133.54165 C 4.09718,129.99899 3.69415,128.31505 3.54672,121.39993 C 3.37399,113.29848 4.44104,110.15476 7.36359,110.15476 C 9.96192,110.15476 9.78055,108.22597 6.76158,103.7527 C 5.07427,101.25258 3.26768,98.9437 2.74695,98.62187 C 2.22622,98.30004 1.80016,94.22934 1.80016,89.57587 C 1.80016,82.26243 2.1409,80.57525 4.31271,77.13489 C 6.45841,73.73587 7.33442,73.15476 10.31271,73.15476 C 12.60823,73.15476 13.80016,73.62558 13.80016,74.53232 C 13.80016,76.51874 11.31402,78.28918 9.50135,77.59359 C 6.86096,76.58038 4.36913,81.72211 4.33256,88.25907 C 4.29664,94.6787 6.13078,98.06199 7.9239,94.88373 C 9.1974,92.62647 10.80016,93.57801 10.80016,96.59133 C 10.80016,99.411 12.28323,100.6808 16.51139,101.48129 C 20.78071,102.28957 21.35471,100.96725 18.30685,97.34508 C 15.27014,93.73615 15.04349,89.14951 17.7795,86.67345 C 19.68933,84.94508 19.82114,84.95911 21.53267,87.07275 L 23.3065,89.26333 L 25.55333,87.17009 C 27.33594,85.50934 27.80016,83.98296 27.80016,79.78247 C 27.80016,73.97937 27.15828,72.61266 25.19721,74.2402 C 24.48938,74.82765 22.87297,75.16124 21.6052,74.98152 C 19.82023,74.72848 19.22946,73.92149 18.9868,71.40476 C 18.73218,68.76397 19.03117,68.15476 20.58181,68.15476 C 21.63142,68.15476 23.29507,69.04415 24.27882,70.13118 C 26.33209,72.40001 27.80016,71.94092 27.80016,69.03 C 27.80016,67.9263 28.36266,66.04036 29.05016,64.83902 C 29.81382,63.50459 30.33345,58.56953 30.38571,52.15476 C 30.61503,24.01052 30.77911,20.98081 32.05016,21.42055 C 32.77258,21.67048 33.17657,23.11619 33.00735,24.8459 C 32.83371,26.62065 33.33766,28.35596 34.24551,29.10941 C 36.19568,30.7279 36.64508,29.61526 37.02278,22.23336 C 37.18832,18.99788 37.80416,16.64587 38.55016,16.40003 C 39.48865,16.09075 39.80016,18.25173 39.80016,25.07143 C 39.80016,33.88302 39.73135,34.15476 37.50016,34.15476 C 33.22476,34.15476 32.80016,35.68995 32.80016,51.14796 L 32.80016,65.74117 L 36.05016,66.69796 C 39.22097,67.63145 39.30742,67.80735 39.5982,73.91713 C 39.80899,78.34633 39.44308,80.82647 38.3482,82.38964 C 36.00002,85.74213 36.26183,95.3576 38.76291,97.62105 C 39.84243,98.598 41.34266,99.16056 42.09675,98.87119 C 42.85085,98.58182 45.15486,94.93077 47.21679,90.75776 C 49.27871,86.58474 51.44675,82.87318 52.03466,82.50983 C 55.19299,80.55787 57.16475,92.06571 54.62648,97.6366 C 53.62262,99.83984 53.76597,100.60625 55.61729,102.93365 C 59.17381,107.40475 60.97916,112.361 60.4332,116.15476 C 59.26548,124.26884 57.86495,129.02334 54.83635,135.15476 C 50.728,143.47217 46.32191,148.15476 42.60399,148.15476 C 41.06188,148.15476 39.80016,148.60476 39.80016,149.15476 C 39.80016,149.71032 37.13349,150.15476 33.80016,150.15476 C 30.46683,150.15476 27.80016,149.71032 27.80016,149.15476 z M 42.80252,143.63889 C 46.63027,141.68189 48.42134,139.25632 52.40444,130.63544 C 54.8927,125.24991 56.22412,120.7422 56.55908,116.56929 C 57.14207,109.30654 55.86504,107.80524 52.46578,111.75712 C 49.16384,115.59584 47.38623,114.19136 48.18362,108.37379 C 48.52415,105.8893 49.15934,103.36114 49.59514,102.75565 C 50.95982,100.85959 54.0635,91.08476 53.48464,90.50591 C 52.49637,89.51764 50.79864,91.22264 49.37266,94.63549 C 46.38546,101.78486 40.15712,104.41665 36.30312,100.15803 C 34.83878,98.53995 34.52551,96.61436 34.65114,90.00374 C 34.7364,85.51708 35.28486,80.06845 35.86993,77.89566 C 37.20125,72.95151 36.48389,70.91867 33.55463,71.33462 C 31.55086,71.61916 31.23631,72.37756 30.726,78.15476 C 30.06481,85.63999 28.33143,91.46895 26.25401,93.19306 C 25.11653,94.13708 24.28611,94.04796 22.34035,92.77305 C 20.98195,91.88299 19.62969,91.15476 19.33534,91.15476 C 17.93133,91.15476 19.12531,93.98741 21.81613,97.04027 C 25.20119,100.88076 25.26866,101.13178 23.54838,103.48441 C 22.78531,104.52797 21.04248,105.14844 18.97528,105.26937 C 17.37062,105.36324 15.5705,105.1561 13.88149,104.61218 C 11.75851,103.9285 11.56536,104.06688 12.30159,105.74402 C 13.36898,108.17559 14.2011,116.15476 13.38729,116.15476 C 13.04944,116.15476 11.85172,115.59226 10.72569,114.90476 C 7.64472,113.02368 5.9187,115.91684 6.53761,121.92481 C 7.09383,127.32429 10.12248,133.12073 14.96435,138.05253 C 22.01938,145.2386 34.69745,147.78274 42.80252,143.63889 z M 39.39538,126.98724 C 37.25529,123.93184 37.38658,121.83902 39.8587,119.60179 C 41.39534,118.21114 42.32912,117.99865 43.54186,118.76363 C 46.72211,120.76967 47.40945,122.97726 45.76579,125.90631 C 43.78154,129.4423 41.39822,129.8467 39.39538,126.98724 z M 20.34383,116.81035 C 19.00683,115.83272 18.68251,114.75964 19.15502,112.877 C 20.00183,109.50304 23.66799,108.25352 25.47396,110.72334 C 27.21348,113.10227 27.14813,114.66394 25.22873,116.58333 C 23.31132,118.50075 22.69477,118.5294 20.34383,116.81035 z M 8.13301,85.49107 C 9.0831,79.63637 10.80016,78.96921 10.80016,84.45476 C 10.80016,88.13346 10.44578,89.15476 9.16932,89.15476 C 7.8501,89.15476 7.65208,88.45469 8.13301,85.49107 z M 44.80016,72.80975 C 44.80016,68.05507 47.50091,64.44221 50.26291,65.50209 C 52.50677,66.36314 52.30188,73.39074 49.97142,75.49977 C 46.5886,78.56118 44.80016,77.63086 44.80016,72.80975 z M 33.46683,8.48809 C 32.61397,7.63524 32.59019,1.15476 33.43992,1.15476 C 34.69073,1.15476 36.73705,4.68985 36.76836,6.90476 C 36.79846,9.0343 34.91588,9.93714 33.46683,8.48809 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3899"
+ d="M 44.28581,123.37091 C 44.28581,124.59067 43.45699,126.52764 42.20238,126.52764 C 40.94777,126.52764 40.2452,124.46441 40.2452,123.24465 C 40.2452,122.02489 41.20031,120.9718 42.45492,120.9718 C 43.70953,120.9718 44.28581,122.15115 44.28581,123.37091 z"
+ style="fill:#f3f4ff;fill-opacity:0.97976882" />
+ <svg:path
+ style="fill:#ecfdfa;fill-opacity:1"
+ d="M 24.84037,113.45879 C 24.84037,114.67855 24.13782,115.92104 22.88321,115.92104 C 21.6286,115.92104 20.79976,114.55229 20.79976,113.33253 C 20.79976,112.11277 21.75487,111.05968 23.00948,111.05968 C 24.26409,111.05968 24.84037,112.23903 24.84037,113.45879 z"
+ id="path3902"
+ sodipodi:nodetypes="csssc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:path
+ id="path2985"
+ d="M 14.10326,147.40262 C 9.9199,145.2351 8.77915,144.08876 8.25414,141.52484 C 7.89542,139.77302 7.9101,137.84107 8.28676,137.23162 C 8.66343,136.62216 7.80803,134.59799 6.38588,132.73346 C 2.89964,128.16276 2.84931,122.12868 6.26357,118.07106 C 8.37181,115.56555 8.5642,114.78618 7.59792,112.66543 C 6.66345,110.6145 6.87449,109.32132 8.82234,105.16258 C 10.91111,100.70297 11.03628,99.75186 9.93518,96.70681 C 9.04429,94.2431 8.99134,92.72124 9.74734,91.30864 C 10.32639,90.22668 10.80016,88.04029 10.80016,86.45001 C 10.80016,83.18905 14.37252,79.20995 17.30016,79.20995 C 18.32926,79.20995 20.17944,80.1571 21.41168,81.31472 C 24.96496,84.65286 25.80016,82.96994 25.80016,72.47193 C 25.80016,58.28355 28.52196,52.9301 33.14078,58.03384 C 34.44287,59.47263 34.89303,62.69254 35.27284,73.28384 C 35.53764,80.6682 35.79264,87.49662 35.83951,88.4581 C 35.88638,89.41959 36.76528,90.6561 37.79261,91.20591 C 38.81994,91.75572 39.80441,93.1731 39.98032,94.35563 C 40.29415,96.46535 41.56233,97.52864 45.05016,98.60642 C 46.20303,98.96266 46.80016,100.1614 46.80016,102.11955 C 46.80016,103.75435 47.19917,105.33852 47.68685,105.63992 C 49.79406,106.94225 53.75769,98.37577 53.7851,92.45995 C 53.79662,89.97306 54.23337,89.20995 55.64517,89.20995 C 59.69815,89.20995 60.80016,92.23032 60.80016,103.33869 C 60.80016,109.09788 60.3861,114.23745 59.88003,114.75995 C 59.37395,115.28245 58.06803,118.26896 56.97796,121.39664 C 55.8879,124.52432 54.05196,128.09667 52.89809,129.3352 C 51.74423,130.57373 50.80016,132.38105 50.80016,133.35146 C 50.80016,136.39375 48.67606,139.94546 46.17516,141.08495 C 44.85271,141.6875 43.23972,143.34587 42.59074,144.77022 C 40.73553,148.84197 36.90611,150.2169 27.59982,150.15262 C 20.61038,150.10433 18.47975,149.67021 14.10326,147.40262 z M 1.80016,82.53095 C 1.80016,78.3075 2.34617,73.34197 3.01352,71.49645 C 4.5749,67.17852 8.12633,66.09168 11.06662,69.03197 C 12.98929,70.95464 13.04833,71.42796 11.82704,75.12851 C 11.09879,77.33512 9.44482,80.1346 8.15155,81.34956 C 6.85828,82.56452 5.80016,84.34333 5.80016,85.30248 C 5.80016,88.11953 4.68967,90.20995 3.19317,90.20995 C 2.12342,90.20995 1.80016,88.42794 1.80016,82.53095 z M 49.23455,80.1038 C 48.85855,79.49542 49.95329,77.59528 51.66729,75.88128 C 54.44933,73.09924 54.946,72.92722 56.2967,74.27792 C 58.63331,76.61454 56.19569,81.19175 52.60917,81.20215 C 51.12913,81.20644 49.61055,80.71219 49.23455,80.1038 z M 15.80016,55.6404 C 15.80016,51.53347 16.0176,51.1032 17.94803,51.3904 C 19.12936,51.56615 20.5768,52.47723 21.16456,53.41501 C 22.00532,54.75644 21.72335,55.66281 19.84238,57.66501 C 16.49744,61.22553 15.80016,60.87629 15.80016,55.6404 z M 42.46682,59.54329 C 41.08952,58.16598 41.85181,52.47318 43.6289,50.86494 C 46.87303,47.92904 48.80016,48.74518 48.80016,53.05496 C 48.80016,57.92178 44.87082,61.94728 42.46682,59.54329 z M 28.1727,32.453876 C 27.86469,31.494718 27.14187,29.452175 26.56644,27.914893 C 25.81927,25.918848 25.84607,24.404596 26.66017,22.61784 C 27.28716,21.241743 27.80016,18.181764 27.80016,15.817887 C 27.80016,11.568781 29.92607,8.209952 32.61548,8.209952 C 34.52768,8.209952 36.80016,15.091338 36.80016,20.881736 C 36.80016,27.271179 34.95939,31.360738 31.34144,33.00919 C 29.10507,34.028147 28.65279,33.948886 28.1727,32.453876 z"
+ style="fill:url(#radialGradient3356);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient3353);fill-opacity:1"
+ d="M 14.10326,147.40262 C 9.9199,145.2351 8.77915,144.08876 8.25414,141.52484 C 7.89542,139.77302 7.9101,137.84107 8.28676,137.23162 C 8.66343,136.62216 7.80803,134.59799 6.38588,132.73346 C 2.89964,128.16276 2.84931,122.12868 6.26357,118.07106 C 8.37181,115.56555 8.5642,114.78618 7.59792,112.66543 C 6.66345,110.6145 6.87449,109.32132 8.82234,105.16258 C 10.91111,100.70297 11.03628,99.75186 9.93518,96.70681 C 9.04429,94.2431 8.99134,92.72124 9.74734,91.30864 C 10.32639,90.22668 10.80016,88.04029 10.80016,86.45001 C 10.80016,83.18905 14.37252,79.20995 17.30016,79.20995 C 18.32926,79.20995 20.17944,80.1571 21.41168,81.31472 C 24.96496,84.65286 25.80016,82.96994 25.80016,72.47193 C 25.80016,58.28355 28.52196,52.9301 33.14078,58.03384 C 34.44287,59.47263 34.89303,62.69254 35.27284,73.28384 C 35.53764,80.6682 35.79264,87.49662 35.83951,88.4581 C 35.88638,89.41959 36.76528,90.6561 37.79261,91.20591 C 38.81994,91.75572 39.80441,93.1731 39.98032,94.35563 C 40.29415,96.46535 41.56233,97.52864 45.05016,98.60642 C 46.20303,98.96266 46.80016,100.1614 46.80016,102.11955 C 46.80016,103.75435 47.19917,105.33852 47.68685,105.63992 C 49.79406,106.94225 53.75769,98.37577 53.7851,92.45995 C 53.79662,89.97306 54.23337,89.20995 55.64517,89.20995 C 59.69815,89.20995 60.80016,92.23032 60.80016,103.33869 C 60.80016,109.09788 60.3861,114.23745 59.88003,114.75995 C 59.37395,115.28245 58.06803,118.26896 56.97796,121.39664 C 55.8879,124.52432 54.05196,128.09667 52.89809,129.3352 C 51.74423,130.57373 50.80016,132.38105 50.80016,133.35146 C 50.80016,136.39375 48.67606,139.94546 46.17516,141.08495 C 44.85271,141.6875 43.23972,143.34587 42.59074,144.77022 C 40.73553,148.84197 36.90611,150.2169 27.59982,150.15262 C 20.61038,150.10433 18.47975,149.67021 14.10326,147.40262 z M 1.80016,82.53095 C 1.80016,78.3075 2.34617,73.34197 3.01352,71.49645 C 4.5749,67.17852 8.12633,66.09168 11.06662,69.03197 C 12.98929,70.95464 13.04833,71.42796 11.82704,75.12851 C 11.09879,77.33512 9.44482,80.1346 8.15155,81.34956 C 6.85828,82.56452 5.80016,84.34333 5.80016,85.30248 C 5.80016,88.11953 4.68967,90.20995 3.19317,90.20995 C 2.12342,90.20995 1.80016,88.42794 1.80016,82.53095 z M 49.23455,80.1038 C 48.85855,79.49542 49.95329,77.59528 51.66729,75.88128 C 54.44933,73.09924 54.946,72.92722 56.2967,74.27792 C 58.63331,76.61454 56.19569,81.19175 52.60917,81.20215 C 51.12913,81.20644 49.61055,80.71219 49.23455,80.1038 z M 15.80016,55.6404 C 15.80016,51.53347 16.0176,51.1032 17.94803,51.3904 C 19.12936,51.56615 20.5768,52.47723 21.16456,53.41501 C 22.00532,54.75644 21.72335,55.66281 19.84238,57.66501 C 16.49744,61.22553 15.80016,60.87629 15.80016,55.6404 z M 42.46682,59.54329 C 41.08952,58.16598 41.85181,52.47318 43.6289,50.86494 C 46.87303,47.92904 48.80016,48.74518 48.80016,53.05496 C 48.80016,57.92178 44.87082,61.94728 42.46682,59.54329 z M 28.1727,32.453876 C 27.86469,31.494718 27.14187,29.452175 26.56644,27.914893 C 25.81927,25.918848 25.84607,24.404596 26.66017,22.61784 C 27.28716,21.241743 27.80016,18.181764 27.80016,15.817887 C 27.80016,11.568781 29.92607,8.209952 32.61548,8.209952 C 34.52768,8.209952 36.80016,15.091338 36.80016,20.881736 C 36.80016,27.271179 34.95939,31.360738 31.34144,33.00919 C 29.10507,34.028147 28.65279,33.948886 28.1727,32.453876 z"
+ id="path3851" />
+ <svg:path
+ id="path3861"
+ d="M 14.10326,147.40262 C 9.9199,145.2351 8.77915,144.08876 8.25414,141.52484 C 7.89542,139.77302 7.9101,137.84107 8.28676,137.23162 C 8.66343,136.62216 7.80803,134.59799 6.38588,132.73346 C 2.89964,128.16276 2.84931,122.12868 6.26357,118.07106 C 8.37181,115.56555 8.5642,114.78618 7.59792,112.66543 C 6.66345,110.6145 6.87449,109.32132 8.82234,105.16258 C 10.91111,100.70297 11.03628,99.75186 9.93518,96.70681 C 9.04429,94.2431 8.99134,92.72124 9.74734,91.30864 C 10.32639,90.22668 10.80016,88.04029 10.80016,86.45001 C 10.80016,83.18905 14.37252,79.20995 17.30016,79.20995 C 18.32926,79.20995 20.17944,80.1571 21.41168,81.31472 C 24.96496,84.65286 25.80016,82.96994 25.80016,72.47193 C 25.80016,58.28355 28.52196,52.9301 33.14078,58.03384 C 34.44287,59.47263 34.89303,62.69254 35.27284,73.28384 C 35.53764,80.6682 35.79264,87.49662 35.83951,88.4581 C 35.88638,89.41959 36.76528,90.6561 37.79261,91.20591 C 38.81994,91.75572 39.80441,93.1731 39.98032,94.35563 C 40.29415,96.46535 41.56233,97.52864 45.05016,98.60642 C 46.20303,98.96266 46.80016,100.1614 46.80016,102.11955 C 46.80016,103.75435 47.19917,105.33852 47.68685,105.63992 C 49.79406,106.94225 53.75769,98.37577 53.7851,92.45995 C 53.79662,89.97306 54.23337,89.20995 55.64517,89.20995 C 59.69815,89.20995 60.80016,92.23032 60.80016,103.33869 C 60.80016,109.09788 60.3861,114.23745 59.88003,114.75995 C 59.37395,115.28245 58.06803,118.26896 56.97796,121.39664 C 55.8879,124.52432 54.05196,128.09667 52.89809,129.3352 C 51.74423,130.57373 50.80016,132.38105 50.80016,133.35146 C 50.80016,136.39375 48.67606,139.94546 46.17516,141.08495 C 44.85271,141.6875 43.23972,143.34587 42.59074,144.77022 C 40.73553,148.84197 36.90611,150.2169 27.59982,150.15262 C 20.61038,150.10433 18.47975,149.67021 14.10326,147.40262 z M 1.80016,82.53095 C 1.80016,78.3075 2.34617,73.34197 3.01352,71.49645 C 4.5749,67.17852 8.12633,66.09168 11.06662,69.03197 C 12.98929,70.95464 13.04833,71.42796 11.82704,75.12851 C 11.09879,77.33512 9.44482,80.1346 8.15155,81.34956 C 6.85828,82.56452 5.80016,84.34333 5.80016,85.30248 C 5.80016,88.11953 4.68967,90.20995 3.19317,90.20995 C 2.12342,90.20995 1.80016,88.42794 1.80016,82.53095 z M 49.23455,80.1038 C 48.85855,79.49542 49.95329,77.59528 51.66729,75.88128 C 54.44933,73.09924 54.946,72.92722 56.2967,74.27792 C 58.63331,76.61454 56.19569,81.19175 52.60917,81.20215 C 51.12913,81.20644 49.61055,80.71219 49.23455,80.1038 z M 15.80016,55.6404 C 15.80016,51.53347 16.0176,51.1032 17.94803,51.3904 C 19.12936,51.56615 20.5768,52.47723 21.16456,53.41501 C 22.00532,54.75644 21.72335,55.66281 19.84238,57.66501 C 16.49744,61.22553 15.80016,60.87629 15.80016,55.6404 z M 42.46682,59.54329 C 41.08952,58.16598 41.85181,52.47318 43.6289,50.86494 C 46.87303,47.92904 48.80016,48.74518 48.80016,53.05496 C 48.80016,57.92178 44.87082,61.94728 42.46682,59.54329 z M 28.1727,32.453876 C 27.86469,31.494718 27.14187,29.452175 26.56644,27.914893 C 25.81927,25.918848 25.84607,24.404596 26.66017,22.61784 C 27.28716,21.241743 27.80016,18.181764 27.80016,15.817887 C 27.80016,11.568781 29.92607,8.209952 32.61548,8.209952 C 34.52768,8.209952 36.80016,15.091338 36.80016,20.881736 C 36.80016,27.271179 34.95939,31.360738 31.34144,33.00919 C 29.10507,34.028147 28.65279,33.948886 28.1727,32.453876 z"
+ style="fill:url(#radialGradient3350);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient3347);fill-opacity:1"
+ d="M 14.10326,147.40262 C 9.9199,145.2351 8.77915,144.08876 8.25414,141.52484 C 7.89542,139.77302 7.9101,137.84107 8.28676,137.23162 C 8.66343,136.62216 7.80803,134.59799 6.38588,132.73346 C 2.89964,128.16276 2.84931,122.12868 6.26357,118.07106 C 8.37181,115.56555 8.5642,114.78618 7.59792,112.66543 C 6.66345,110.6145 6.87449,109.32132 8.82234,105.16258 C 10.91111,100.70297 11.03628,99.75186 9.93518,96.70681 C 9.04429,94.2431 8.99134,92.72124 9.74734,91.30864 C 10.32639,90.22668 10.80016,88.04029 10.80016,86.45001 C 10.80016,83.18905 14.37252,79.20995 17.30016,79.20995 C 18.32926,79.20995 20.17944,80.1571 21.41168,81.31472 C 24.96496,84.65286 25.80016,82.96994 25.80016,72.47193 C 25.80016,58.28355 28.52196,52.9301 33.14078,58.03384 C 34.44287,59.47263 34.89303,62.69254 35.27284,73.28384 C 35.53764,80.6682 35.79264,87.49662 35.83951,88.4581 C 35.88638,89.41959 36.76528,90.6561 37.79261,91.20591 C 38.81994,91.75572 39.80441,93.1731 39.98032,94.35563 C 40.29415,96.46535 41.56233,97.52864 45.05016,98.60642 C 46.20303,98.96266 46.80016,100.1614 46.80016,102.11955 C 46.80016,103.75435 47.19917,105.33852 47.68685,105.63992 C 49.79406,106.94225 53.75769,98.37577 53.7851,92.45995 C 53.79662,89.97306 54.23337,89.20995 55.64517,89.20995 C 59.69815,89.20995 60.80016,92.23032 60.80016,103.33869 C 60.80016,109.09788 60.3861,114.23745 59.88003,114.75995 C 59.37395,115.28245 58.06803,118.26896 56.97796,121.39664 C 55.8879,124.52432 54.05196,128.09667 52.89809,129.3352 C 51.74423,130.57373 50.80016,132.38105 50.80016,133.35146 C 50.80016,136.39375 48.67606,139.94546 46.17516,141.08495 C 44.85271,141.6875 43.23972,143.34587 42.59074,144.77022 C 40.73553,148.84197 36.90611,150.2169 27.59982,150.15262 C 20.61038,150.10433 18.47975,149.67021 14.10326,147.40262 z M 1.80016,82.53095 C 1.80016,78.3075 2.34617,73.34197 3.01352,71.49645 C 4.5749,67.17852 8.12633,66.09168 11.06662,69.03197 C 12.98929,70.95464 13.04833,71.42796 11.82704,75.12851 C 11.09879,77.33512 9.44482,80.1346 8.15155,81.34956 C 6.85828,82.56452 5.80016,84.34333 5.80016,85.30248 C 5.80016,88.11953 4.68967,90.20995 3.19317,90.20995 C 2.12342,90.20995 1.80016,88.42794 1.80016,82.53095 z M 49.23455,80.1038 C 48.85855,79.49542 49.95329,77.59528 51.66729,75.88128 C 54.44933,73.09924 54.946,72.92722 56.2967,74.27792 C 58.63331,76.61454 56.19569,81.19175 52.60917,81.20215 C 51.12913,81.20644 49.61055,80.71219 49.23455,80.1038 z M 15.80016,55.6404 C 15.80016,51.53347 16.0176,51.1032 17.94803,51.3904 C 19.12936,51.56615 20.5768,52.47723 21.16456,53.41501 C 22.00532,54.75644 21.72335,55.66281 19.84238,57.66501 C 16.49744,61.22553 15.80016,60.87629 15.80016,55.6404 z M 42.46682,59.54329 C 41.08952,58.16598 41.85181,52.47318 43.6289,50.86494 C 46.87303,47.92904 48.80016,48.74518 48.80016,53.05496 C 48.80016,57.92178 44.87082,61.94728 42.46682,59.54329 z M 28.1727,32.453876 C 27.86469,31.494718 27.14187,29.452175 26.56644,27.914893 C 25.81927,25.918848 25.84607,24.404596 26.66017,22.61784 C 27.28716,21.241743 27.80016,18.181764 27.80016,15.817887 C 27.80016,11.568781 29.92607,8.209952 32.61548,8.209952 C 34.52768,8.209952 36.80016,15.091338 36.80016,20.881736 C 36.80016,27.271179 34.95939,31.360738 31.34144,33.00919 C 29.10507,34.028147 28.65279,33.948886 28.1727,32.453876 z"
+ id="path3873" />
+ <svg:path
+ id="path2983"
+ d="M 14.10326,147.40262 C 9.9199,145.2351 8.77915,144.08876 8.25414,141.52484 C 7.89542,139.77302 7.9101,137.84107 8.28676,137.23162 C 8.66343,136.62216 7.80803,134.59799 6.38588,132.73346 C 2.89964,128.16276 2.84931,122.12868 6.26357,118.07106 C 8.37181,115.56555 8.5642,114.78618 7.59792,112.66543 C 6.66345,110.6145 6.87449,109.32132 8.82234,105.16258 C 10.91111,100.70297 11.03628,99.75186 9.93518,96.70681 C 9.04429,94.2431 8.99134,92.72124 9.74734,91.30864 C 10.32639,90.22668 10.80016,88.04029 10.80016,86.45001 C 10.80016,80.99378 17.79296,77.0865 20.88661,80.81413 C 21.61886,81.69642 23.17207,82.78105 24.33821,83.22442 C 26.18016,83.92473 26.38244,84.58623 25.8793,88.26429 C 24.78872,96.23683 18.80016,95.65613 18.80016,87.57784 C 18.80016,83.64217 17.18831,82.39322 14.97086,84.61067 C 12.8933,86.68824 12.76273,96.31775 14.74738,101.09355 C 16.09872,104.34538 16.04841,104.55368 13.4555,106.44248 C 10.9957,108.23432 10.81177,108.81843 11.3721,113.05889 C 11.92246,117.224 11.66349,118.11612 8.89342,121.59745 C 7.19212,123.73558 5.80016,125.78889 5.80016,126.16036 C 5.80016,126.53184 7.18953,128.15746 8.88766,129.77286 C 11.58461,132.33843 11.90957,133.20892 11.45669,136.65469 C 11.17154,138.82429 11.37339,141.41254 11.90526,142.40634 C 13.49706,145.38065 19.4496,147.20995 27.53621,147.20995 L 35.02801,147.20995 L 41.53677,140.73312 C 46.40399,135.88978 47.91308,133.74977 47.52034,132.24794 C 47.1808,130.94953 48.05685,128.90875 49.9986,126.47477 C 56.67523,118.10561 59.95727,107.19144 58.35911,98.67251 C 57.80528,95.72035 57.35743,95.21569 55.74546,95.72731 C 54.06654,96.26018 53.80016,95.85622 53.80016,92.77734 C 53.80016,89.97651 54.19661,89.20995 55.64517,89.20995 C 59.7058,89.20995 60.80016,92.22583 60.80016,103.41625 C 60.80016,111.57302 60.46002,114.24735 59.30016,115.20995 C 58.47516,115.89464 57.80016,117.24478 57.80016,118.21027 C 57.80016,120.79726 54.97499,127.10592 52.74414,129.50045 C 51.67495,130.64809 50.80016,132.38105 50.80016,133.35146 C 50.80016,136.39375 48.67606,139.94546 46.17516,141.08495 C 44.85271,141.6875 43.23972,143.34587 42.59074,144.77022 C 40.73553,148.84197 36.90611,150.2169 27.59982,150.15262 C 20.61038,150.10433 18.47975,149.67021 14.10326,147.40262 z M 21.88241,138.80905 C 18.90533,135.2219 22.84931,131.00005 27.2881,133.0225 C 29.36294,133.96786 29.8635,134.81643 29.61576,136.9684 C 29.35706,139.21565 28.74389,139.76423 26.21498,140.01102 C 24.37234,140.19083 22.62742,139.70675 21.88241,138.80905 z M 22.55016,119.12985 C 18.83863,116.96809 21.59314,109.20995 26.07219,109.20995 C 27.80597,109.20995 30.80016,112.83398 30.80016,114.93246 C 30.80016,116.58764 27.16691,120.21887 25.55016,120.17954 C 24.86266,120.16282 23.51266,119.69046 22.55016,119.12985 z M 46.00016,111.00995 C 45.34016,110.34995 44.80016,108.58209 44.80016,107.08138 C 44.80016,104.34231 42.56532,101.20995 40.61108,101.20995 C 40.03566,101.20995 37.75302,99.39811 35.53855,97.18364 L 31.51223,93.15732 L 32.05336,83.33706 C 32.72881,71.07896 31.93148,59.9997 30.4103,60.50607 C 29.79972,60.70931 28.84082,64.97267 28.2794,69.9802 C 27.71799,74.98772 26.93049,79.41295 26.5294,79.81404 C 25.30239,81.04106 25.72019,63.07308 27.00104,59.53095 C 28.34825,55.80531 30.62219,55.25084 33.14078,58.03384 C 34.44287,59.47263 34.89303,62.69254 35.27284,73.28384 C 35.53764,80.6682 35.79264,87.49662 35.83951,88.4581 C 35.88638,89.41959 36.76528,90.6561 37.79261,91.20591 C 38.81994,91.75572 39.80441,93.1731 39.98032,94.35563 C 40.29415,96.46535 41.56233,97.52864 45.05016,98.60642 C 46.18372,98.9567 46.80016,100.15627 46.80016,102.0119 C 46.80016,103.58749 47.10114,105.1776 47.469,105.54547 C 48.46108,106.53754 51.80016,103.17002 51.80016,101.17741 C 51.80016,100.23 52.54879,98.83724 53.46379,98.0824 C 54.98662,96.8261 55.06732,97.08796 54.41735,101.17644 C 53.76339,105.29002 49.70677,112.20995 47.94927,112.20995 C 47.53726,112.20995 46.66016,111.66995 46.00016,111.00995 z M 33.88143,108.80788 C 31.84096,106.34926 32.92103,102.70995 35.69117,102.70995 C 38.80477,102.70995 40.70107,105.55709 39.18786,107.95995 C 37.72823,110.27773 35.40888,110.64835 33.88143,108.80788 z M 1.80016,82.53095 C 1.80016,73.22671 3.34437,68.36245 6.55381,67.55693 C 10.54177,66.55602 15.04938,72.70182 11.80016,74.70995 C 11.25016,75.04987 10.80016,76.12299 10.80016,77.09466 C 10.80016,78.06632 9.67516,79.91821 8.30016,81.20995 C 6.92516,82.5017 5.80016,84.34333 5.80016,85.30248 C 5.80016,88.11953 4.68967,90.20995 3.19317,90.20995 C 2.12342,90.20995 1.80016,88.42794 1.80016,82.53095 z M 9.79519,72.88663 C 9.8027,70.12849 6.55326,71.2381 4.97409,74.53292 C 4.23638,76.07211 3.93011,78.0916 4.29349,79.0207 C 4.85573,80.45822 5.31452,80.2629 7.3722,77.70995 C 8.70211,76.05995 9.79246,73.88946 9.79519,72.88663 z M 49.25088,80.13022 C 48.88386,79.53638 50.00406,77.6617 51.74022,75.96429 C 54.50416,73.26203 55.07805,73.05928 56.35329,74.33452 C 58.63712,76.61834 56.14369,81.1919 52.60917,81.20215 C 51.12913,81.20644 49.6179,80.72408 49.25088,80.13022 z M 15.80016,55.6404 C 15.80016,51.53347 16.0176,51.1032 17.94803,51.3904 C 19.12936,51.56615 20.5768,52.47723 21.16456,53.41501 C 22.00532,54.75644 21.72335,55.66281 19.84238,57.66501 C 16.49744,61.22553 15.80016,60.87629 15.80016,55.6404 z M 42.46682,59.54329 C 41.08952,58.16598 41.85181,52.47318 43.6289,50.86494 C 46.87303,47.92904 48.80016,48.74518 48.80016,53.05496 C 48.80016,57.92178 44.87082,61.94728 42.46682,59.54329 z M 28.534,33.456285 C 28.32518,33.045802 27.54816,30.783939 26.80728,28.429922 C 25.2055,23.340586 26.52019,20.787127 29.3073,23.574238 C 31.54773,25.814673 32.65172,25.629848 33.94184,22.79834 C 35.41181,19.572097 33.84151,12.841597 31.51425,12.393407 C 30.35351,12.16987 29.80016,12.713578 29.80016,14.077611 C 29.80016,15.18548 29.35016,16.370033 28.80016,16.709952 C 26.90465,17.881441 27.78148,11.536825 29.76291,9.743658 C 32.10332,7.62562 34.80016,8.362245 34.80016,11.11955 C 34.80016,12.204352 35.25016,13.370033 35.80016,13.709952 C 37.19545,14.572293 37.0531,25.560694 35.60547,28.737894 C 34.39782,31.388398 29.2346,34.833521 28.534,33.456285 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3917"
+ d="M 28.36825,114.91115 C 28.36825,116.16793 26.49075,117.45579 25.33254,117.45579 C 24.17432,117.45579 23.0111,116.3465 23.0111,115.08972 C 23.0111,113.83293 24.62075,111.65222 25.77897,111.65222 C 26.93718,111.65222 28.36825,113.65436 28.36825,114.91115 z"
+ style="fill:#ebebec;fill-opacity:1" />
+ <svg:path
+ style="fill:#efeef0;fill-opacity:1"
+ d="M 27.80321,136.51082 C 27.80321,137.7676 26.50607,138.4751 25.34786,138.4751 C 24.18964,138.4751 22.75856,137.81224 22.75856,136.55546 C 22.75856,135.29867 24.10035,134.23403 25.25857,134.23403 C 26.41678,134.23403 27.80321,135.25403 27.80321,136.51082 z"
+ id="path3920"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3924"
+ d="M 37.6093,106.35088 C 37.6093,107.10864 37.0193,107.72364 36.29234,107.72364 C 35.56537,107.72364 34.7968,107.1756 34.7968,106.41784 C 34.7968,105.66007 35.27519,104.84418 36.00216,104.84418 C 36.72912,104.84418 37.6093,105.59311 37.6093,106.35088 z"
+ style="fill:#f3f1f0;fill-opacity:1" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/comets/bonus_comet0.png b/data/images/comets/bonus_comet0.png
new file mode 100644
index 0000000..46961e2
Binary files /dev/null and b/data/images/comets/bonus_comet0.png differ
diff --git a/data/images/comets/bonus_comet1.png b/data/images/comets/bonus_comet1.png
new file mode 100644
index 0000000..26b50f5
Binary files /dev/null and b/data/images/comets/bonus_comet1.png differ
diff --git a/data/images/comets/bonus_comet2.png b/data/images/comets/bonus_comet2.png
new file mode 100644
index 0000000..93226ed
Binary files /dev/null and b/data/images/comets/bonus_comet2.png differ
diff --git a/data/images/comets/bonus_cometex.svg b/data/images/comets/bonus_cometex.svg
new file mode 100644
index 0000000..82e0438
--- /dev/null
+++ b/data/images/comets/bonus_cometex.svg
@@ -0,0 +1,1466 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="58.729076"
+ height="149.08838"
+ id="svg2760"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="bonus_cometex.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>4 frames</desc>
+ <svg:defs
+ id="defs2762">
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ id="stop3855"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3857"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2768" />
+ <inkscape:perspective
+ id="perspective2777"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2798"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2827"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2846"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2975"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3813"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3835"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2572"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2570"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2568"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2566"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2564"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2562"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2560"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2558"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2556"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2554"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2552" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2550" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2548" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2546" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2544" />
+ <inkscape:perspective
+ id="perspective2542"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ id="stop2538"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2540"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2532" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2534" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2528"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2526"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2524"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2729"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2727"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2725"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2723"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2721"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2719"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2717"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2715"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2713"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2711"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2709" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2707" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2705" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2703" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2701" />
+ <inkscape:perspective
+ id="perspective2699"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ id="stop2695"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2697"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2689" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2691" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2685"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2683"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2681"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2702" />
+ <inkscape:perspective
+ id="perspective10"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2547"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3414"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3479"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-120.79428,337.06144)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3356"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,-34.286414,176.57816)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3353"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,-23.81276,169.28131)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3350"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,-4.36287,158.80925)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3347"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3340"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3338"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3336"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3334"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-281.33843,346.08924)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3315"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-122.82473,167.66508)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3312"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,-88.848519,153.61038)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3309"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3303"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3301"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3299"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,123.82938,544.17087)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2514"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,252.26397,375.65703)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2511"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,246.91486,379.97944)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2508"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2774"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2772"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2770"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2768"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2755"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2753"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2751"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3635"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3633"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3631"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient3625">
+ <svg:stop
+ id="stop3627"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3629"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3619">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3621" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3623" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3617" />
+ <inkscape:perspective
+ id="perspective3615"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3613"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3611"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3609"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3607"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3605"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3603"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3601"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3597"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3587"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient3575">
+ <svg:stop
+ id="stop3577"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3579"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3569">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3571" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3573" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3567" />
+ <inkscape:perspective
+ id="perspective3565"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3563"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3561"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3559"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3557"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3555"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3553"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3551"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3545"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3541"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3539"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3535"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3533"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient3531"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3529" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3527" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3525" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3523" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3521" />
+ <inkscape:perspective
+ id="perspective3519"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3513">
+ <svg:stop
+ id="stop3515"
+ offset="0"
+ style="stop-color:#ff6b00;stop-opacity:1;" />
+ <svg:stop
+ id="stop3517"
+ offset="1"
+ style="stop-color:#ff0000;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3507">
+ <svg:stop
+ style="stop-color:#e2eacf;stop-opacity:1;"
+ offset="0"
+ id="stop3509" />
+ <svg:stop
+ style="stop-color:#e8000c;stop-opacity:0;"
+ offset="1"
+ id="stop3511" />
+ </svg:linearGradient>
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.3696767"
+ inkscape:cx="-87.226377"
+ inkscape:cy="63.332488"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame0"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata2765">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(-277.13377,-210.75898)"
+ style="display:inline">
+ <svg:path
+ id="path2712"
+ d="M 303.34712,359.1017 C 303.34712,358.69158 302.57128,358.35603 301.62303,358.35603 C 299.18267,358.35603 293.65352,355.54083 293.65352,354.29831 C 293.65352,353.72615 294.79322,352.55366 296.18618,351.69276 C 297.57915,350.83186 299.26462,349.29453 299.93168,348.27647 C 301.29895,346.18975 303.03491,345.95473 305.16738,347.56765 C 307.48442,349.32017 311.75768,348.95774 313.74722,346.83998 C 315.12482,345.37358 315.36492,344.51425 314.97609,342.44165 C 314.71031,341.02492 313.83058,339.02384 313.02113,337.99479 C 310.46007,334.73893 311.03436,333.7492 315.48463,333.7492 C 320.88226,333.7492 325.00306,330.84145 321.28003,329.65981 C 318.11728,328.65599 315.11975,320.42635 316.78413,317.31643 C 317.49095,315.99572 318.06237,315.84406 320.79032,316.25314 L 323.9721,316.73028 L 326.71007,311.11532 C 329.81004,304.758 330.7369,303.85802 332.16823,305.81548 C 333.33625,307.41285 333.52369,313.31195 332.42794,313.98916 C 330.96336,314.89432 331.63538,319.07824 333.56962,321.09715 C 336.01817,323.65289 335.41766,325.13562 331.03074,327.36587 C 327.67458,329.07209 327.57839,329.21765 327.47981,332.73931 C 327.32275,338.35028 326.14032,342.54466 322.85808,349.1338 C 319.67186,355.53017 316.97556,358.35603 314.05866,358.35603 C 313.08868,358.35603 312.29507,358.69158 312.29507,359.1017 C 312.29507,359.51596 310.30663,359.84736 307.8211,359.84736 C 305.33556,359.84736 303.34712,359.51596 303.34712,359.1017 z M 279.90679,357.45264 C 279.26521,356.53666 278.74028,355.35856 278.74028,354.83464 C 278.74028,354.31072 278.40474,353.88206 277.99462,353.88206 C 275.86431,353.88206 277.82309,352.44474 282.37787,350.66571 C 288.64416,348.21819 288.8511,348.21363 290.34269,350.49008 C 291.88272,352.84045 291.21448,354.90264 288.19707,357.11153 C 284.97542,359.46993 281.42216,359.61614 279.90679,357.45264 z M 286.98794,345.7337 C 285.46927,344.7585 284.75352,337.11525 285.87089,333.80505 C 286.40964,332.209 287.57522,330.73849 288.77571,330.14029 C 290.66099,329.20087 290.7071,329.05985 289.54787,327.77892 C 288.54799,326.67406 288.47941,326.10947 289.18496,324.79114 C 289.89491,323.46459 290.55721,323.22427 292.78629,323.48437 C 294.28855,323.65966 296.00107,323.94378 296.59188,324.11575 C 298.44808,324.65604 298.26512,322.18488 296.29124,320.05503 C 294.1489,317.74341 293.87592,315.32418 295.51768,313.1996 C 296.57688,311.8289 296.68993,311.82134 297.65045,313.05708 C 298.2083,313.77478 299.308,314.36199 300.09422,314.36199 C 300.88044,314.36199 302.40702,315.36863 303.48663,316.59898 C 304.63976,317.9131 306.18483,318.83596 307.23185,318.83596 C 308.21212,318.83596 309.41681,319.23862 309.90895,319.73075 C 311.18835,321.01015 311.01509,327.15034 309.64436,329.10732 C 308.54408,330.67819 308.37114,330.70369 306.25162,329.60764 C 301.78975,327.30032 298.87315,330.69426 298.87315,338.19373 L 298.87315,342.781 L 295.70409,344.15478 C 291.45523,345.99666 288.29027,346.56999 286.98794,345.7337 z M 283.04879,307.09179 C 281.30547,305.24512 281.11447,304.46883 281.12797,299.28488 C 281.13836,295.29765 281.46126,293.26439 282.17861,292.66904 C 282.74822,292.19631 283.21425,291.37126 283.21425,290.8356 C 283.21425,289.26994 285.40799,287.51817 287.36866,287.51817 C 289.43838,287.51817 289.79808,289.24315 288.08547,290.95576 C 287.3814,291.65982 287.14406,292.8132 287.41966,294.19122 C 287.65522,295.36898 287.45586,297.52063 286.97665,298.97266 C 286.32037,300.9612 286.31607,302.00644 286.95923,303.2082 C 287.60564,304.41603 287.59478,305.33077 286.91454,306.97302 C 285.80598,309.64933 285.47286,309.65957 283.04879,307.09179 z M 327.70541,298.95165 C 326.60154,297.84777 327.25922,293.43254 328.74952,291.94224 C 331.92617,288.76559 333.83642,293.72873 330.88249,297.48404 C 329.30105,299.49453 328.58093,299.82717 327.70541,298.95165 z"
+ style="fill:#ff0000" />
+ <svg:path
+ id="path2710"
+ d="M 303.34712,359.1017 C 303.34712,358.69158 302.57128,358.35603 301.62303,358.35603 C 299.18267,358.35603 293.65352,355.54083 293.65352,354.29831 C 293.65352,353.72615 294.79322,352.55366 296.18618,351.69276 C 297.57915,350.83186 299.26462,349.29453 299.93168,348.27647 C 301.29895,346.18975 303.03491,345.95473 305.16738,347.56765 C 306.56463,348.62448 306.55031,348.66243 304.75441,348.66243 C 302.25805,348.66243 297.63423,353.30512 299.02755,354.41267 C 301.12985,356.0838 305.80998,357.02688 309.54316,356.53165 C 316.14019,355.65652 318.04661,353.82923 322.08637,344.50904 C 324.61537,338.67437 325.39288,335.24052 324.185,335.24052 C 323.68735,335.24052 322.00467,335.62267 320.4457,336.08975 C 317.62278,336.93552 317.60908,336.95889 317.08878,341.81746 C 316.33502,348.85592 313.17817,351.5499 308.19393,349.40809 C 306.98061,348.88671 307.19963,348.75748 309.36886,348.71484 C 313.19094,348.63971 315.62747,345.9138 314.97609,342.44165 C 314.71031,341.02492 313.83058,339.02384 313.02113,337.99479 C 310.46007,334.73893 311.03436,333.7492 315.48463,333.7492 C 320.88226,333.7492 325.00306,330.84145 321.28003,329.65981 C 318.11728,328.65599 315.11975,320.42635 316.78413,317.31643 C 317.49095,315.99572 318.06237,315.84406 320.79032,316.25314 L 323.9721,316.73028 L 326.71007,311.11532 C 329.81004,304.758 330.7369,303.85802 332.16823,305.81548 C 333.33625,307.41285 333.52369,313.31195 332.42794,313.98916 C 330.96336,314.89432 331.63538,319.07824 333.56962,321.09715 C 336.01817,323.65289 335.41766,325.13562 331.03074,327.36587 C 327.67458,329.07209 327.57839,329.21765 327.47981,332.73931 C 327.32275,338.35028 326.14032,342.54466 322.85808,349.1338 C 319.67186,355.53017 316.97556,358.35603 314.05866,358.35603 C 313.08868,358.35603 312.29507,358.69158 312.29507,359.1017 C 312.29507,359.51596 310.30663,359.84736 307.8211,359.84736 C 305.33556,359.84736 303.34712,359.51596 303.34712,359.1017 z M 325.54702,326.4134 C 326.8129,325.60998 331.07295,312.97618 330.73057,311.04085 C 330.52148,309.85897 330.11718,310.27367 328.93636,312.88123 C 327.06358,317.01681 325.68891,318.2096 322.13601,318.78185 C 319.66384,319.18003 319.35416,319.48275 319.13999,321.71051 C 318.7545,325.72028 322.41064,328.40396 325.54702,326.4134 z M 279.90679,357.45264 C 279.26521,356.53666 278.74028,355.35856 278.74028,354.83464 C 278.74028,354.31072 278.40474,353.88206 277.99462,353.88206 C 275.86431,353.88206 277.82309,352.44474 282.37787,350.66571 C 288.64416,348.21819 288.8511,348.21363 290.34269,350.49008 C 291.88272,352.84045 291.21448,354.90264 288.19707,357.11153 C 284.97542,359.46993 281.42216,359.61614 279.90679,357.45264 z M 289.17955,351.87163 C 289.17955,350.55802 288.4146,350.64105 284.311,352.40006 C 281.15996,353.75075 280.91163,354.03017 281.82578,355.19629 C 282.38438,355.90887 283.17493,356.73004 283.58254,357.02112 C 284.45257,357.64241 289.17955,353.29339 289.17955,351.87163 z M 286.98794,345.7337 C 285.46927,344.7585 284.75352,337.11525 285.87089,333.80505 C 286.40964,332.209 287.57522,330.73849 288.77571,330.14029 C 290.66099,329.20087 290.7071,329.05985 289.54787,327.77892 C 288.54799,326.67406 288.47941,326.10947 289.18496,324.79114 C 289.89491,323.46459 290.55721,323.22427 292.78629,323.48437 C 294.28855,323.65966 296.00107,323.94378 296.59188,324.11575 C 298.44808,324.65604 298.26512,322.18488 296.29124,320.05503 C 294.1489,317.74341 293.87592,315.32418 295.51768,313.1996 C 296.57688,311.8289 296.68993,311.82134 297.65045,313.05708 C 298.2083,313.77478 299.308,314.36199 300.09422,314.36199 C 300.88044,314.36199 302.40702,315.36863 303.48663,316.59898 C 304.63976,317.9131 306.18483,318.83596 307.23185,318.83596 C 308.21212,318.83596 309.41681,319.23862 309.90895,319.73075 C 311.18835,321.01015 311.01509,327.15034 309.64436,329.10732 C 308.54408,330.67819 308.37114,330.70369 306.25162,329.60764 C 301.78975,327.30032 298.87315,330.69426 298.87315,338.19373 L 298.87315,342.781 L 295.70409,344.15478 C 291.45523,345.99666 288.29027,346.56999 286.98794,345.7337 z M 294.0503,342.36236 L 296.63617,341.28191 L 296.63617,336.26936 C 296.63617,331.04049 297.81525,328.54173 300.29363,328.51833 C 300.94777,328.51216 302.82516,328.04239 304.46562,327.47439 C 306.81221,326.6619 307.49957,326.01797 307.68886,324.45478 C 308.05036,321.46937 306.04296,318.98645 302.79352,318.39983 C 301.25249,318.12162 299.40444,317.59082 298.68674,317.22025 C 296.69297,316.19084 297.03013,318.30357 299.28779,320.98664 C 300.82562,322.81425 301.04181,323.53565 300.40707,324.72166 C 299.32331,326.74669 296.94597,327.34749 294.3203,326.2599 C 291.44296,325.06807 291.15645,325.48799 292.55812,328.84264 C 293.19675,330.37111 293.51409,332.26815 293.26332,333.05827 C 292.7674,334.62076 291.77356,334.93012 291.0437,333.7492 C 290.3646,332.65038 287.90955,332.84256 287.45381,334.03021 C 287.07609,335.01453 287.4986,340.56767 288.09905,342.51072 C 288.48181,343.74933 290.87352,343.6897 294.0503,342.36236 z M 283.04879,307.09179 C 281.30547,305.24512 281.11447,304.46883 281.12797,299.28488 C 281.13836,295.29765 281.46126,293.26439 282.17861,292.66904 C 282.74822,292.19631 283.21425,291.37126 283.21425,290.8356 C 283.21425,289.26994 285.40799,287.51817 287.36866,287.51817 C 289.43838,287.51817 289.79808,289.24315 288.08547,290.95576 C 287.3814,291.65982 287.14406,292.8132 287.41966,294.19122 C 287.65522,295.36898 287.45586,297.52063 286.97665,298.97266 C 286.32037,300.9612 286.31607,302.00644 286.95923,303.2082 C 287.60564,304.41603 287.59478,305.33077 286.91454,306.97302 C 285.80598,309.64933 285.47286,309.65957 283.04879,307.09179 z M 284.62242,302.24499 C 284.58587,301.32223 284.99214,298.64888 285.52523,296.3042 C 286.56897,291.71353 286.08828,290.11132 284.35972,292.4194 C 282.85437,294.42944 282.20977,299.42963 283.14111,301.87215 C 284.08887,304.35773 284.71232,304.51464 284.62242,302.24499 z M 327.70541,298.95165 C 326.60154,297.84777 327.25922,293.43254 328.74952,291.94224 C 331.92617,288.76559 333.83642,293.72873 330.88249,297.48404 C 329.30105,299.49453 328.58093,299.82717 327.70541,298.95165 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:path
+ id="path2585"
+ d="M 25.727918,148.60649 C 23.408302,147.85919 20.921745,146.66067 20.202235,145.94312 C 18.927023,144.67139 19.003732,144.52879 23.24413,140.28839 L 27.594224,135.9383 L 30.422693,137.07002 C 32.598457,137.9406 34.451268,138.09301 38.451691,137.7305 C 41.311981,137.4713 43.648213,137.06564 43.643314,136.82901 C 43.638422,136.59238 42.689488,134.53541 41.534573,132.25797 C 38.450124,126.17553 38.593602,125.73204 43.827948,125.16951 C 46.244214,124.90984 49.583435,124.19633 51.248434,123.58393 C 53.909707,122.60511 54.40044,122.59522 55.30736,123.50214 C 56.203125,124.39791 56.211848,125.14035 55.373624,129.13921 C 54.842664,131.67219 53.640744,135.13259 52.702692,136.82899 C 51.292717,139.37881 50.63616,139.91779 48.91419,139.93903 C 47.235492,139.95973 46.532023,140.49816 45.289433,142.71337 C 44.44143,144.22512 42.640179,146.50682 41.286641,147.78381 C 39.012349,149.92947 38.488854,150.10027 34.385531,150.03541 C 31.943461,149.99681 28.047533,149.35379 25.727918,148.60649 z M 6.7337109,146.28794 C 5.3053057,144.85953 5.083192,144.21939 5.6490868,143.16202 C 6.6839165,141.22841 9.7080274,140.67215 11.785384,142.03328 C 13.12518,142.91115 13.461158,143.66262 13.292508,145.4042 C 13.102904,147.36214 12.788217,147.67313 10.80271,147.86479 C 9.1156117,148.02764 8.0670892,147.62131 6.7337109,146.28794 z M 8.9751414,130.65831 C 8.717404,130.40058 8.5065298,128.36609 8.5065298,126.13724 C 8.5065298,122.43679 8.6897021,121.95434 10.615271,120.58322 C 13.205185,118.73903 13.26894,117.59932 10.886983,115.72567 C 8.0005795,113.45523 9.1002038,111.87387 13.240872,112.34059 C 17.591677,112.83099 20.78429,116.07714 20.222268,119.43905 C 18.696376,128.5666 16.916929,131.12692 12.099052,131.12692 C 10.638636,131.12692 9.2328718,130.91605 8.9751414,130.65831 z M 25.830958,111.40742 L 20.267691,105.7462 L 20.649056,101.54037 C 21.291407,94.456423 21.76385,94.473159 29.294763,101.84667 C 35.74238,108.15952 35.920168,108.41957 35.920168,111.5378 C 35.920168,114.80525 34.46804,117.06865 32.371747,117.06865 C 31.834109,117.06865 28.890756,114.5211 25.830958,111.40742 z M 44.759436,113.89156 C 44.015296,113.32856 42.992022,111.67799 42.485488,110.22362 C 41.66632,107.8716 41.707588,107.38524 42.858792,105.82359 C 43.57064,104.85794 45.380094,103.7236 46.879796,103.30282 C 48.754074,102.77695 50.230059,101.6777 51.600966,99.786688 C 54.952614,95.163456 57.007582,94.90245 57.007582,99.099984 C 57.007582,100.38307 57.482049,102.56841 58.061953,103.95632 C 58.641857,105.34423 59.116323,106.76276 59.116323,107.10863 C 59.116323,108.35406 54.774404,113.22095 52.924068,114.04956 C 50.340923,115.20634 46.396346,115.13001 44.759436,113.89156 z M 8.9997363,87.898117 C 8.2913679,86.41265 7.803616,83.695747 7.803616,81.235394 C 7.803616,77.895064 8.125417,76.706844 9.4457703,75.171835 C 10.348958,74.121822 11.409325,73.46135 11.802141,73.704123 C 12.224677,73.965269 12.486997,77.380369 12.444457,82.066442 C 12.384962,88.620382 12.18473,90.023511 11.284206,90.196878 C 10.617331,90.325265 9.7326435,89.435045 8.9997363,87.898117 z M 52.790099,87.329769 C 52.790099,85.957049 53.282055,84.498461 53.925038,83.964837 C 54.898482,83.156943 55.251197,83.259083 56.403934,84.682645 C 57.584653,86.140777 57.62912,86.522199 56.769997,87.822962 C 56.232156,88.637288 55.116653,89.40463 54.291101,89.528168 C 53.005226,89.72059 52.790099,89.405516 52.790099,87.329769 z"
+ style="fill:#ff0000" />
+ <svg:path
+ id="path2581"
+ d="M 25.649768,148.39861 C 23.287169,147.51641 20.993913,146.57198 20.553643,146.29987 C 19.106934,145.40576 19.715945,143.40154 21.810284,142.16438 C 22.941701,141.49604 24.549061,139.84629 25.382183,138.49827 C 26.215304,137.15025 27.003081,136.04732 27.132797,136.04732 C 27.262519,136.04732 28.85185,136.68309 30.66465,137.46015 C 33.458922,138.65791 34.394332,138.7562 36.809614,138.10583 C 38.37655,137.6839 40.715305,137.53693 42.00686,137.77922 C 43.298408,138.02152 44.355134,137.95785 44.355134,137.63772 C 44.355134,137.3176 43.21952,134.91707 41.831554,132.30321 C 40.443587,129.68934 39.484728,127.09012 39.700755,126.52717 C 39.955631,125.86297 41.150107,125.48729 43.10297,125.45711 C 44.75817,125.43154 47.85213,124.83697 49.978444,124.13584 C 54.478428,122.65202 56.672784,123.23088 56.048526,125.7371 C 55.839775,126.57518 55.463351,128.55468 55.212031,130.13597 C 54.960711,131.71726 53.906411,134.56406 52.869142,136.46219 C 51.208972,139.50021 50.73234,139.89465 48.887669,139.7572 C 47.06585,139.62145 46.577543,140.00558 45.149173,142.69807 C 44.245542,144.40144 42.440403,146.76496 41.13775,147.95034 C 39.00364,149.89234 38.332737,150.1005 34.357345,150.05411 C 31.59999,150.02193 28.334428,149.40108 25.649768,148.39861 z M 37.741066,145.81782 C 38.405819,145.08328 39.684173,144.48228 40.581843,144.48228 C 41.567272,144.48228 42.692342,143.75222 43.421235,142.63979 C 44.574991,140.87893 44.56792,140.75238 43.261716,139.78395 C 42.327614,139.0914 41.00485,138.90622 39.08328,139.19897 C 34.593039,139.88307 34.33535,139.88524 30.768253,139.26903 C 27.462266,138.69793 27.30144,138.7531 24.609441,141.38177 C 23.089137,142.86631 21.947022,144.38621 22.071395,144.75935 C 22.411177,145.77869 28.018461,147.03061 32.535997,147.09574 C 35.619131,147.14019 36.80863,146.84815 37.741066,145.81782 z M 50.868003,134.11431 C 54.010674,126.99624 54.099775,123.52048 51.053284,126.88682 C 50.109291,127.92992 49.488949,128.10276 48.53035,127.58973 C 47.076268,126.81153 43.413834,126.67921 42.713471,127.37958 C 42.454891,127.63816 42.67569,128.34986 43.204133,128.96114 C 43.732584,129.57241 44.356272,131.3378 44.590118,132.88421 C 44.970535,135.39991 47.043132,138.15606 48.554495,138.15606 C 48.845474,138.15606 49.886552,136.33727 50.868003,134.11431 z M 7.2764307,146.81988 C 5.0763597,145.28519 5.1759485,142.53057 7.4521591,141.95927 C 9.7504342,141.38245 12.680453,142.14505 13.181378,143.45044 C 13.399815,144.01968 13.380246,145.2755 13.137888,146.24114 C 12.79907,147.59109 12.253588,147.98833 10.777609,147.95999 C 9.7218186,147.93971 8.1462865,147.42666 7.2764307,146.81988 z M 11.082125,144.17808 C 10.588258,142.89108 8.8112359,142.71768 8.0891677,143.886 C 7.4337428,144.94651 9.9588763,146.82567 10.846558,145.93799 C 11.208622,145.57593 11.314628,144.78397 11.082125,144.17808 z M 9.3500264,130.28343 C 8.8861033,129.8195 8.5065298,127.98081 8.5065298,126.19745 C 8.5065298,123.51226 8.8689662,122.60774 10.615271,120.93467 C 13.217817,118.44128 13.243831,117.61047 10.791,115.32226 C 9.1548905,113.79596 9.019931,113.41142 9.9123574,112.81872 C 11.319521,111.88415 15.465419,112.61961 17.638617,114.18932 C 19.856781,115.79151 21.020884,119.51738 19.876048,121.35055 C 19.421853,122.07784 19.050237,123.29491 19.050237,124.05517 C 19.050237,126.40817 17.459873,129.07751 15.433724,130.12527 C 13.068715,131.34826 10.482104,131.4155 9.3500264,130.28343 z M 14.817845,128.67444 C 17.263887,127.40953 17.540736,126.52088 17.401299,120.3818 C 17.293051,115.61589 16.610817,114.29484 14.243783,114.26775 C 13.53488,114.25964 13.420635,114.95115 13.77974,117.07667 C 14.211069,119.6297 14.050734,120.07656 12.084235,121.80213 C 9.7690263,123.8337 9.1277299,127.24947 10.755854,128.8776 C 11.845272,129.96702 12.368908,129.94083 14.817845,128.67444 z M 26.832772,112.49063 C 21.750754,107.64321 20.10957,104.2565 20.755435,99.949575 C 21.549524,94.654202 22.299814,94.864907 29.418215,102.38244 C 36.147223,109.48874 36.713167,110.67389 35.234651,114.56269 C 34.087327,117.58037 31.499831,116.94226 26.832772,112.49063 z M 33.10949,110.01834 C 32.1614,106.58732 26.797718,100.90163 24.509086,100.90163 C 22.146467,100.90163 21.592318,102.58127 22.985971,105.51818 C 24.418404,108.53681 29.24248,112.94191 30.561498,112.43576 C 31.110937,112.22492 31.786339,112.41785 32.06238,112.86449 C 33.042544,114.45043 33.780175,112.44549 33.10949,110.01834 z M 44.759436,113.89187 C 44.015296,113.3287 42.992022,111.67799 42.485488,110.22362 C 41.667536,107.87509 41.708115,107.3845 42.848241,105.83772 C 43.554845,104.87909 45.205849,103.8765 46.520706,103.60759 C 48.187666,103.26666 49.885343,102.00634 52.139082,99.43663 C 53.915373,97.411311 55.69657,95.956862 56.097302,96.204527 C 56.498033,96.452192 57.024944,98.163906 57.268215,100.00833 C 57.511494,101.85276 57.900711,104.52591 58.133144,105.94867 C 58.511087,108.2621 58.269636,108.83112 55.848653,111.33228 C 53.601452,113.65392 52.544487,114.19587 49.626987,114.52243 C 47.132937,114.80158 45.719553,114.61849 44.759436,113.89187 z M 52.370685,111.26961 C 53.318009,109.79905 55.601754,102.02654 55.601754,100.27299 C 55.601754,98.751057 53.815306,99.532395 51.950012,101.87014 C 50.908062,103.17601 49.170121,104.46667 48.087922,104.73829 C 45.36624,105.42139 44.355134,106.40936 44.355134,108.38569 C 44.355134,109.5219 44.907666,110.28438 46.044137,110.71646 C 46.973087,111.06965 47.94069,111.69444 48.194364,112.10489 C 48.986415,113.38646 51.305869,112.92256 52.370685,111.26961 z M 10.071504,89.47928 C 8.9757107,88.134381 7.8119104,83.309117 7.8075383,80.092583 C 7.8046423,77.96487 8.2779423,76.696033 9.6111026,75.257534 C 10.60522,74.184867 11.672271,73.585134 11.982326,73.924796 C 12.679652,74.688701 12.042362,90.357922 11.313961,90.357922 C 11.02436,90.357922 10.465248,89.962533 10.071504,89.47928 z M 52.800861,87.721995 C 52.815285,85.131364 53.730457,83.8395 55.334528,84.145443 C 58.12461,84.677605 57.018231,89.655008 54.109855,89.655008 C 53.136123,89.655008 52.792925,89.1482 52.800861,87.721995 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:path
+ id="path3426"
+ d="M 28.456171,149.0296 C 28.456171,148.66303 27.593029,148.36311 26.538074,148.36311 C 23.66823,148.36311 19.791786,146.53904 19.79108,145.18829 C 19.790746,144.55171 20.662074,143.13109 21.727366,142.03136 C 22.792657,140.93165 24.604768,139.02175 25.754279,137.78717 C 27.641677,135.76008 27.954724,135.63858 28.983358,136.53382 C 30.621979,137.95997 31.949678,138.27421 33.33089,137.56281 C 34.150137,137.14086 34.871669,137.2155 35.56914,137.79434 C 36.420359,138.50079 36.742758,138.45114 37.432884,137.50734 C 38.43995,136.1301 39.652964,136.053 41.067168,137.27636 C 41.645896,137.77698 42.98034,138.39163 44.032608,138.64222 C 45.929724,139.09401 45.941947,139.07718 45.484975,136.64134 C 45.231513,135.29026 44.449644,133.40094 43.747487,132.44286 C 43.045337,131.48477 42.287061,129.76494 42.062431,128.62101 L 41.654021,126.54113 L 45.552452,126.6929 C 47.696592,126.77637 50.856461,126.39823 52.574389,125.8526 C 57.076482,124.42266 57.991311,124.97656 57.560646,128.87169 C 56.981332,134.11119 56.407443,136.58729 55.233612,138.91194 C 54.159869,141.03837 54.002789,141.10763 51.198541,140.6912 C 49.593739,140.45287 47.927235,140.12224 47.495202,139.95646 C 47.063171,139.79068 46.03503,141.00591 45.210451,142.65697 C 43.388491,146.30509 40.919119,148.36311 38.36377,148.36311 C 37.313487,148.36311 36.454157,148.66303 36.454157,149.0296 C 36.454157,149.39989 34.676831,149.6961 32.455164,149.6961 C 30.233503,149.6961 28.456171,149.39989 28.456171,149.0296 z M 5.4936061,128.86801 C 4.8658481,126.8547 4.6774929,121.64877 5.2202702,121.31331 C 5.5484481,121.1105 5.6482317,120.67155 5.4420141,120.33787 C 4.8856077,119.43759 6.3608212,117.03766 7.4706214,117.03766 C 8.2518088,117.03766 8.2916208,116.72817 7.6824302,115.39115 C 5.9289128,111.5426 10.660086,110.42078 14.792946,113.70516 C 16.17677,114.80489 17.560168,115.70466 17.867177,115.70466 C 18.783707,115.70466 17.653338,119.97344 16.513652,120.81617 C 15.612279,121.48269 15.580756,121.9159 16.295794,123.81025 C 17.058501,125.83089 17.003428,126.12189 15.667615,127.12949 C 12.68415,129.37992 6.0088836,130.52059 5.4936061,128.86801 z M 31.681732,120.24544 C 30.33887,119.88988 28.309015,118.57414 27.166696,117.31881 C 26.025257,116.06446 24.798699,115.03817 24.441015,115.03817 C 24.083332,115.03817 23.79068,114.12841 23.79068,113.01651 C 23.79068,111.9046 23.040868,109.51518 22.124432,107.70668 C 20.055153,103.62315 19.843606,98.471983 21.677038,96.812748 C 23.296611,95.347054 23.571428,95.411885 24.064377,97.375948 C 24.329217,98.431174 24.95292,99.042198 25.765195,99.042198 C 26.500171,99.042198 27.561909,99.930891 28.251869,101.1236 C 28.95248,102.33473 30.596999,103.69965 32.184978,104.38801 L 34.914038,105.57103 L 35.297728,111.13773 C 35.775254,118.06583 35.643321,120.55142 34.78791,120.74252 C 34.421335,120.82442 33.023554,120.60074 31.681732,120.24544 z M 47.543617,110.03943 C 47.332611,109.48956 46.550894,109.03968 45.806462,109.03968 C 44.701047,109.03968 44.473224,108.64262 44.563601,106.87355 C 44.624459,105.68218 44.45113,104.20576 44.178418,103.59259 C 43.442631,101.93825 46.03507,99.578751 48.036593,100.0811 C 49.391157,100.42106 49.882753,99.974981 51.697882,96.758751 C 53.876187,92.899005 54.167134,92.674261 55.716004,93.654925 C 56.419533,94.100366 56.552246,95.184409 56.255388,98.060715 C 55.961636,100.90692 56.124095,102.27625 56.895167,103.45305 C 58.337164,105.65381 57.659975,106.81302 53.971377,108.458 C 52.218252,109.23983 50.263083,110.14042 49.626551,110.45934 C 48.094565,111.22688 47.991298,111.20606 47.543617,110.03943 z M 52.917502,89.289919 C 52.085705,88.458121 52.421901,85.898861 53.478121,85.022276 C 54.888279,83.851948 55.946526,85.029035 55.668103,87.458196 C 55.459476,89.278426 53.926721,90.29914 52.917502,89.289919 z M 7.9280096,80.246928 C 6.8072141,79.126132 6.9302601,74.294453 8.1229618,72.591632 C 8.7546084,71.689831 9.5810602,71.292593 10.387084,71.503373 C 11.514262,71.798137 11.615824,72.295247 11.293747,75.941149 C 10.876736,80.661692 9.7650062,82.083925 7.9280096,80.246928 z"
+ style="fill:#ff0000" />
+ <svg:path
+ id="path3424"
+ d="M 28.456171,149.0296 C 28.456171,148.66303 27.481417,148.36199 26.29005,148.36061 C 23.74545,148.35769 19.791687,146.14698 19.791687,144.72712 C 19.791687,144.18284 20.68844,143.07452 21.784478,142.26419 C 22.880515,141.45385 23.937789,140.32016 24.13398,139.74486 C 24.33017,139.16957 25.238001,138.1562 26.151385,137.49294 C 27.75934,136.32529 27.864094,136.32792 29.450261,137.5756 C 31.341385,139.06316 36.360174,139.15998 38.068891,137.74188 C 38.942964,137.01647 39.120152,137.0302 39.120152,137.82338 C 39.120152,138.34806 38.745247,139.27221 38.287028,139.87704 C 37.563451,140.83214 36.803449,140.89321 32.506864,140.34152 C 29.78599,139.99216 27.514408,139.77956 27.458909,139.86909 C 27.40341,139.95863 26.691782,140.99695 25.87752,142.17649 L 24.39704,144.3211 L 26.841251,145.34236 C 28.185566,145.90405 30.928048,146.36361 32.935657,146.36361 C 36.132018,146.36361 36.818065,146.11501 38.453653,144.36412 C 39.480948,143.26439 40.616522,142.36462 40.977151,142.36462 C 41.33778,142.36462 42.124135,141.6148 42.724604,140.69837 C 43.32508,139.78194 44.409307,139.03212 45.134004,139.03212 C 46.800185,139.03212 46.77935,137.36642 45.079825,134.69988 C 43.530575,132.26913 42.605848,130.21035 42.026507,127.90208 C 41.626381,126.30784 41.723804,126.20309 43.187561,126.65378 C 45.616196,127.40156 49.113807,127.12673 52.535558,125.91924 C 56.878224,124.38679 58.009446,124.97741 57.554075,128.53946 C 56.59435,136.0467 54.765303,141.03162 52.970503,141.03162 C 51.453438,141.03162 51.477785,140.17182 53.116965,135.8591 C 54.968919,130.98655 54.876322,129.88664 52.616752,129.91739 C 51.608672,129.9311 50.259012,129.70601 49.617507,129.41718 C 48.602335,128.96011 48.435186,129.31167 48.3281,132.1292 C 48.260431,133.90965 48.172732,136.06001 48.133216,136.90778 C 48.093699,137.75554 47.739468,138.65532 47.34604,138.90727 C 46.952606,139.15924 46.003719,140.60233 45.237405,142.11416 C 43.52591,145.49067 40.230959,148.36311 38.06927,148.36311 C 37.18096,148.36311 36.454157,148.66303 36.454157,149.0296 C 36.454157,149.39989 34.676831,149.6961 32.455164,149.6961 C 30.233503,149.6961 28.456171,149.39989 28.456171,149.0296 z M 5.5276785,128.9568 C 4.8734296,126.90414 4.6624414,121.65808 5.2202702,121.31331 C 5.5484481,121.1105 5.6611292,120.69241 5.4706733,120.38424 C 4.9287842,119.50745 5.8413421,117.70415 6.8269349,117.70415 C 8.1705835,117.70415 8.6775273,116.43515 7.7704788,115.34221 C 5.9952258,113.20317 10.572515,111.05807 13.113859,112.83809 C 15.011446,114.16722 14.785092,115.03817 12.542071,115.03817 C 10.66358,115.03817 10.631344,115.09937 10.962505,118.03741 C 11.316564,121.17861 10.382746,122.02509 8.5667546,120.2091 C 7.4833654,119.12571 6.296874,120.77912 6.777194,122.7029 C 6.9602424,123.43605 7.1141046,124.71072 7.1191095,125.53552 C 7.1261681,126.69867 7.5119038,127.03515 8.8382742,127.03515 C 11.887451,127.03515 13.1267,125.9015 13.1267,123.11215 C 13.1267,118.93345 14.318972,116.37116 16.263395,116.37116 C 17.736004,116.37116 17.88412,116.58066 17.498291,118.11792 C 17.257165,119.07864 16.607555,120.31701 16.054707,120.86985 C 15.472007,121.45255 15.243577,122.32914 15.511214,122.95546 C 16.497969,125.2647 16.097017,126.61505 14.06856,127.81414 C 11.254003,129.47792 5.9211798,130.1914 5.5276785,128.9568 z M 30.715002,119.73191 C 28.285608,118.72485 28.203488,117.0564 30.543172,116.24078 C 32.611411,115.5198 32.615624,115.50831 32.180753,111.77894 C 31.680153,107.48592 29.998423,105.33238 26.099944,103.99215 L 23.64549,103.14836 L 24.059252,105.21715 C 24.286821,106.35499 24.919335,107.77914 25.464844,108.38193 C 27.090555,110.17832 26.568486,114.37166 24.719119,114.37166 C 24.117631,114.37166 23.787853,113.60887 23.782655,112.20555 C 23.778235,111.01418 23.028425,108.73413 22.116407,107.13877 C 21.063553,105.29707 20.465924,103.22885 20.47938,101.47353 C 20.510725,97.385839 23.156139,94.544217 23.983797,97.709197 C 24.190985,98.501484 24.892915,99.042198 25.714235,99.042198 C 26.655378,99.042198 27.529851,99.892451 28.456171,101.70819 C 29.310262,103.38234 30.279672,104.37419 31.061874,104.37419 C 31.746962,104.37419 32.935877,104.89905 33.703902,105.54056 C 34.924576,106.56014 35.122599,107.54574 35.277367,113.37192 L 35.454408,120.03691 L 33.788162,120.17601 C 32.871726,120.25251 31.488808,120.05266 30.715002,119.73191 z M 46.792533,108.66214 C 46.06359,108.11123 45.447739,107.29597 45.423978,106.85046 C 45.400211,106.40494 45.138336,105.21175 44.842031,104.1989 C 44.112222,101.70425 45.433389,100.13822 47.858578,100.62326 C 49.498116,100.95117 49.848015,100.65089 51.480784,97.514839 C 52.474833,95.605577 53.6144,93.835666 54.013153,93.581704 C 56.0261,92.299692 57.281697,96.907646 55.716384,99.832451 C 55.124199,100.93897 55.263058,101.5795 56.440315,103.17182 C 57.809237,105.02338 57.829646,105.21646 56.779203,106.37718 C 55.3063,108.00472 51.644882,109.71154 49.683403,109.68498 C 48.822367,109.67332 47.521476,109.21304 46.792533,108.66214 z M 50.930023,106.87355 C 51.283454,106.41534 52.067563,104.76575 52.672484,103.20781 C 53.744261,100.4475 53.470596,99.621321 51.978679,101.11324 C 51.572754,101.51916 50.238091,102.05514 49.012758,102.30429 C 47.330358,102.64638 46.728596,103.15007 46.554967,104.36152 C 46.194764,106.87476 49.475943,108.75872 50.930023,106.87355 z M 52.656388,87.954372 C 52.147436,86.628068 53.249959,84.71247 54.522265,84.71247 C 55.081058,84.71247 55.532344,85.573008 55.658225,86.87859 C 55.833795,88.699506 55.644582,89.044712 54.470938,89.044712 C 53.703057,89.044712 52.88651,88.554059 52.656388,87.954372 z M 7.5725437,79.935895 C 7.3281606,79.691512 7.1282106,78.238374 7.1282106,76.706699 C 7.1282106,73.949576 8.5686671,71.715743 10.346561,71.715743 C 11.17496,71.715743 11.456533,77.413489 10.722646,79.325969 C 10.314991,80.388297 8.3964216,80.759773 7.5725437,79.935895 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:path
+ id="path3489"
+ d="M 28.488917,144.36616 C 27.335002,144.10057 26.2887,143.35266 26.163806,142.70416 C 25.806349,140.848 28.782579,139.47688 33.732553,139.21729 C 37.452451,139.02221 38.322577,139.18202 38.501912,140.09332 C 39.133038,143.30032 33.781018,145.58419 28.488917,144.36616 z M 49.86992,135.46766 C 49.408524,134.30902 48.988986,132.27422 48.937619,130.94584 C 48.852681,128.74954 49.055765,128.48613 51.178369,128.03954 C 52.876997,127.68215 53.614963,127.81541 53.888787,128.52898 C 54.493138,130.1039 53.475653,134.17666 52.036257,135.94419 L 50.70882,137.57427 L 49.86992,135.46766 z M 4.012084,124.70377 C 3.3729083,123.9975 2.8499471,122.25954 2.8499471,120.84167 C 2.8499471,118.76846 3.1136888,118.26369 4.1969205,118.26369 C 6.4928824,118.26369 7.7768458,119.05784 8.8565261,121.1457 C 9.8136866,122.99666 9.7839125,123.26718 8.4794539,124.57163 C 6.7242623,126.32683 5.513337,126.36264 4.012084,124.70377 z M 9.1865337,116.71552 C 7.5858572,114.99739 7.6495167,113.81254 9.3603364,113.48065 C 10.69814,113.22113 13.382988,115.71048 13.382988,117.21039 C 13.382988,118.78254 10.831999,118.48171 9.1865337,116.71552 z M 27.556049,111.7301 C 25.753171,109.81102 22.293944,101.62894 22.882713,100.67629 C 23.58639,99.537718 27.336266,101.99989 29.547494,105.0524 C 32.061444,108.52281 32.533043,113.34827 30.358252,113.34827 C 29.653155,113.34827 28.392161,112.6201 27.556049,111.7301 z M 48.333922,102.42197 C 47.681189,101.76924 52.893295,92.984401 53.933306,92.984401 C 54.677916,92.984401 54.799985,93.748 54.466531,96.319863 C 53.636015,102.72533 53.588791,102.81524 51.05448,102.81524 C 49.77447,102.81524 48.550214,102.63827 48.333922,102.42197 z"
+ style="fill:#ff0000;fill-opacity:1" />
+ <svg:path
+ id="path3487"
+ d="M 27.60259,143.74963 C 24.041912,143.0638 27.19671,140.27824 31.991356,139.87452 C 33.922414,139.7119 36.055355,139.33102 36.731224,139.02809 C 37.724307,138.58298 37.960079,138.8209 37.960079,140.26813 C 37.960079,143.53367 33.778666,144.93918 27.60259,143.74963 z M 35.151269,142.32876 C 36.651973,141.77715 31.624519,140.69576 29.92903,141.20547 C 28.652945,141.58908 28.644111,141.66934 29.786111,142.50439 C 30.916017,143.3306 32.573223,143.27636 35.151269,142.32876 z M 50.288432,135.64321 C 50.141461,135.16044 49.681175,133.70219 49.265576,132.40263 C 48.84997,131.10308 48.66777,129.78443 48.860679,129.4723 C 49.287477,128.78172 53.372885,127.82481 53.851408,128.30333 C 54.039753,128.49168 53.678744,130.41769 53.049163,132.58337 C 51.95806,136.33663 50.867503,137.54534 50.288432,135.64321 z M 52.355232,131.02037 C 52.355232,129.64576 50.98697,129.76224 50.717829,131.15976 C 50.553576,132.01266 50.795149,132.35963 51.410419,132.15455 C 51.930063,131.98133 52.355232,131.47095 52.355232,131.02037 z M 3.6925902,124.44308 C 3.2291366,123.97962 2.8499471,122.39966 2.8499471,120.93207 C 2.8499471,118.71206 3.0912942,118.26369 4.2862709,118.26369 C 5.8988567,118.26369 9.169771,121.20538 9.169771,122.65566 C 9.169771,124.05214 7.6876809,125.28572 6.0098589,125.28572 C 5.1988148,125.28572 4.156044,124.90653 3.6925902,124.44308 z M 7.4559097,123.11173 C 8.1528725,121.98402 5.8605059,119.88768 4.9385504,120.80963 C 4.5369193,121.21126 4.4104744,122.06669 4.6575613,122.71059 C 5.1672739,124.03888 6.7432738,124.26479 7.4559097,123.11173 z M 9.6297051,116.97954 C 8.1090083,115.2992 8.1524201,114.05047 9.7315327,114.05047 C 11.349318,114.05047 12.680784,115.38194 12.680784,116.99972 C 12.680784,118.63091 11.114788,118.62054 9.6297051,116.97954 z M 28.384577,112.03104 C 26.743087,110.50176 22.772195,101.6184 23.434181,100.95641 C 24.103958,100.28664 27.121996,102.50901 29.145625,105.16212 C 31.01651,107.61498 31.905168,112.62374 30.555177,113.10682 C 30.151487,113.25127 29.174716,112.76717 28.384577,112.03104 z M 29.640327,108.37165 C 29.284085,107.43978 28.324371,106.07539 27.507625,105.33966 C 26.047324,104.02422 26.022676,104.02422 26.025261,105.33966 C 26.029263,107.38038 28.795836,111.55816 29.606431,110.74756 C 30.033553,110.32044 30.046213,109.43338 29.640327,108.37165 z M 48.495182,102.06218 C 48.490955,101.24003 52.825835,93.695631 53.564909,93.238859 C 54.104244,92.905533 54.196892,93.893142 53.876575,96.561028 C 53.625868,98.649108 53.417995,100.85523 53.414638,101.46352 C 53.410201,102.26815 52.739435,102.55515 50.952892,102.51682 C 49.602289,102.48784 48.49632,102.28326 48.495182,102.06218 z"
+ style="fill:#cccccc;fill-opacity:1" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/comets/bonus_cometex0.png b/data/images/comets/bonus_cometex0.png
new file mode 100644
index 0000000..36cc22d
Binary files /dev/null and b/data/images/comets/bonus_cometex0.png differ
diff --git a/data/images/comets/bonus_cometex1.png b/data/images/comets/bonus_cometex1.png
new file mode 100644
index 0000000..a18dc8d
Binary files /dev/null and b/data/images/comets/bonus_cometex1.png differ
diff --git a/data/images/comets/bonus_cometex2.png b/data/images/comets/bonus_cometex2.png
new file mode 100644
index 0000000..c37febc
Binary files /dev/null and b/data/images/comets/bonus_cometex2.png differ
diff --git a/data/images/comets/bonus_cometex3.png b/data/images/comets/bonus_cometex3.png
new file mode 100644
index 0000000..9c10d70
Binary files /dev/null and b/data/images/comets/bonus_cometex3.png differ
diff --git a/data/images/comets/comet.svg b/data/images/comets/comet.svg
new file mode 100644
index 0000000..8ac9bc5
--- /dev/null
+++ b/data/images/comets/comet.svg
@@ -0,0 +1,821 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="58.729076"
+ height="149.08838"
+ id="svg2760"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="comet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>3 frames</desc>
+ <svg:defs
+ id="defs2762">
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ id="stop3855"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3857"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2768" />
+ <inkscape:perspective
+ id="perspective2777"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2798"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2827"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2846"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2975"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3813"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3835"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2572"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2570"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2568"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2566"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2564"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2562"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2560"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2558"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2556"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2554"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2552" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2550" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2548" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2546" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2544" />
+ <inkscape:perspective
+ id="perspective2542"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ id="stop2538"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2540"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2532" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2534" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2528"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2526"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2524"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2729"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2727"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2725"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2723"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2721"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2719"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2717"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2715"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2713"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2711"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2709" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2707" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2705" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2703" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2701" />
+ <inkscape:perspective
+ id="perspective2699"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ id="stop2695"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2697"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2689" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2691" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2685"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2683"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2681"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2751"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.3696767"
+ inkscape:cx="12.17177"
+ inkscape:cy="81.808532"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2760"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata2765">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(-277.13377,-210.75898)"
+ style="display:inline">
+ <svg:g
+ id="lay1"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient3835);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2928"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path3877"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient3879);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient3883);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path3881"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2926"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path3910"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3915"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:g
+ transform="translate(-285.43679,-209.27848)"
+ id="g2574"
+ inkscape:label="Calque 1">
+ <svg:g
+ inkscape:label="#lay2"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ transform="translate(173.02267,-7.4289617)"
+ id="lay2">
+ <svg:path
+ id="path2956"
+ d="M 140.21428,365.8622 C 140.21428,365.3122 138.84193,364.8622 137.16462,364.8622 C 131.52784,364.8622 125.24903,359.84778 118.86683,350.24909 C 116.5113,346.70643 116.10827,345.02249 115.96084,338.10737 C 115.78811,330.00592 116.85516,326.8622 119.77771,326.8622 C 122.37604,326.8622 122.19467,324.93341 119.1757,320.46014 C 117.48839,317.96002 115.6818,315.65114 115.16107,315.32931 C 114.64034,315.00748 114.21428,310.93678 114.21428,306.28331 C 114.21428,298.96987 114.55502,297.28269 116.72683,293.84233 C 118.87253,290.44331 119.74854,289.8622 122.72683,289.8622 C 126.5263,289.8622 127.08387,291.1284 124.68248,294.30333 C 123.87497,295.37095 123.21428,298.31845 123.21428,300.85333 C 123.21428,303.38821 122.76799,305.90848 122.22254,306.45394 C 121.29059,307.38589 122.19424,311.69048 124.19308,315.84072 C 125.00943,317.53574 131.31126,319.12385 132.52061,317.93932 C 132.96409,317.50494 132.17659,315.78243 130.77061,314.11151 C 127.68477,310.4442 127.43902,305.87378 130.19362,303.38089 C 132.10345,301.65252 132.23526,301.66655 133.94679,303.78019 L 135.72062,305.97077 L 137.96745,303.87753 C 139.75006,302.21678 140.21428,300.6904 140.21428,296.48991 C 140.21428,290.68681 139.5724,289.3201 137.61133,290.94764 C 136.9035,291.53509 135.28709,291.86868 134.01932,291.68896 C 132.23435,291.43592 131.64358,290.62893 131.40092,288.1122 C 131.1463,285.47141 131.44529,284.8622 132.99593,284.8622 C 134.04554,284.8622 135.70919,285.75159 136.69294,286.83862 C 138.7964,289.16292 140.21428,288.63426 140.21428,285.52569 C 140.21428,284.30553 140.84428,282.40776 141.61429,281.30842 C 142.61051,279.88611 142.95733,276.63661 142.81677,270.04174 C 142.56778,258.35965 144.82193,218.92122 145.79419,217.94896 C 146.98698,216.75617 149.15437,221.89963 149.18248,225.98976 C 149.20213,228.85018 149.78709,231.0927 150.71428,231.8622 C 151.84148,232.7977 152.21428,235.31343 152.21428,241.98465 C 152.21428,250.58151 152.14156,250.8622 149.91428,250.8622 C 145.63888,250.8622 145.21428,252.39739 145.21428,267.8554 L 145.21428,282.44861 L 148.46428,283.4054 C 151.63509,284.33889 151.72154,284.51479 152.01232,290.62457 C 152.22311,295.05377 151.8572,297.53391 150.76232,299.09708 C 148.41414,302.44957 148.67595,312.06504 151.17703,314.32849 C 152.25655,315.30544 153.75678,315.868 154.51087,315.57863 C 155.26497,315.28926 157.56898,311.63821 159.63091,307.4652 C 161.69283,303.29218 163.86087,299.58062 164.44878,299.21727 C 167.60711,297.26531 169.57887,308.77315 167.0406,314.34404 C 166.03674,316.54728 166.18009,317.31369 168.03141,319.64109 C 171.58793,324.11219 173.39328,329.06844 172.84732,332.8622 C 171.6796,340.97628 170.27907,345.73078 167.25047,351.8622 C 163.14212,360.17961 158.73603,364.8622 155.01811,364.8622 C 153.476,364.8622 152.21428,365.3122 152.21428,365.8622 C 152.21428,366.41776 149.54761,366.8622 146.21428,366.8622 C 142.88095,366.8622 140.21428,366.41776 140.21428,365.8622 z M 157.21428,289.51719 C 157.21428,284.76251 159.91503,281.14965 162.67703,282.20953 C 164.92089,283.07058 164.716,290.09818 162.38554,292.20721 C 159.00272,295.26862 157.21428,294.3383 157.21428,289.51719 z"
+ style="fill:url(#radialGradient2751);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient2753);fill-opacity:1"
+ d="M 140.21428,365.8622 C 140.21428,365.3122 138.84193,364.8622 137.16462,364.8622 C 131.52784,364.8622 125.24903,359.84778 118.86683,350.24909 C 116.5113,346.70643 116.10827,345.02249 115.96084,338.10737 C 115.78811,330.00592 116.85516,326.8622 119.77771,326.8622 C 122.37604,326.8622 122.19467,324.93341 119.1757,320.46014 C 117.48839,317.96002 115.6818,315.65114 115.16107,315.32931 C 114.64034,315.00748 114.21428,310.93678 114.21428,306.28331 C 114.21428,298.96987 114.55502,297.28269 116.72683,293.84233 C 118.87253,290.44331 119.74854,289.8622 122.72683,289.8622 C 126.5263,289.8622 127.08387,291.1284 124.68248,294.30333 C 123.87497,295.37095 123.21428,298.31845 123.21428,300.85333 C 123.21428,303.38821 122.76799,305.90848 122.22254,306.45394 C 121.29059,307.38589 122.19424,311.69048 124.19308,315.84072 C 125.00943,317.53574 131.31126,319.12385 132.52061,317.93932 C 132.96409,317.50494 132.17659,315.78243 130.77061,314.11151 C 127.68477,310.4442 127.43902,305.87378 130.19362,303.38089 C 132.10345,301.65252 132.23526,301.66655 133.94679,303.78019 L 135.72062,305.97077 L 137.96745,303.87753 C 139.75006,302.21678 140.21428,300.6904 140.21428,296.48991 C 140.21428,290.68681 139.5724,289.3201 137.61133,290.94764 C 136.9035,291.53509 135.28709,291.86868 134.01932,291.68896 C 132.23435,291.43592 131.64358,290.62893 131.40092,288.1122 C 131.1463,285.47141 131.44529,284.8622 132.99593,284.8622 C 134.04554,284.8622 135.70919,285.75159 136.69294,286.83862 C 138.7964,289.16292 140.21428,288.63426 140.21428,285.52569 C 140.21428,284.30553 140.84428,282.40776 141.61429,281.30842 C 142.61051,279.88611 142.95733,276.63661 142.81677,270.04174 C 142.56778,258.35965 144.82193,218.92122 145.79419,217.94896 C 146.98698,216.75617 149.15437,221.89963 149.18248,225.98976 C 149.20213,228.85018 149.78709,231.0927 150.71428,231.8622 C 151.84148,232.7977 152.21428,235.31343 152.21428,241.98465 C 152.21428,250.58151 152.14156,250.8622 149.91428,250.8622 C 145.63888,250.8622 145.21428,252.39739 145.21428,267.8554 L 145.21428,282.44861 L 148.46428,283.4054 C 151.63509,284.33889 151.72154,284.51479 152.01232,290.62457 C 152.22311,295.05377 151.8572,297.53391 150.76232,299.09708 C 148.41414,302.44957 148.67595,312.06504 151.17703,314.32849 C 152.25655,315.30544 153.75678,315.868 154.51087,315.57863 C 155.26497,315.28926 157.56898,311.63821 159.63091,307.4652 C 161.69283,303.29218 163.86087,299.58062 164.44878,299.21727 C 167.60711,297.26531 169.57887,308.77315 167.0406,314.34404 C 166.03674,316.54728 166.18009,317.31369 168.03141,319.64109 C 171.58793,324.11219 173.39328,329.06844 172.84732,332.8622 C 171.6796,340.97628 170.27907,345.73078 167.25047,351.8622 C 163.14212,360.17961 158.73603,364.8622 155.01811,364.8622 C 153.476,364.8622 152.21428,365.3122 152.21428,365.8622 C 152.21428,366.41776 149.54761,366.8622 146.21428,366.8622 C 142.88095,366.8622 140.21428,366.41776 140.21428,365.8622 z M 157.21428,289.51719 C 157.21428,284.76251 159.91503,281.14965 162.67703,282.20953 C 164.92089,283.07058 164.716,290.09818 162.38554,292.20721 C 159.00272,295.26862 157.21428,294.3383 157.21428,289.51719 z"
+ id="path3891" />
+ <svg:path
+ id="path3895"
+ d="M 140.21428,365.8622 C 140.21428,365.3122 138.84193,364.8622 137.16462,364.8622 C 131.52784,364.8622 125.24903,359.84778 118.86683,350.24909 C 116.5113,346.70643 116.10827,345.02249 115.96084,338.10737 C 115.78811,330.00592 116.85516,326.8622 119.77771,326.8622 C 122.37604,326.8622 122.19467,324.93341 119.1757,320.46014 C 117.48839,317.96002 115.6818,315.65114 115.16107,315.32931 C 114.64034,315.00748 114.21428,310.93678 114.21428,306.28331 C 114.21428,298.96987 114.55502,297.28269 116.72683,293.84233 C 118.87253,290.44331 119.74854,289.8622 122.72683,289.8622 C 126.5263,289.8622 127.08387,291.1284 124.68248,294.30333 C 123.87497,295.37095 123.21428,298.31845 123.21428,300.85333 C 123.21428,303.38821 122.76799,305.90848 122.22254,306.45394 C 121.29059,307.38589 122.19424,311.69048 124.19308,315.84072 C 125.00943,317.53574 131.31126,319.12385 132.52061,317.93932 C 132.96409,317.50494 132.17659,315.78243 130.77061,314.11151 C 127.68477,310.4442 127.43902,305.87378 130.19362,303.38089 C 132.10345,301.65252 132.23526,301.66655 133.94679,303.78019 L 135.72062,305.97077 L 137.96745,303.87753 C 139.75006,302.21678 140.21428,300.6904 140.21428,296.48991 C 140.21428,290.68681 139.5724,289.3201 137.61133,290.94764 C 136.9035,291.53509 135.28709,291.86868 134.01932,291.68896 C 132.23435,291.43592 131.64358,290.62893 131.40092,288.1122 C 131.1463,285.47141 131.44529,284.8622 132.99593,284.8622 C 134.04554,284.8622 135.70919,285.75159 136.69294,286.83862 C 138.7964,289.16292 140.21428,288.63426 140.21428,285.52569 C 140.21428,284.30553 140.84428,282.40776 141.61429,281.30842 C 142.61051,279.88611 142.95733,276.63661 142.81677,270.04174 C 142.56778,258.35965 144.82193,218.92122 145.79419,217.94896 C 146.98698,216.75617 149.15437,221.89963 149.18248,225.98976 C 149.20213,228.85018 149.78709,231.0927 150.71428,231.8622 C 151.84148,232.7977 152.21428,235.31343 152.21428,241.98465 C 152.21428,250.58151 152.14156,250.8622 149.91428,250.8622 C 145.63888,250.8622 145.21428,252.39739 145.21428,267.8554 L 145.21428,282.44861 L 148.46428,283.4054 C 151.63509,284.33889 151.72154,284.51479 152.01232,290.62457 C 152.22311,295.05377 151.8572,297.53391 150.76232,299.09708 C 148.41414,302.44957 148.67595,312.06504 151.17703,314.32849 C 152.25655,315.30544 153.75678,315.868 154.51087,315.57863 C 155.26497,315.28926 157.56898,311.63821 159.63091,307.4652 C 161.69283,303.29218 163.86087,299.58062 164.44878,299.21727 C 167.60711,297.26531 169.57887,308.77315 167.0406,314.34404 C 166.03674,316.54728 166.18009,317.31369 168.03141,319.64109 C 171.58793,324.11219 173.39328,329.06844 172.84732,332.8622 C 171.6796,340.97628 170.27907,345.73078 167.25047,351.8622 C 163.14212,360.17961 158.73603,364.8622 155.01811,364.8622 C 153.476,364.8622 152.21428,365.3122 152.21428,365.8622 C 152.21428,366.41776 149.54761,366.8622 146.21428,366.8622 C 142.88095,366.8622 140.21428,366.41776 140.21428,365.8622 z M 157.21428,289.51719 C 157.21428,284.76251 159.91503,281.14965 162.67703,282.20953 C 164.92089,283.07058 164.716,290.09818 162.38554,292.20721 C 159.00272,295.26862 157.21428,294.3383 157.21428,289.51719 z"
+ style="fill:url(#radialGradient2755);fill-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssscccsssssssssssssssscccsssssssssssssccssssssssssssssssssssssssccsssccsssccssccssccssc"
+ id="path2954"
+ d="M 140.21428,365.8622 C 140.21428,365.3122 138.84193,364.8622 137.16462,364.8622 C 131.52784,364.8622 125.24903,359.84778 118.86683,350.24909 C 116.5113,346.70643 116.10827,345.02249 115.96084,338.10737 C 115.78811,330.00592 116.85516,326.8622 119.77771,326.8622 C 122.37604,326.8622 122.19467,324.93341 119.1757,320.46014 C 117.48839,317.96002 115.6818,315.65114 115.16107,315.32931 C 114.64034,315.00748 114.21428,310.93678 114.21428,306.28331 C 114.21428,298.96987 114.55502,297.28269 116.72683,293.84233 C 118.87253,290.44331 119.74854,289.8622 122.72683,289.8622 C 125.02235,289.8622 126.21428,290.33302 126.21428,291.23976 C 126.21428,293.22618 123.72814,294.99662 121.91547,294.30103 C 119.27508,293.28782 116.78325,298.42955 116.74668,304.96651 C 116.71076,311.38614 118.5449,314.76943 120.33802,311.59117 C 121.61152,309.33391 123.21428,310.28545 123.21428,313.29877 C 123.21428,316.11844 124.69735,317.38824 128.92551,318.18873 C 133.19483,318.99701 133.76883,317.67469 130.72097,314.05252 C 127.68426,310.44359 127.45761,305.85695 130.19362,303.38089 C 132.10345,301.65252 132.23526,301.66655 133.94679,303.78019 L 135.72062,305.97077 L 137.96745,303.87753 C 139.75006,302.21678 140.21428,300.6904 140.21428,296.48991 C 140.21428,290.68681 139.5724,289.3201 137.61133,290.94764 C 136.9035,291.53509 135.28709,291.86868 134.01932,291.68896 C 132.23435,291.43592 131.64358,290.62893 131.40092,288.1122 C 131.1463,285.47141 131.44529,284.8622 132.99593,284.8622 C 134.04554,284.8622 135.70919,285.75159 136.69294,286.83862 C 138.74621,289.10745 140.21428,288.64836 140.21428,285.73744 C 140.21428,284.63374 140.77678,282.7478 141.46428,281.54646 C 142.22794,280.21203 142.74757,275.27697 142.79983,268.8622 C 143.02915,240.71796 143.19323,237.68825 144.46428,238.12799 C 145.1867,238.37792 145.59069,239.82363 145.42147,241.55334 C 145.24783,243.32809 145.75178,245.0634 146.65963,245.81685 C 148.6098,247.43534 149.0592,246.3227 149.4369,238.9408 C 149.60244,235.70532 150.21828,233.35331 150.96428,233.10747 C 151.90277,232.79819 152.21428,234.95917 152.21428,241.77887 C 152.21428,250.59046 152.14547,250.8622 149.91428,250.8622 C 145.63888,250.8622 145.21428,252.39739 145.21428,267.8554 L 145.21428,282.44861 L 148.46428,283.4054 C 151.63509,284.33889 151.72154,284.51479 152.01232,290.62457 C 152.22311,295.05377 151.8572,297.53391 150.76232,299.09708 C 148.41414,302.44957 148.67595,312.06504 151.17703,314.32849 C 152.25655,315.30544 153.75678,315.868 154.51087,315.57863 C 155.26497,315.28926 157.56898,311.63821 159.63091,307.4652 C 161.69283,303.29218 163.86087,299.58062 164.44878,299.21727 C 167.60711,297.26531 169.57887,308.77315 167.0406,314.34404 C 166.03674,316.54728 166.18009,317.31369 168.03141,319.64109 C 171.58793,324.11219 173.39328,329.06844 172.84732,332.8622 C 171.6796,340.97628 170.27907,345.73078 167.25047,351.8622 C 163.14212,360.17961 158.73603,364.8622 155.01811,364.8622 C 153.476,364.8622 152.21428,365.3122 152.21428,365.8622 C 152.21428,366.41776 149.54761,366.8622 146.21428,366.8622 C 142.88095,366.8622 140.21428,366.41776 140.21428,365.8622 z M 155.21664,360.34633 C 159.04439,358.38933 160.83546,355.96376 164.81856,347.34288 C 167.30682,341.95735 168.63824,337.44964 168.9732,333.27673 C 169.55619,326.01398 168.27916,324.51268 164.8799,328.46456 C 161.57796,332.30328 159.80035,330.8988 160.59774,325.08123 C 160.93827,322.59674 161.57346,320.06858 162.00926,319.46309 C 163.37394,317.56703 166.47762,307.7922 165.89876,307.21335 C 164.91049,306.22508 163.21276,307.93008 161.78678,311.34293 C 158.79958,318.4923 152.57124,321.12409 148.71724,316.86547 C 147.2529,315.24739 146.93963,313.3218 147.06526,306.71118 C 147.15052,302.22452 147.69898,296.77589 148.28405,294.6031 C 149.61537,289.65895 148.89801,287.62611 145.96875,288.04206 C 143.96498,288.3266 143.65043,289.085 143.14012,294.8622 C 142.47893,302.34743 140.74555,308.17639 138.66813,309.9005 C 137.53065,310.84452 136.70023,310.7554 134.75447,309.48049 C 133.39607,308.59043 132.04381,307.8622 131.74946,307.8622 C 130.34545,307.8622 131.53943,310.69485 134.23025,313.74771 C 137.61531,317.5882 137.68278,317.83922 135.9625,320.19185 C 135.19943,321.23541 133.4566,321.85588 131.3894,321.97681 C 129.78474,322.07068 127.98462,321.86354 126.29561,321.31962 C 124.17263,320.63594 123.97948,320.77432 124.71571,322.45146 C 125.7831,324.88303 126.61522,332.8622 125.80141,332.8622 C 125.46356,332.8622 124.26584,332.2997 123.13981,331.6122 C 120.05884,329.73112 118.33282,332.62428 118.95173,338.63225 C 119.50795,344.03173 122.5366,349.82817 127.37847,354.75997 C 134.4335,361.94604 147.11157,364.49018 155.21664,360.34633 z M 151.8095,343.69468 C 149.66941,340.63928 149.8007,338.54646 152.27282,336.30923 C 153.80946,334.91858 154.74324,334.70609 155.95598,335.47107 C 159.13623,337.47711 159.82357,339.6847 158.17991,342.61375 C 156.19566,346.14974 153.81234,346.55414 151.8095,343.69468 z M 132.75795,333.51779 C 131.42095,332.54016 131.09663,331.46708 131.56914,329.58444 C 132.41595,326.21048 136.08211,324.96096 137.88808,327.43078 C 139.6276,329.80971 139.56225,331.37138 137.64285,333.29077 C 135.72544,335.20819 135.10889,335.23684 132.75795,333.51779 z M 120.54713,302.19851 C 121.49722,296.34381 123.21428,295.67665 123.21428,301.1622 C 123.21428,304.8409 122.8599,305.8622 121.58344,305.8622 C 120.26422,305.8622 120.0662,305.16213 120.54713,302.19851 z M 157.21428,289.51719 C 157.21428,284.76251 159.91503,281.14965 162.67703,282.20953 C 164.92089,283.07058 164.716,290.09818 162.38554,292.20721 C 159.00272,295.26862 157.21428,294.3383 157.21428,289.51719 z M 145.88095,225.19553 C 145.02809,224.34268 145.00431,217.8622 145.85404,217.8622 C 147.10485,217.8622 149.15117,221.39729 149.18248,223.6122 C 149.21258,225.74174 147.33,226.64458 145.88095,225.19553 z"
+ style="fill:#000000" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3899"
+ d="M 347.11368,324.42099 C 347.11368,325.64075 346.28486,327.57772 345.03025,327.57772 C 343.77564,327.57772 343.07307,325.51449 343.07307,324.29473 C 343.07307,323.07497 344.02818,322.02188 345.28279,322.02188 C 346.5374,322.02188 347.11368,323.20123 347.11368,324.42099 z"
+ style="fill:#d40000"
+ transform="translate(-190.41375,15.657364)" />
+ <svg:path
+ style="fill:#d40000"
+ d="M 137.25449,330.16623 C 137.25449,331.38599 136.55194,332.62848 135.29733,332.62848 C 134.04272,332.62848 133.21388,331.25973 133.21388,330.03997 C 133.21388,328.82021 134.16899,327.76712 135.4236,327.76712 C 136.67821,327.76712 137.25449,328.94647 137.25449,330.16623 z"
+ id="path3902"
+ sodipodi:nodetypes="csssc" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:g
+ style="display:inline"
+ transform="translate(-288.43966,-209.78558)"
+ id="g2731"
+ inkscape:label="Calque 1">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ transform="translate(175.31846,153.36201)"
+ id="lay3">
+ <svg:path
+ id="path2985"
+ d="M 127.22446,203.82619 C 123.0411,201.65867 121.90035,200.51233 121.37534,197.94841 C 121.01662,196.19659 121.0313,194.26464 121.40796,193.65519 C 121.78463,193.04573 120.92923,191.02156 119.50708,189.15703 C 116.02084,184.58633 115.97051,178.55225 119.38477,174.49463 C 121.49301,171.98912 121.6854,171.20975 120.71912,169.089 C 119.78465,167.03807 119.99569,165.74489 121.94354,161.58615 C 124.03231,157.12654 124.15748,156.17543 123.05638,153.13038 C 122.16549,150.66667 122.11254,149.14481 122.86854,147.73221 C 123.44759,146.65025 123.92136,144.46386 123.92136,142.87358 C 123.92136,139.61262 127.49372,135.63352 130.42136,135.63352 C 131.45046,135.63352 133.30064,136.58067 134.53288,137.73829 C 138.08616,141.07643 138.92136,139.39351 138.92136,128.8955 C 138.92136,114.70712 141.64316,109.35367 146.26198,114.45741 C 147.56407,115.8962 148.01423,119.11611 148.39404,129.70741 C 148.65884,137.09177 148.91384,143.92019 148.96071,144.88167 C 149.00758,145.84316 149.88648,147.07967 150.91381,147.62948 C 151.94114,148.17929 152.92561,149.59667 153.10152,150.7792 C 153.41535,152.88892 154.68353,153.95221 158.17136,155.02999 C 159.32423,155.38623 159.92136,156.58497 159.92136,158.54312 C 159.92136,160.17792 160.32037,161.76209 160.80805,162.06349 C 162.91526,163.36582 166.87889,154.79934 166.9063,148.88352 C 166.91782,146.39663 167.35457,145.63352 168.76637,145.63352 C 172.81935,145.63352 173.92136,148.65389 173.92136,159.76226 C 173.92136,165.52145 173.5073,170.66102 173.00123,171.18352 C 172.49515,171.70602 171.18923,174.69253 170.09916,177.82021 C 169.0091,180.94789 167.17316,184.52024 166.01929,185.75877 C 164.86543,186.9973 163.92136,188.80462 163.92136,189.77503 C 163.92136,192.81732 161.79726,196.36903 159.29636,197.50852 C 157.97391,198.11107 156.36092,199.76944 155.71194,201.19379 C 153.85673,205.26554 150.02731,206.64047 140.72102,206.57619 C 133.73158,206.5279 131.60095,206.09378 127.22446,203.82619 z M 114.92136,138.95452 C 114.92136,134.73107 115.46737,129.76554 116.13472,127.92002 C 117.6961,123.60209 121.24753,122.51525 124.18782,125.45554 C 126.11049,127.37821 126.16953,127.85153 124.94824,131.55208 C 124.21999,133.75869 122.56602,136.55817 121.27275,137.77313 C 119.97948,138.98809 118.92136,140.7669 118.92136,141.72605 C 118.92136,144.5431 117.81087,146.63352 116.31437,146.63352 C 115.24462,146.63352 114.92136,144.85151 114.92136,138.95452 z M 162.35575,136.52737 C 161.97975,135.91899 163.07449,134.01885 164.78849,132.30485 C 167.57053,129.52281 168.0672,129.35079 169.4179,130.70149 C 171.75451,133.03811 169.31689,137.61532 165.73037,137.62572 C 164.25033,137.63001 162.73175,137.13576 162.35575,136.52737 z M 128.92136,112.06397 C 128.92136,107.95704 129.1388,107.52677 131.06923,107.81397 C 132.25056,107.98972 133.698,108.9008 134.28576,109.83858 C 135.12652,111.18001 134.84455,112.08638 132.96358,114.08858 C 129.61864,117.6491 128.92136,117.29986 128.92136,112.06397 z M 155.58802,115.96686 C 154.21072,114.58955 154.97301,108.89675 156.7501,107.28851 C 159.99423,104.35261 161.92136,105.16875 161.92136,109.47853 C 161.92136,114.34535 157.99202,118.37085 155.58802,115.96686 z M 141.2939,88.877446 C 140.98589,87.918288 140.26307,85.875745 139.68764,84.338463 C 138.94047,82.342418 138.96727,80.828166 139.78137,79.04141 C 140.40836,77.665313 140.92136,74.605334 140.92136,72.241457 C 140.92136,67.992351 143.04727,64.633522 145.73668,64.633522 C 147.64888,64.633522 149.92136,71.514908 149.92136,77.305306 C 149.92136,83.694749 148.08059,87.784308 144.46264,89.43276 C 142.22627,90.451717 141.77399,90.372456 141.2939,88.877446 z"
+ style="fill:url(#radialGradient2768);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient2770);fill-opacity:1"
+ d="M 127.22446,203.82619 C 123.0411,201.65867 121.90035,200.51233 121.37534,197.94841 C 121.01662,196.19659 121.0313,194.26464 121.40796,193.65519 C 121.78463,193.04573 120.92923,191.02156 119.50708,189.15703 C 116.02084,184.58633 115.97051,178.55225 119.38477,174.49463 C 121.49301,171.98912 121.6854,171.20975 120.71912,169.089 C 119.78465,167.03807 119.99569,165.74489 121.94354,161.58615 C 124.03231,157.12654 124.15748,156.17543 123.05638,153.13038 C 122.16549,150.66667 122.11254,149.14481 122.86854,147.73221 C 123.44759,146.65025 123.92136,144.46386 123.92136,142.87358 C 123.92136,139.61262 127.49372,135.63352 130.42136,135.63352 C 131.45046,135.63352 133.30064,136.58067 134.53288,137.73829 C 138.08616,141.07643 138.92136,139.39351 138.92136,128.8955 C 138.92136,114.70712 141.64316,109.35367 146.26198,114.45741 C 147.56407,115.8962 148.01423,119.11611 148.39404,129.70741 C 148.65884,137.09177 148.91384,143.92019 148.96071,144.88167 C 149.00758,145.84316 149.88648,147.07967 150.91381,147.62948 C 151.94114,148.17929 152.92561,149.59667 153.10152,150.7792 C 153.41535,152.88892 154.68353,153.95221 158.17136,155.02999 C 159.32423,155.38623 159.92136,156.58497 159.92136,158.54312 C 159.92136,160.17792 160.32037,161.76209 160.80805,162.06349 C 162.91526,163.36582 166.87889,154.79934 166.9063,148.88352 C 166.91782,146.39663 167.35457,145.63352 168.76637,145.63352 C 172.81935,145.63352 173.92136,148.65389 173.92136,159.76226 C 173.92136,165.52145 173.5073,170.66102 173.00123,171.18352 C 172.49515,171.70602 171.18923,174.69253 170.09916,177.82021 C 169.0091,180.94789 167.17316,184.52024 166.01929,185.75877 C 164.86543,186.9973 163.92136,188.80462 163.92136,189.77503 C 163.92136,192.81732 161.79726,196.36903 159.29636,197.50852 C 157.97391,198.11107 156.36092,199.76944 155.71194,201.19379 C 153.85673,205.26554 150.02731,206.64047 140.72102,206.57619 C 133.73158,206.5279 131.60095,206.09378 127.22446,203.82619 z M 114.92136,138.95452 C 114.92136,134.73107 115.46737,129.76554 116.13472,127.92002 C 117.6961,123.60209 121.24753,122.51525 124.18782,125.45554 C 126.11049,127.37821 126.16953,127.85153 124.94824,131.55208 C 124.21999,133.75869 122.56602,136.55817 121.27275,137.77313 C 119.97948,138.98809 118.92136,140.7669 118.92136,141.72605 C 118.92136,144.5431 117.81087,146.63352 116.31437,146.63352 C 115.24462,146.63352 114.92136,144.85151 114.92136,138.95452 z M 162.35575,136.52737 C 161.97975,135.91899 163.07449,134.01885 164.78849,132.30485 C 167.57053,129.52281 168.0672,129.35079 169.4179,130.70149 C 171.75451,133.03811 169.31689,137.61532 165.73037,137.62572 C 164.25033,137.63001 162.73175,137.13576 162.35575,136.52737 z M 128.92136,112.06397 C 128.92136,107.95704 129.1388,107.52677 131.06923,107.81397 C 132.25056,107.98972 133.698,108.9008 134.28576,109.83858 C 135.12652,111.18001 134.84455,112.08638 132.96358,114.08858 C 129.61864,117.6491 128.92136,117.29986 128.92136,112.06397 z M 155.58802,115.96686 C 154.21072,114.58955 154.97301,108.89675 156.7501,107.28851 C 159.99423,104.35261 161.92136,105.16875 161.92136,109.47853 C 161.92136,114.34535 157.99202,118.37085 155.58802,115.96686 z M 141.2939,88.877446 C 140.98589,87.918288 140.26307,85.875745 139.68764,84.338463 C 138.94047,82.342418 138.96727,80.828166 139.78137,79.04141 C 140.40836,77.665313 140.92136,74.605334 140.92136,72.241457 C 140.92136,67.992351 143.04727,64.633522 145.73668,64.633522 C 147.64888,64.633522 149.92136,71.514908 149.92136,77.305306 C 149.92136,83.694749 148.08059,87.784308 144.46264,89.43276 C 142.22627,90.451717 141.77399,90.372456 141.2939,88.877446 z"
+ id="path3851" />
+ <svg:path
+ id="path3861"
+ d="M 127.22446,203.82619 C 123.0411,201.65867 121.90035,200.51233 121.37534,197.94841 C 121.01662,196.19659 121.0313,194.26464 121.40796,193.65519 C 121.78463,193.04573 120.92923,191.02156 119.50708,189.15703 C 116.02084,184.58633 115.97051,178.55225 119.38477,174.49463 C 121.49301,171.98912 121.6854,171.20975 120.71912,169.089 C 119.78465,167.03807 119.99569,165.74489 121.94354,161.58615 C 124.03231,157.12654 124.15748,156.17543 123.05638,153.13038 C 122.16549,150.66667 122.11254,149.14481 122.86854,147.73221 C 123.44759,146.65025 123.92136,144.46386 123.92136,142.87358 C 123.92136,139.61262 127.49372,135.63352 130.42136,135.63352 C 131.45046,135.63352 133.30064,136.58067 134.53288,137.73829 C 138.08616,141.07643 138.92136,139.39351 138.92136,128.8955 C 138.92136,114.70712 141.64316,109.35367 146.26198,114.45741 C 147.56407,115.8962 148.01423,119.11611 148.39404,129.70741 C 148.65884,137.09177 148.91384,143.92019 148.96071,144.88167 C 149.00758,145.84316 149.88648,147.07967 150.91381,147.62948 C 151.94114,148.17929 152.92561,149.59667 153.10152,150.7792 C 153.41535,152.88892 154.68353,153.95221 158.17136,155.02999 C 159.32423,155.38623 159.92136,156.58497 159.92136,158.54312 C 159.92136,160.17792 160.32037,161.76209 160.80805,162.06349 C 162.91526,163.36582 166.87889,154.79934 166.9063,148.88352 C 166.91782,146.39663 167.35457,145.63352 168.76637,145.63352 C 172.81935,145.63352 173.92136,148.65389 173.92136,159.76226 C 173.92136,165.52145 173.5073,170.66102 173.00123,171.18352 C 172.49515,171.70602 171.18923,174.69253 170.09916,177.82021 C 169.0091,180.94789 167.17316,184.52024 166.01929,185.75877 C 164.86543,186.9973 163.92136,188.80462 163.92136,189.77503 C 163.92136,192.81732 161.79726,196.36903 159.29636,197.50852 C 157.97391,198.11107 156.36092,199.76944 155.71194,201.19379 C 153.85673,205.26554 150.02731,206.64047 140.72102,206.57619 C 133.73158,206.5279 131.60095,206.09378 127.22446,203.82619 z M 114.92136,138.95452 C 114.92136,134.73107 115.46737,129.76554 116.13472,127.92002 C 117.6961,123.60209 121.24753,122.51525 124.18782,125.45554 C 126.11049,127.37821 126.16953,127.85153 124.94824,131.55208 C 124.21999,133.75869 122.56602,136.55817 121.27275,137.77313 C 119.97948,138.98809 118.92136,140.7669 118.92136,141.72605 C 118.92136,144.5431 117.81087,146.63352 116.31437,146.63352 C 115.24462,146.63352 114.92136,144.85151 114.92136,138.95452 z M 162.35575,136.52737 C 161.97975,135.91899 163.07449,134.01885 164.78849,132.30485 C 167.57053,129.52281 168.0672,129.35079 169.4179,130.70149 C 171.75451,133.03811 169.31689,137.61532 165.73037,137.62572 C 164.25033,137.63001 162.73175,137.13576 162.35575,136.52737 z M 128.92136,112.06397 C 128.92136,107.95704 129.1388,107.52677 131.06923,107.81397 C 132.25056,107.98972 133.698,108.9008 134.28576,109.83858 C 135.12652,111.18001 134.84455,112.08638 132.96358,114.08858 C 129.61864,117.6491 128.92136,117.29986 128.92136,112.06397 z M 155.58802,115.96686 C 154.21072,114.58955 154.97301,108.89675 156.7501,107.28851 C 159.99423,104.35261 161.92136,105.16875 161.92136,109.47853 C 161.92136,114.34535 157.99202,118.37085 155.58802,115.96686 z M 141.2939,88.877446 C 140.98589,87.918288 140.26307,85.875745 139.68764,84.338463 C 138.94047,82.342418 138.96727,80.828166 139.78137,79.04141 C 140.40836,77.665313 140.92136,74.605334 140.92136,72.241457 C 140.92136,67.992351 143.04727,64.633522 145.73668,64.633522 C 147.64888,64.633522 149.92136,71.514908 149.92136,77.305306 C 149.92136,83.694749 148.08059,87.784308 144.46264,89.43276 C 142.22627,90.451717 141.77399,90.372456 141.2939,88.877446 z"
+ style="fill:url(#radialGradient2772);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient2774);fill-opacity:1"
+ d="M 127.22446,203.82619 C 123.0411,201.65867 121.90035,200.51233 121.37534,197.94841 C 121.01662,196.19659 121.0313,194.26464 121.40796,193.65519 C 121.78463,193.04573 120.92923,191.02156 119.50708,189.15703 C 116.02084,184.58633 115.97051,178.55225 119.38477,174.49463 C 121.49301,171.98912 121.6854,171.20975 120.71912,169.089 C 119.78465,167.03807 119.99569,165.74489 121.94354,161.58615 C 124.03231,157.12654 124.15748,156.17543 123.05638,153.13038 C 122.16549,150.66667 122.11254,149.14481 122.86854,147.73221 C 123.44759,146.65025 123.92136,144.46386 123.92136,142.87358 C 123.92136,139.61262 127.49372,135.63352 130.42136,135.63352 C 131.45046,135.63352 133.30064,136.58067 134.53288,137.73829 C 138.08616,141.07643 138.92136,139.39351 138.92136,128.8955 C 138.92136,114.70712 141.64316,109.35367 146.26198,114.45741 C 147.56407,115.8962 148.01423,119.11611 148.39404,129.70741 C 148.65884,137.09177 148.91384,143.92019 148.96071,144.88167 C 149.00758,145.84316 149.88648,147.07967 150.91381,147.62948 C 151.94114,148.17929 152.92561,149.59667 153.10152,150.7792 C 153.41535,152.88892 154.68353,153.95221 158.17136,155.02999 C 159.32423,155.38623 159.92136,156.58497 159.92136,158.54312 C 159.92136,160.17792 160.32037,161.76209 160.80805,162.06349 C 162.91526,163.36582 166.87889,154.79934 166.9063,148.88352 C 166.91782,146.39663 167.35457,145.63352 168.76637,145.63352 C 172.81935,145.63352 173.92136,148.65389 173.92136,159.76226 C 173.92136,165.52145 173.5073,170.66102 173.00123,171.18352 C 172.49515,171.70602 171.18923,174.69253 170.09916,177.82021 C 169.0091,180.94789 167.17316,184.52024 166.01929,185.75877 C 164.86543,186.9973 163.92136,188.80462 163.92136,189.77503 C 163.92136,192.81732 161.79726,196.36903 159.29636,197.50852 C 157.97391,198.11107 156.36092,199.76944 155.71194,201.19379 C 153.85673,205.26554 150.02731,206.64047 140.72102,206.57619 C 133.73158,206.5279 131.60095,206.09378 127.22446,203.82619 z M 114.92136,138.95452 C 114.92136,134.73107 115.46737,129.76554 116.13472,127.92002 C 117.6961,123.60209 121.24753,122.51525 124.18782,125.45554 C 126.11049,127.37821 126.16953,127.85153 124.94824,131.55208 C 124.21999,133.75869 122.56602,136.55817 121.27275,137.77313 C 119.97948,138.98809 118.92136,140.7669 118.92136,141.72605 C 118.92136,144.5431 117.81087,146.63352 116.31437,146.63352 C 115.24462,146.63352 114.92136,144.85151 114.92136,138.95452 z M 162.35575,136.52737 C 161.97975,135.91899 163.07449,134.01885 164.78849,132.30485 C 167.57053,129.52281 168.0672,129.35079 169.4179,130.70149 C 171.75451,133.03811 169.31689,137.61532 165.73037,137.62572 C 164.25033,137.63001 162.73175,137.13576 162.35575,136.52737 z M 128.92136,112.06397 C 128.92136,107.95704 129.1388,107.52677 131.06923,107.81397 C 132.25056,107.98972 133.698,108.9008 134.28576,109.83858 C 135.12652,111.18001 134.84455,112.08638 132.96358,114.08858 C 129.61864,117.6491 128.92136,117.29986 128.92136,112.06397 z M 155.58802,115.96686 C 154.21072,114.58955 154.97301,108.89675 156.7501,107.28851 C 159.99423,104.35261 161.92136,105.16875 161.92136,109.47853 C 161.92136,114.34535 157.99202,118.37085 155.58802,115.96686 z M 141.2939,88.877446 C 140.98589,87.918288 140.26307,85.875745 139.68764,84.338463 C 138.94047,82.342418 138.96727,80.828166 139.78137,79.04141 C 140.40836,77.665313 140.92136,74.605334 140.92136,72.241457 C 140.92136,67.992351 143.04727,64.633522 145.73668,64.633522 C 147.64888,64.633522 149.92136,71.514908 149.92136,77.305306 C 149.92136,83.694749 148.08059,87.784308 144.46264,89.43276 C 142.22627,90.451717 141.77399,90.372456 141.2939,88.877446 z"
+ id="path3873" />
+ <svg:path
+ id="path2983"
+ d="M 127.22446,203.82619 C 123.0411,201.65867 121.90035,200.51233 121.37534,197.94841 C 121.01662,196.19659 121.0313,194.26464 121.40796,193.65519 C 121.78463,193.04573 120.92923,191.02156 119.50708,189.15703 C 116.02084,184.58633 115.97051,178.55225 119.38477,174.49463 C 121.49301,171.98912 121.6854,171.20975 120.71912,169.089 C 119.78465,167.03807 119.99569,165.74489 121.94354,161.58615 C 124.03231,157.12654 124.15748,156.17543 123.05638,153.13038 C 122.16549,150.66667 122.11254,149.14481 122.86854,147.73221 C 123.44759,146.65025 123.92136,144.46386 123.92136,142.87358 C 123.92136,137.41735 130.91416,133.51007 134.00781,137.2377 C 134.74006,138.11999 136.29327,139.20462 137.45941,139.64799 C 139.30136,140.3483 139.50364,141.0098 139.0005,144.68786 C 137.90992,152.6604 131.92136,152.0797 131.92136,144.00141 C 131.92136,140.06574 130.30951,138.81679 128.09206,141.03424 C 126.0145,143.11181 125.88393,152.74132 127.86858,157.51712 C 129.21992,160.76895 129.16961,160.97725 126.5767,162.86605 C 124.1169,164.65789 123.93297,165.242 124.4933,169.48246 C 125.04366,173.64757 124.78469,174.53969 122.01462,178.02102 C 120.31332,180.15915 118.92136,182.21246 118.92136,182.58393 C 118.92136,182.95541 120.31073,184.58103 122.00886,186.19643 C 124.70581,188.762 125.03077,189.63249 124.57789,193.07826 C 124.29274,195.24786 124.49459,197.83611 125.02646,198.82991 C 126.61826,201.80422 132.5708,203.63352 140.65741,203.63352 L 148.14921,203.63352 L 154.65797,197.15669 C 159.52519,192.31335 161.03428,190.17334 160.64154,188.67151 C 160.302,187.3731 161.17805,185.33232 163.1198,182.89834 C 169.79643,174.52918 173.07847,163.61501 171.48031,155.09608 C 170.92648,152.14392 170.47863,151.63926 168.86666,152.15088 C 167.18774,152.68375 166.92136,152.27979 166.92136,149.20091 C 166.92136,146.40008 167.31781,145.63352 168.76637,145.63352 C 172.827,145.63352 173.92136,148.6494 173.92136,159.83982 C 173.92136,167.99659 173.58122,170.67092 172.42136,171.63352 C 171.59636,172.31821 170.92136,173.66835 170.92136,174.63384 C 170.92136,177.22083 168.09619,183.52949 165.86534,185.92402 C 164.79615,187.07166 163.92136,188.80462 163.92136,189.77503 C 163.92136,192.81732 161.79726,196.36903 159.29636,197.50852 C 157.97391,198.11107 156.36092,199.76944 155.71194,201.19379 C 153.85673,205.26554 150.02731,206.64047 140.72102,206.57619 C 133.73158,206.5279 131.60095,206.09378 127.22446,203.82619 z M 135.00361,195.23262 C 132.02653,191.64547 135.97051,187.42362 140.4093,189.44607 C 142.48414,190.39143 142.9847,191.24 142.73696,193.39197 C 142.47826,195.63922 141.86509,196.1878 139.33618,196.43459 C 137.49354,196.6144 135.74862,196.13032 135.00361,195.23262 z M 135.67136,175.55342 C 131.95983,173.39166 134.71434,165.63352 139.19339,165.63352 C 140.92717,165.63352 143.92136,169.25755 143.92136,171.35603 C 143.92136,173.01121 140.28811,176.64244 138.67136,176.60311 C 137.98386,176.58639 136.63386,176.11403 135.67136,175.55342 z M 159.12136,167.43352 C 158.46136,166.77352 157.92136,165.00566 157.92136,163.50495 C 157.92136,160.76588 155.68652,157.63352 153.73228,157.63352 C 153.15686,157.63352 150.87422,155.82168 148.65975,153.60721 L 144.63343,149.58089 L 145.17456,139.76063 C 145.85001,127.50253 145.05268,116.42327 143.5315,116.92964 C 142.92092,117.13288 141.96202,121.39624 141.4006,126.40377 C 140.83919,131.41129 140.05169,135.83652 139.6506,136.23761 C 138.42359,137.46463 138.84139,119.49665 140.12224,115.95452 C 141.46945,112.22888 143.74339,111.67441 146.26198,114.45741 C 147.56407,115.8962 148.01423,119.11611 148.39404,129.70741 C 148.65884,137.09177 148.91384,143.92019 148.96071,144.88167 C 149.00758,145.84316 149.88648,147.07967 150.91381,147.62948 C 151.94114,148.17929 152.92561,149.59667 153.10152,150.7792 C 153.41535,152.88892 154.68353,153.95221 158.17136,155.02999 C 159.30492,155.38027 159.92136,156.57984 159.92136,158.43547 C 159.92136,160.01106 160.22234,161.60117 160.5902,161.96904 C 161.58228,162.96111 164.92136,159.59359 164.92136,157.60098 C 164.92136,156.65357 165.66999,155.26081 166.58499,154.50597 C 168.10782,153.24967 168.18852,153.51153 167.53855,157.60001 C 166.88459,161.71359 162.82797,168.63352 161.07047,168.63352 C 160.65846,168.63352 159.78136,168.09352 159.12136,167.43352 z M 147.00263,165.23145 C 144.96216,162.77283 146.04223,159.13352 148.81237,159.13352 C 151.92597,159.13352 153.82227,161.98066 152.30906,164.38352 C 150.84943,166.7013 148.53008,167.07192 147.00263,165.23145 z M 114.92136,138.95452 C 114.92136,129.65028 116.46557,124.78602 119.67501,123.9805 C 123.66297,122.97959 128.17058,129.12539 124.92136,131.13352 C 124.37136,131.47344 123.92136,132.54656 123.92136,133.51823 C 123.92136,134.48989 122.79636,136.34178 121.42136,137.63352 C 120.04636,138.92527 118.92136,140.7669 118.92136,141.72605 C 118.92136,144.5431 117.81087,146.63352 116.31437,146.63352 C 115.24462,146.63352 114.92136,144.85151 114.92136,138.95452 z M 122.91639,129.3102 C 122.9239,126.55206 119.67446,127.66167 118.09529,130.95649 C 117.35758,132.49568 117.05131,134.51517 117.41469,135.44427 C 117.97693,136.88179 118.43572,136.68647 120.4934,134.13352 C 121.82331,132.48352 122.91366,130.31303 122.91639,129.3102 z M 162.37208,136.55379 C 162.00506,135.95995 163.12526,134.08527 164.86142,132.38786 C 167.62536,129.6856 168.19925,129.48285 169.47449,130.75809 C 171.75832,133.04191 169.26489,137.61547 165.73037,137.62572 C 164.25033,137.63001 162.7391,137.14765 162.37208,136.55379 z M 128.92136,112.06397 C 128.92136,107.95704 129.1388,107.52677 131.06923,107.81397 C 132.25056,107.98972 133.698,108.9008 134.28576,109.83858 C 135.12652,111.18001 134.84455,112.08638 132.96358,114.08858 C 129.61864,117.6491 128.92136,117.29986 128.92136,112.06397 z M 155.58802,115.96686 C 154.21072,114.58955 154.97301,108.89675 156.7501,107.28851 C 159.99423,104.35261 161.92136,105.16875 161.92136,109.47853 C 161.92136,114.34535 157.99202,118.37085 155.58802,115.96686 z M 141.6552,89.879855 C 141.44638,89.469372 140.66936,87.207509 139.92848,84.853492 C 138.3267,79.764156 139.64139,77.210697 142.4285,79.997808 C 144.66893,82.238243 145.77292,82.053418 147.06304,79.22191 C 148.53301,75.995667 146.96271,69.265167 144.63545,68.816977 C 143.47471,68.59344 142.92136,69.137148 142.92136,70.501181 C 142.92136,71.60905 142.47136,72.793603 141.92136,73.133522 C 140.02585,74.305011 140.90268,67.960395 142.88411,66.167228 C 145.22452,64.04919 147.92136,64.785815 147.92136,67.54312 C 147.92136,68.627922 148.37136,69.793603 148.92136,70.133522 C 150.31665,70.995863 150.1743,81.984264 148.72667,85.161464 C 147.51902,87.811968 142.3558,91.257091 141.6552,89.879855 z"
+ style="fill:#000000" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3917"
+ d="M 453.97322,318.21039 C 453.97322,319.46717 452.09572,320.75503 450.93751,320.75503 C 449.77929,320.75503 448.61607,319.64574 448.61607,318.38896 C 448.61607,317.13217 450.22572,314.95146 451.38394,314.95146 C 452.54215,314.95146 453.97322,316.9536 453.97322,318.21039 z"
+ style="fill:#d40000"
+ transform="translate(-312.48377,-146.87567)" />
+ <svg:path
+ style="fill:#d40000"
+ d="M 140.92441,192.93439 C 140.92441,194.19117 139.62727,194.89867 138.46906,194.89867 C 137.31084,194.89867 135.87976,194.23581 135.87976,192.97903 C 135.87976,191.72224 137.22155,190.6576 138.37977,190.6576 C 139.53798,190.6576 140.92441,191.6776 140.92441,192.93439 z"
+ id="path3920"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3924"
+ d="M 463.21427,309.65012 C 463.21427,310.40788 462.62427,311.02288 461.89731,311.02288 C 461.17034,311.02288 460.40177,310.47484 460.40177,309.71708 C 460.40177,308.95931 460.88016,308.14342 461.60713,308.14342 C 462.33409,308.14342 463.21427,308.89235 463.21427,309.65012 z"
+ style="fill:#d40000"
+ transform="translate(-312.48377,-146.87567)" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/comets/comet0.png b/data/images/comets/comet0.png
new file mode 100644
index 0000000..da0397e
Binary files /dev/null and b/data/images/comets/comet0.png differ
diff --git a/data/images/comets/comet1.png b/data/images/comets/comet1.png
new file mode 100644
index 0000000..eff869d
Binary files /dev/null and b/data/images/comets/comet1.png differ
diff --git a/data/images/comets/comet2.png b/data/images/comets/comet2.png
new file mode 100644
index 0000000..6ca1f3f
Binary files /dev/null and b/data/images/comets/comet2.png differ
diff --git a/data/images/comets/cometex.svg b/data/images/comets/cometex.svg
new file mode 100644
index 0000000..5407473
--- /dev/null
+++ b/data/images/comets/cometex.svg
@@ -0,0 +1,701 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="58.729076"
+ height="149.08838"
+ id="svg2760"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="cometex.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>4 frames</desc>
+ <svg:defs
+ id="defs2762">
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ id="stop3855"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3857"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2768" />
+ <inkscape:perspective
+ id="perspective2777"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2798"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2827"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2846"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2975"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3813"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3835"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2572"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2570"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2568"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2566"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2564"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2562"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2560"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2558"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2556"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2554"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2552" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2550" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2548" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2546" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2544" />
+ <inkscape:perspective
+ id="perspective2542"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ id="stop2538"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2540"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2532" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2534" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2528"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2526"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2524"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2729"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2727"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2725"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2723"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2721"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2719"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2717"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2715"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2713"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2711"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2709" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2707" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2705" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2703" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2701" />
+ <inkscape:perspective
+ id="perspective2699"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ id="stop2695"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2697"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2689" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2691" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2685"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2683"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2681"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2702" />
+ <inkscape:perspective
+ id="perspective10"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2547"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3414"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3479"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.3696767"
+ inkscape:cx="0.31911362"
+ inkscape:cy="63.332488"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2760"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata2765">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(-277.13377,-210.75898)"
+ style="display:inline">
+ <svg:g
+ id="layer1"
+ inkscape:label="Layer 1"
+ transform="matrix(0.1312419,0,0,0.1312419,272.85666,237.40004)">
+ <svg:path
+ style="fill:#07b5c3"
+ d="M 232.32264,927.30795 C 232.32264,924.18308 226.41108,921.62636 219.18585,921.62636 C 200.59149,921.62636 158.46205,900.17589 158.46205,890.70844 C 158.46205,886.3489 167.146,877.41507 177.75972,870.85545 C 188.37343,864.29578 201.21594,852.58206 206.29861,844.82494 C 216.71657,828.92514 229.9437,827.13442 246.19212,839.42408 C 263.8468,852.77745 296.407,850.01591 311.56634,833.87954 C 322.06301,822.70631 323.89242,816.15862 320.92978,800.36643 C 318.90466,789.57165 312.20152,774.32433 306.03391,766.48346 C 286.51988,741.67539 290.8957,734.13411 324.80458,734.13411 C 365.93194,734.13411 397.33044,711.9785 368.96274,702.97495 C 344.86411,695.32634 322.02439,632.62048 334.70615,608.92439 C 340.0918,598.86122 344.44572,597.70564 365.23137,600.82264 L 389.47498,604.4582 L 410.33704,561.67489 C 433.95728,513.23516 441.0195,506.37778 451.92553,521.29265 C 460.8253,533.46382 462.25349,578.41214 453.9044,583.57216 C 442.74502,590.46903 447.86547,622.34848 462.60345,637.73161 C 481.26029,657.20514 476.68464,668.50279 443.25841,685.49624 C 417.68609,698.49684 416.95319,699.60594 416.20209,726.43926 C 415.00537,769.19215 405.99583,801.15134 380.98671,851.35739 C 356.70928,900.09464 336.16472,921.62636 313.93939,921.62636 C 306.54863,921.62636 300.50164,924.18308 300.50164,927.30795 C 300.50164,930.46441 285.35075,932.98953 266.41214,932.98953 C 247.47353,932.98953 232.32264,930.46441 232.32264,927.30795 z M 53.71861,914.74295 C 48.83008,907.76364 44.83038,898.78708 44.83038,894.79503 C 44.83038,890.80304 42.27367,887.53686 39.1488,887.53686 C 22.91686,887.53686 37.84184,876.58516 72.54703,863.02981 C 120.29315,844.38086 121.86992,844.34609 133.23511,861.69157 C 144.96937,879.60026 139.87776,895.31313 116.8865,912.14386 C 92.33913,930.11374 65.265,931.22773 53.71861,914.74295 z M 107.67352,825.45028 C 96.10199,818.01968 90.64835,759.7818 99.16214,734.55972 C 103.26716,722.39858 112.14833,711.19398 121.29546,706.63599 C 135.66039,699.47805 136.01174,698.40355 127.17899,688.6435 C 119.56036,680.22498 119.03783,675.92311 124.41377,665.87807 C 129.82326,655.77037 134.86962,653.93924 151.85414,655.9211 C 163.30067,657.25673 176.34924,659.42158 180.85096,660.73192 C 194.99427,664.84863 193.60024,646.01962 178.56023,629.79118 C 162.23664,612.17773 160.15661,593.74435 172.66601,577.5561 C 180.73663,567.11203 181.59806,567.05446 188.91672,576.47018 C 193.1673,581.9387 201.54646,586.41295 207.53706,586.41295 C 213.52767,586.41295 225.1595,594.08309 233.38558,603.4577 C 242.17188,613.47073 253.94457,620.50245 261.92238,620.50245 C 269.39155,620.50245 278.57073,623.5705 282.32058,627.32035 C 292.06897,637.06875 290.74881,683.85398 280.30457,698.76524 C 271.92097,710.73451 270.60325,710.92882 254.45349,702.57746 C 220.45617,684.99677 198.23314,710.85701 198.23314,767.99931 L 198.23314,802.95207 L 174.08641,813.41964 C 141.71216,827.45389 117.59667,831.82235 107.67352,825.45028 z M 77.65908,531.01751 C 64.37583,516.94678 62.92052,511.03186 63.02343,471.53265 C 63.10259,441.15187 65.56289,425.65941 71.02879,421.12311 C 75.36889,417.52115 78.91988,411.2347 78.91988,407.15322 C 78.91988,395.22364 95.63509,381.87595 110.57442,381.87595 C 126.34472,381.87595 129.08543,395.01948 116.03618,408.06873 C 110.67155,413.43335 108.8631,422.22153 110.96307,432.72141 C 112.75787,441.69539 111.23885,458.0899 107.58748,469.15366 C 102.58695,484.30542 102.5542,492.26965 107.45478,501.42646 C 112.38013,510.62956 112.2974,517.59944 107.11428,530.1126 C 98.66756,550.50479 96.12935,550.58277 77.65908,531.01751 z M 417.92104,468.99356 C 409.51006,460.58258 414.52131,426.94062 425.87665,415.58528 C 450.08117,391.38076 464.63636,429.19747 442.12886,457.81111 C 430.079,473.13004 424.5921,475.66462 417.92104,468.99356 z"
+ id="path2712" />
+ <svg:path
+ style="fill:#000600;fill-opacity:1"
+ d="M 232.32264,927.30795 C 232.32264,924.18308 226.41108,921.62636 219.18585,921.62636 C 200.59149,921.62636 158.46205,900.17589 158.46205,890.70844 C 158.46205,886.3489 167.146,877.41507 177.75972,870.85545 C 188.37343,864.29578 201.21594,852.58206 206.29861,844.82494 C 216.71657,828.92514 229.9437,827.13442 246.19212,839.42408 C 256.83848,847.47659 256.7294,847.76578 243.04547,847.76578 C 224.02439,847.76578 188.79314,883.14085 199.40954,891.57982 C 215.42809,904.31299 251.08838,911.49883 279.53345,907.72546 C 329.79962,901.05738 344.32561,887.13432 375.10667,816.11896 C 394.37639,771.66154 400.30063,745.49728 391.09719,745.49728 C 387.30536,745.49728 374.48412,748.40909 362.60555,751.96804 C 341.09627,758.41237 340.9919,758.59043 337.0274,795.61038 C 331.28415,849.24009 307.23047,869.76686 269.25293,853.44736 C 260.00801,849.47469 261.67685,848.49001 278.20533,848.16514 C 307.3278,847.59266 325.89298,826.82256 320.92978,800.36643 C 318.90466,789.57165 312.20152,774.32433 306.03391,766.48346 C 286.51988,741.67539 290.8957,734.13411 324.80458,734.13411 C 365.93194,734.13411 397.33044,711.9785 368.96274,702.97495 C 344.86411,695.32634 322.02439,632.62048 334.70615,608.92439 C 340.0918,598.86122 344.44572,597.70564 365.23137,600.82264 L 389.47498,604.4582 L 410.33704,561.67489 C 433.95728,513.23516 441.0195,506.37778 451.92553,521.29265 C 460.8253,533.46382 462.25349,578.41214 453.9044,583.57216 C 442.74502,590.46903 447.86547,622.34848 462.60345,637.73161 C 481.26029,657.20514 476.68464,668.50279 443.25841,685.49624 C 417.68609,698.49684 416.95319,699.60594 416.20209,726.43926 C 415.00537,769.19215 405.99583,801.15134 380.98671,851.35739 C 356.70928,900.09464 336.16472,921.62636 313.93939,921.62636 C 306.54863,921.62636 300.50164,924.18308 300.50164,927.30795 C 300.50164,930.46441 285.35075,932.98953 266.41214,932.98953 C 247.47353,932.98953 232.32264,930.46441 232.32264,927.30795 z M 401.47511,678.23887 C 411.1205,672.11725 443.58009,575.85373 440.97126,561.10744 C 439.37809,552.10212 436.29753,555.26195 427.30026,575.13026 C 413.03058,606.64138 402.55631,615.72985 375.48489,620.09015 C 356.64815,623.12412 354.28856,625.43065 352.65668,642.40516 C 349.71944,672.95761 377.57747,693.40603 401.47511,678.23887 z M 53.71861,914.74295 C 48.83008,907.76364 44.83038,898.78708 44.83038,894.79503 C 44.83038,890.80304 42.27367,887.53686 39.1488,887.53686 C 22.91686,887.53686 37.84184,876.58516 72.54703,863.02981 C 120.29315,844.38086 121.86992,844.34609 133.23511,861.69157 C 144.96937,879.60026 139.87776,895.31313 116.8865,912.14386 C 92.33913,930.11374 65.265,931.22773 53.71861,914.74295 z M 124.37255,872.21835 C 124.37255,862.20927 118.54403,862.84192 87.27656,876.24472 C 63.26714,886.53634 61.37495,888.66534 68.34038,897.55065 C 72.59667,902.98015 78.62023,909.23705 81.72607,911.45497 C 88.35525,916.18892 124.37255,883.05148 124.37255,872.21835 z M 107.67352,825.45028 C 96.10199,818.01968 90.64835,759.7818 99.16214,734.55972 C 103.26716,722.39858 112.14833,711.19398 121.29546,706.63599 C 135.66039,699.47805 136.01174,698.40355 127.17899,688.6435 C 119.56036,680.22498 119.03783,675.92311 124.41377,665.87807 C 129.82326,655.77037 134.86962,653.93924 151.85414,655.9211 C 163.30067,657.25673 176.34924,659.42158 180.85096,660.73192 C 194.99427,664.84863 193.60024,646.01962 178.56023,629.79118 C 162.23664,612.17773 160.15661,593.74435 172.66601,577.5561 C 180.73663,567.11203 181.59806,567.05446 188.91672,576.47018 C 193.1673,581.9387 201.54646,586.41295 207.53706,586.41295 C 213.52767,586.41295 225.1595,594.08309 233.38558,603.4577 C 242.17188,613.47073 253.94457,620.50245 261.92238,620.50245 C 269.39155,620.50245 278.57073,623.5705 282.32058,627.32035 C 292.06897,637.06875 290.74881,683.85398 280.30457,698.76524 C 271.92097,710.73451 270.60325,710.92882 254.45349,702.57746 C 220.45617,684.99677 198.23314,710.85701 198.23314,767.99931 L 198.23314,802.95207 L 174.08641,813.41964 C 141.71216,827.45389 117.59667,831.82235 107.67352,825.45028 z M 161.48533,799.76225 L 181.18839,791.52975 L 181.18839,753.33656 C 181.18839,713.49508 190.17244,694.45576 209.05649,694.27747 C 214.04069,694.23042 228.34553,690.65097 240.84502,686.32314 C 258.72494,680.13237 263.96228,675.22593 265.40456,663.31511 C 268.15905,640.56778 252.8636,621.64913 228.10444,617.17933 C 216.36253,615.05955 202.28127,611.01505 196.81274,608.19154 C 181.62122,600.34787 184.19018,616.44586 201.39246,636.88961 C 213.11001,650.81513 214.75723,656.31182 209.92087,665.34866 C 201.66312,680.77842 183.54892,685.35619 163.54262,677.06932 C 141.61865,667.9881 139.4356,671.18768 150.1156,696.7485 C 154.9817,708.39472 157.39968,722.84924 155.48889,728.86956 C 151.71026,740.77503 144.13766,743.13221 138.57651,734.13411 C 133.40208,725.76168 114.69579,727.22599 111.22325,736.27528 C 108.34519,743.77536 111.5645,786.08759 116.13965,800.89272 C 119.05609,810.33028 137.27975,809.87598 161.48533,799.76225 z M 77.65908,531.01751 C 64.37583,516.94678 62.92052,511.03186 63.02343,471.53265 C 63.10259,441.15187 65.56289,425.65941 71.02879,421.12311 C 75.36889,417.52115 78.91988,411.2347 78.91988,407.15322 C 78.91988,395.22364 95.63509,381.87595 110.57442,381.87595 C 126.34472,381.87595 129.08543,395.01948 116.03618,408.06873 C 110.67155,413.43335 108.8631,422.22153 110.96307,432.72141 C 112.75787,441.69539 111.23885,458.0899 107.58748,469.15366 C 102.58695,484.30542 102.5542,492.26965 107.45478,501.42646 C 112.38013,510.62956 112.2974,517.59944 107.11428,530.1126 C 98.66756,550.50479 96.12935,550.58277 77.65908,531.01751 z M 89.64943,494.08722 C 89.37095,487.05626 92.46647,466.68661 96.52836,448.82133 C 104.4812,413.84264 100.81857,401.63455 87.64778,419.221 C 76.17773,434.53652 71.26617,472.63557 78.36258,491.24643 C 85.58406,510.18529 90.33441,511.38091 89.64943,494.08722 z M 417.92104,468.99356 C 409.51006,460.58258 414.52131,426.94062 425.87665,415.58528 C 450.08117,391.38076 464.63636,429.19747 442.12886,457.81111 C 430.079,473.13004 424.5921,475.66462 417.92104,468.99356 z"
+ id="path2710" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:g
+ style="display:inline"
+ id="g3363"
+ transform="matrix(0.7029138,0,0,0.7029138,-234.19554,-86.337667)">
+ <svg:path
+ style="fill:#00d6d3"
+ d="M 369.77999,334.2432 C 366.47999,333.18005 362.94249,331.47498 361.91888,330.45416 C 360.1047,328.64493 360.21383,328.44206 366.24643,322.40946 L 372.43509,316.2208 L 376.45901,317.83085 C 379.55436,319.06937 382.19026,319.2862 387.88146,318.77047 C 391.95065,318.40173 395.27429,317.82461 395.26732,317.48797 C 395.26036,317.15133 393.91036,314.22499 392.26732,310.98498 C 387.87923,302.3318 388.08335,301.70087 395.52999,300.90059 C 398.96749,300.53117 403.71803,299.5161 406.08674,298.64487 C 409.8728,297.25235 410.57094,297.23828 411.86117,298.5285 C 413.13553,299.80287 413.14794,300.85911 411.95544,306.54808 C 411.20007,310.15162 409.49016,315.07456 408.15564,317.48794 C 406.14974,321.11545 405.21569,321.88223 402.76593,321.91244 C 400.37773,321.94189 399.37694,322.70788 397.60917,325.85935 C 396.40276,328.01005 393.84021,331.25611 391.9146,333.07281 C 388.67908,336.12534 387.93433,336.36833 382.09674,336.27605 C 378.62253,336.22113 373.07999,335.30635 369.77999,334.2432 z M 342.75789,330.94471 C 340.72577,328.91259 340.40978,328.0019 341.21485,326.49762 C 342.68705,323.74678 346.9893,322.95541 349.94465,324.89183 C 351.85071,326.14073 352.32869,327.20981 352.08876,329.68746 C 351.81902,332.47292 351.37133,332.91535 348.54665,333.18802 C 346.1465,333.4197 344.65482,332.84164 342.75789,330.94471 z M 345.94666,308.70923 C 345.57999,308.34257 345.27999,305.44821 345.27999,302.27733 C 345.27999,297.01288 345.54058,296.32653 348.27999,294.3759 C 351.96453,291.75227 352.05523,290.13086 348.66654,287.46532 C 344.5602,284.23527 346.12458,281.98556 352.0153,282.64953 C 358.20497,283.3472 362.74694,287.96533 361.94738,292.74815 C 359.77657,305.73346 357.24504,309.3759 350.39089,309.3759 C 348.31323,309.3759 346.31332,309.0759 345.94666,308.70923 z M 369.92658,281.32196 L 362.012,273.26802 L 362.55455,267.2846 C 363.46839,257.20663 364.14051,257.23044 374.85436,267.72036 C 384.02706,276.70133 384.27999,277.0713 384.27999,281.50745 C 384.27999,286.15588 382.21412,289.3759 379.23183,289.3759 C 378.46696,289.3759 374.2796,285.75163 369.92658,281.32196 z M 396.85517,284.85602 C 395.79652,284.05507 394.34076,281.70689 393.62014,279.63783 C 392.45475,276.29172 392.51346,275.59981 394.15122,273.37813 C 395.16393,272.00435 397.73815,270.39058 399.8717,269.79196 C 402.53814,269.04383 404.63795,267.47998 406.58827,264.78973 C 411.35649,258.21249 414.27999,257.84117 414.27999,263.81279 C 414.27999,265.63817 414.95499,268.74715 415.77999,270.72166 C 416.60499,272.69616 417.27999,274.71424 417.27999,275.20628 C 417.27999,276.9781 411.10296,283.90197 408.47058,285.0808 C 404.79567,286.72649 399.18392,286.6179 396.85517,284.85602 z M 345.98165,247.87646 C 344.97389,245.76316 344.27999,241.89796 344.27999,238.39774 C 344.27999,233.64562 344.7378,231.9552 346.6162,229.77142 C 347.90112,228.27762 349.40965,227.338 349.96849,227.68338 C 350.56961,228.0549 350.9428,232.91339 350.88228,239.58003 C 350.79764,248.90399 350.51278,250.90015 349.23165,251.14679 C 348.28292,251.32944 347.02432,250.06297 345.98165,247.87646 z M 408.27999,247.0679 C 408.27999,245.115 408.97987,243.03994 409.89461,242.28078 C 411.27948,241.13143 411.78127,241.27674 413.42121,243.30197 C 415.10096,245.37638 415.16422,245.91901 413.94199,247.76954 C 413.17683,248.92804 411.58986,250.0197 410.41539,250.19545 C 408.58604,250.4692 408.27999,250.02096 408.27999,247.0679 z"
+ id="path2585" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1"
+ d="M 369.66881,333.94746 C 366.30766,332.6924 363.04516,331.3488 362.41881,330.96169 C 360.36065,329.68968 361.22706,326.83838 364.20657,325.07834 C 365.81618,324.12752 368.10289,321.7805 369.28813,319.86274 C 370.47337,317.94498 371.5941,316.3759 371.77864,316.3759 C 371.96319,316.3759 374.22425,317.28038 376.80323,318.38586 C 380.7785,320.08986 382.10926,320.22969 385.54536,319.30444 C 387.77456,318.70418 391.10179,318.49509 392.93922,318.83979 C 394.77664,319.1845 396.27999,319.09391 396.27999,318.63849 C 396.27999,318.18307 394.66441,314.76795 392.68982,311.04934 C 390.71523,307.33072 389.35111,303.63295 389.65844,302.83206 C 390.02104,301.88714 391.72036,301.35268 394.4986,301.30975 C 396.85337,301.27337 401.25499,300.4275 404.27999,299.43004 C 410.68189,297.31908 413.80369,298.1426 412.91559,301.70807 C 412.61861,302.90037 412.08309,305.7165 411.72555,307.96612 C 411.36801,310.21574 409.86811,314.26574 408.39244,316.96612 C 406.0306,321.28815 405.35252,321.84931 402.7282,321.65376 C 400.13639,321.46064 399.4417,322.00712 397.40963,325.83759 C 396.12408,328.26088 393.556,331.62334 391.70278,333.30973 C 388.66669,336.07251 387.71223,336.36865 382.05664,336.30265 C 378.13389,336.25687 373.48814,335.37362 369.66881,333.94746 z M 386.87049,330.2759 C 387.8162,329.2309 389.63485,328.3759 390.91192,328.3759 C 392.31384,328.3759 393.91442,327.33727 394.95138,325.75467 C 396.59277,323.24959 396.58271,323.06955 394.72444,321.69181 C 393.39554,320.70656 391.51371,320.44311 388.77999,320.8596 C 382.39195,321.83283 382.02535,321.83592 376.95062,320.95927 C 372.24736,320.14679 372.01856,320.22528 368.18879,323.96496 C 366.02593,326.07693 364.4011,328.23922 364.57804,328.77006 C 365.06143,330.22023 373.03863,332.00127 379.4655,332.09393 C 383.85172,332.15717 385.54396,331.7417 386.87049,330.2759 z M 405.54552,313.6259 C 410.01644,303.49938 410.1432,298.5546 405.80911,303.34372 C 404.46614,304.82769 403.58361,305.07357 402.21986,304.34372 C 400.15121,303.23661 394.94085,303.04837 393.94448,304.04475 C 393.57661,304.41262 393.89073,305.42512 394.64252,306.29475 C 395.39432,307.16438 396.28161,309.6759 396.61429,311.8759 C 397.15549,315.45487 400.10407,319.3759 402.25421,319.3759 C 402.66817,319.3759 404.14926,316.7884 405.54552,313.6259 z M 343.52999,331.70148 C 340.40006,329.51815 340.54174,325.59929 343.77999,324.78654 C 347.04963,323.96592 351.21802,325.05083 351.93066,326.90794 C 352.24142,327.71778 352.21358,329.50437 351.86879,330.87814 C 351.38677,332.79864 350.61074,333.36378 348.51094,333.32345 C 347.00892,333.2946 344.76749,332.56471 343.52999,331.70148 z M 348.94416,327.94312 C 348.24156,326.11218 345.71348,325.86548 344.68623,327.5276 C 343.75379,329.03633 347.34617,331.70971 348.60903,330.44686 C 349.12412,329.93177 349.27493,328.80509 348.94416,327.94312 z M 346.47999,308.1759 C 345.81999,307.5159 345.27999,304.90009 345.27999,302.36299 C 345.27999,298.54291 345.79561,297.25609 348.27999,294.8759 C 351.9825,291.32867 352.01951,290.14673 348.52999,286.8914 C 346.20238,284.72001 346.01038,284.17295 347.27999,283.32974 C 349.28189,282.00018 355.18005,283.04648 358.27175,285.27963 C 361.42742,287.55898 363.08353,292.85959 361.45483,295.46755 C 360.80867,296.50222 360.27999,298.23369 360.27999,299.31528 C 360.27999,302.66277 358.01746,306.4603 355.13496,307.9509 C 351.77038,309.69079 348.09054,309.78645 346.47999,308.1759 z M 354.25878,305.88687 C 357.73864,304.08736 358.1325,302.82311 357.93413,294.08935 C 357.78013,287.30914 356.80955,285.42975 353.44209,285.39121 C 352.43357,285.37967 352.27104,286.36345 352.78192,289.38731 C 353.39555,293.01938 353.16745,293.65511 350.36981,296.10999 C 347.07608,299.0002 346.16374,303.85965 348.47999,306.1759 C 350.02985,307.72577 350.7748,307.68851 354.25878,305.88687 z M 371.35181,282.86299 C 364.12188,275.96681 361.78705,271.14871 362.70589,265.02146 C 363.8356,257.488 364.903,257.78776 375.02999,268.48257 C 384.60301,278.59235 385.40815,280.2784 383.30474,285.8108 C 381.6725,290.10391 377.9914,289.19609 371.35181,282.86299 z M 380.28138,279.34579 C 378.93258,274.46464 371.30194,266.3759 368.04602,266.3759 C 364.68484,266.3759 363.89648,268.76544 365.87916,272.94364 C 367.91701,277.23809 374.77998,283.505 376.65648,282.78492 C 377.43814,282.48497 378.399,282.75944 378.79171,283.39486 C 380.18614,285.6511 381.23553,282.79877 380.28138,279.34579 z M 396.85517,284.85646 C 395.79652,284.05527 394.34076,281.70689 393.62014,279.63783 C 392.45648,276.29669 392.51421,275.59876 394.13621,273.39823 C 395.14146,272.03443 397.49026,270.6081 399.36084,270.22553 C 401.73234,269.74051 404.14754,267.94751 407.35382,264.29172 C 409.88086,261.4104 412.41488,259.34123 412.98498,259.69357 C 413.55508,260.04591 414.30469,262.48108 414.65078,265.10505 C 414.99688,267.72902 415.5506,271.53198 415.88127,273.55607 C 416.41895,276.84727 416.07545,277.65678 412.63124,281.21506 C 409.43426,284.51794 407.93057,285.28895 403.77999,285.75352 C 400.23183,286.15066 398.22108,285.89018 396.85517,284.85646 z M 407.68331,281.1259 C 409.03102,279.03381 412.27999,267.97625 412.27999,265.48156 C 412.27999,263.31639 409.7385,264.42796 407.08484,267.75375 C 405.60251,269.61154 403.13003,271.4477 401.59044,271.83412 C 397.71844,272.80593 396.27999,274.21147 396.27999,277.0231 C 396.27999,278.63953 397.06605,279.72426 398.68285,280.33897 C 400.00442,280.84143 401.38098,281.73029 401.74187,282.31422 C 402.86868,284.13744 406.16845,283.47747 407.68331,281.1259 z M 347.5064,250.1259 C 345.94747,248.21258 344.29179,241.34792 344.28557,236.77192 C 344.28145,233.74493 344.95479,231.93982 346.85141,229.89334 C 348.26569,228.36731 349.78373,227.5141 350.22483,227.99732 C 351.21688,229.08409 350.31024,251.3759 349.27398,251.3759 C 348.86198,251.3759 348.06656,250.8134 347.5064,250.1259 z M 408.2953,247.6259 C 408.31582,243.94034 409.61779,242.10247 411.89982,242.53772 C 415.86913,243.2948 414.29514,250.3759 410.15754,250.3759 C 408.77226,250.3759 408.28401,249.65489 408.2953,247.6259 z"
+ id="path2581" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(-1.80016,-1.0663792)">
+ <svg:path
+ id="path3426"
+ d="M 28.456171,149.0296 C 28.456171,148.66303 27.593029,148.36311 26.538074,148.36311 C 23.66823,148.36311 19.791786,146.53904 19.79108,145.18829 C 19.790746,144.55171 20.662074,143.13109 21.727366,142.03136 C 22.792657,140.93165 24.604768,139.02175 25.754279,137.78717 C 27.641677,135.76008 27.954724,135.63858 28.983358,136.53382 C 30.621979,137.95997 31.949678,138.27421 33.33089,137.56281 C 34.150137,137.14086 34.871669,137.2155 35.56914,137.79434 C 36.420359,138.50079 36.742758,138.45114 37.432884,137.50734 C 38.43995,136.1301 39.652964,136.053 41.067168,137.27636 C 41.645896,137.77698 42.98034,138.39163 44.032608,138.64222 C 45.929724,139.09401 45.941947,139.07718 45.484975,136.64134 C 45.231513,135.29026 44.449644,133.40094 43.747487,132.44286 C 43.045337,131.48477 42.287061,129.76494 42.062431,128.62101 L 41.654021,126.54113 L 45.552452,126.6929 C 47.696592,126.77637 50.856461,126.39823 52.574389,125.8526 C 57.076482,124.42266 57.991311,124.97656 57.560646,128.87169 C 56.981332,134.11119 56.407443,136.58729 55.233612,138.91194 C 54.159869,141.03837 54.002789,141.10763 51.198541,140.6912 C 49.593739,140.45287 47.927235,140.12224 47.495202,139.95646 C 47.063171,139.79068 46.03503,141.00591 45.210451,142.65697 C 43.388491,146.30509 40.919119,148.36311 38.36377,148.36311 C 37.313487,148.36311 36.454157,148.66303 36.454157,149.0296 C 36.454157,149.39989 34.676831,149.6961 32.455164,149.6961 C 30.233503,149.6961 28.456171,149.39989 28.456171,149.0296 z M 5.4936061,128.86801 C 4.8658481,126.8547 4.6774929,121.64877 5.2202702,121.31331 C 5.5484481,121.1105 5.6482317,120.67155 5.4420141,120.33787 C 4.8856077,119.43759 6.3608212,117.03766 7.4706214,117.03766 C 8.2518088,117.03766 8.2916208,116.72817 7.6824302,115.39115 C 5.9289128,111.5426 10.660086,110.42078 14.792946,113.70516 C 16.17677,114.80489 17.560168,115.70466 17.867177,115.70466 C 18.783707,115.70466 17.653338,119.97344 16.513652,120.81617 C 15.612279,121.48269 15.580756,121.9159 16.295794,123.81025 C 17.058501,125.83089 17.003428,126.12189 15.667615,127.12949 C 12.68415,129.37992 6.0088836,130.52059 5.4936061,128.86801 z M 31.681732,120.24544 C 30.33887,119.88988 28.309015,118.57414 27.166696,117.31881 C 26.025257,116.06446 24.798699,115.03817 24.441015,115.03817 C 24.083332,115.03817 23.79068,114.12841 23.79068,113.01651 C 23.79068,111.9046 23.040868,109.51518 22.124432,107.70668 C 20.055153,103.62315 19.843606,98.471983 21.677038,96.812748 C 23.296611,95.347054 23.571428,95.411885 24.064377,97.375948 C 24.329217,98.431174 24.95292,99.042198 25.765195,99.042198 C 26.500171,99.042198 27.561909,99.930891 28.251869,101.1236 C 28.95248,102.33473 30.596999,103.69965 32.184978,104.38801 L 34.914038,105.57103 L 35.297728,111.13773 C 35.775254,118.06583 35.643321,120.55142 34.78791,120.74252 C 34.421335,120.82442 33.023554,120.60074 31.681732,120.24544 z M 47.543617,110.03943 C 47.332611,109.48956 46.550894,109.03968 45.806462,109.03968 C 44.701047,109.03968 44.473224,108.64262 44.563601,106.87355 C 44.624459,105.68218 44.45113,104.20576 44.178418,103.59259 C 43.442631,101.93825 46.03507,99.578751 48.036593,100.0811 C 49.391157,100.42106 49.882753,99.974981 51.697882,96.758751 C 53.876187,92.899005 54.167134,92.674261 55.716004,93.654925 C 56.419533,94.100366 56.552246,95.184409 56.255388,98.060715 C 55.961636,100.90692 56.124095,102.27625 56.895167,103.45305 C 58.337164,105.65381 57.659975,106.81302 53.971377,108.458 C 52.218252,109.23983 50.263083,110.14042 49.626551,110.45934 C 48.094565,111.22688 47.991298,111.20606 47.543617,110.03943 z M 52.917502,89.289919 C 52.085705,88.458121 52.421901,85.898861 53.478121,85.022276 C 54.888279,83.851948 55.946526,85.029035 55.668103,87.458196 C 55.459476,89.278426 53.926721,90.29914 52.917502,89.289919 z M 7.9280096,80.246928 C 6.8072141,79.126132 6.9302601,74.294453 8.1229618,72.591632 C 8.7546084,71.689831 9.5810602,71.292593 10.387084,71.503373 C 11.514262,71.798137 11.615824,72.295247 11.293747,75.941149 C 10.876736,80.661692 9.7650062,82.083925 7.9280096,80.246928 z"
+ style="fill:#15aebc" />
+ <svg:path
+ id="path3424"
+ d="M 28.456171,149.0296 C 28.456171,148.66303 27.481417,148.36199 26.29005,148.36061 C 23.74545,148.35769 19.791687,146.14698 19.791687,144.72712 C 19.791687,144.18284 20.68844,143.07452 21.784478,142.26419 C 22.880515,141.45385 23.937789,140.32016 24.13398,139.74486 C 24.33017,139.16957 25.238001,138.1562 26.151385,137.49294 C 27.75934,136.32529 27.864094,136.32792 29.450261,137.5756 C 31.341385,139.06316 36.360174,139.15998 38.068891,137.74188 C 38.942964,137.01647 39.120152,137.0302 39.120152,137.82338 C 39.120152,138.34806 38.745247,139.27221 38.287028,139.87704 C 37.563451,140.83214 36.803449,140.89321 32.506864,140.34152 C 29.78599,139.99216 27.514408,139.77956 27.458909,139.86909 C 27.40341,139.95863 26.691782,140.99695 25.87752,142.17649 L 24.39704,144.3211 L 26.841251,145.34236 C 28.185566,145.90405 30.928048,146.36361 32.935657,146.36361 C 36.132018,146.36361 36.818065,146.11501 38.453653,144.36412 C 39.480948,143.26439 40.616522,142.36462 40.977151,142.36462 C 41.33778,142.36462 42.124135,141.6148 42.724604,140.69837 C 43.32508,139.78194 44.409307,139.03212 45.134004,139.03212 C 46.800185,139.03212 46.77935,137.36642 45.079825,134.69988 C 43.530575,132.26913 42.605848,130.21035 42.026507,127.90208 C 41.626381,126.30784 41.723804,126.20309 43.187561,126.65378 C 45.616196,127.40156 49.113807,127.12673 52.535558,125.91924 C 56.878224,124.38679 58.009446,124.97741 57.554075,128.53946 C 56.59435,136.0467 54.765303,141.03162 52.970503,141.03162 C 51.453438,141.03162 51.477785,140.17182 53.116965,135.8591 C 54.968919,130.98655 54.876322,129.88664 52.616752,129.91739 C 51.608672,129.9311 50.259012,129.70601 49.617507,129.41718 C 48.602335,128.96011 48.435186,129.31167 48.3281,132.1292 C 48.260431,133.90965 48.172732,136.06001 48.133216,136.90778 C 48.093699,137.75554 47.739468,138.65532 47.34604,138.90727 C 46.952606,139.15924 46.003719,140.60233 45.237405,142.11416 C 43.52591,145.49067 40.230959,148.36311 38.06927,148.36311 C 37.18096,148.36311 36.454157,148.66303 36.454157,149.0296 C 36.454157,149.39989 34.676831,149.6961 32.455164,149.6961 C 30.233503,149.6961 28.456171,149.39989 28.456171,149.0296 z M 5.5276785,128.9568 C 4.8734296,126.90414 4.6624414,121.65808 5.2202702,121.31331 C 5.5484481,121.1105 5.6611292,120.69241 5.4706733,120.38424 C 4.9287842,119.50745 5.8413421,117.70415 6.8269349,117.70415 C 8.1705835,117.70415 8.6775273,116.43515 7.7704788,115.34221 C 5.9952258,113.20317 10.572515,111.05807 13.113859,112.83809 C 15.011446,114.16722 14.785092,115.03817 12.542071,115.03817 C 10.66358,115.03817 10.631344,115.09937 10.962505,118.03741 C 11.316564,121.17861 10.382746,122.02509 8.5667546,120.2091 C 7.4833654,119.12571 6.296874,120.77912 6.777194,122.7029 C 6.9602424,123.43605 7.1141046,124.71072 7.1191095,125.53552 C 7.1261681,126.69867 7.5119038,127.03515 8.8382742,127.03515 C 11.887451,127.03515 13.1267,125.9015 13.1267,123.11215 C 13.1267,118.93345 14.318972,116.37116 16.263395,116.37116 C 17.736004,116.37116 17.88412,116.58066 17.498291,118.11792 C 17.257165,119.07864 16.607555,120.31701 16.054707,120.86985 C 15.472007,121.45255 15.243577,122.32914 15.511214,122.95546 C 16.497969,125.2647 16.097017,126.61505 14.06856,127.81414 C 11.254003,129.47792 5.9211798,130.1914 5.5276785,128.9568 z M 30.715002,119.73191 C 28.285608,118.72485 28.203488,117.0564 30.543172,116.24078 C 32.611411,115.5198 32.615624,115.50831 32.180753,111.77894 C 31.680153,107.48592 29.998423,105.33238 26.099944,103.99215 L 23.64549,103.14836 L 24.059252,105.21715 C 24.286821,106.35499 24.919335,107.77914 25.464844,108.38193 C 27.090555,110.17832 26.568486,114.37166 24.719119,114.37166 C 24.117631,114.37166 23.787853,113.60887 23.782655,112.20555 C 23.778235,111.01418 23.028425,108.73413 22.116407,107.13877 C 21.063553,105.29707 20.465924,103.22885 20.47938,101.47353 C 20.510725,97.385839 23.156139,94.544217 23.983797,97.709197 C 24.190985,98.501484 24.892915,99.042198 25.714235,99.042198 C 26.655378,99.042198 27.529851,99.892451 28.456171,101.70819 C 29.310262,103.38234 30.279672,104.37419 31.061874,104.37419 C 31.746962,104.37419 32.935877,104.89905 33.703902,105.54056 C 34.924576,106.56014 35.122599,107.54574 35.277367,113.37192 L 35.454408,120.03691 L 33.788162,120.17601 C 32.871726,120.25251 31.488808,120.05266 30.715002,119.73191 z M 46.792533,108.66214 C 46.06359,108.11123 45.447739,107.29597 45.423978,106.85046 C 45.400211,106.40494 45.138336,105.21175 44.842031,104.1989 C 44.112222,101.70425 45.433389,100.13822 47.858578,100.62326 C 49.498116,100.95117 49.848015,100.65089 51.480784,97.514839 C 52.474833,95.605577 53.6144,93.835666 54.013153,93.581704 C 56.0261,92.299692 57.281697,96.907646 55.716384,99.832451 C 55.124199,100.93897 55.263058,101.5795 56.440315,103.17182 C 57.809237,105.02338 57.829646,105.21646 56.779203,106.37718 C 55.3063,108.00472 51.644882,109.71154 49.683403,109.68498 C 48.822367,109.67332 47.521476,109.21304 46.792533,108.66214 z M 50.930023,106.87355 C 51.283454,106.41534 52.067563,104.76575 52.672484,103.20781 C 53.744261,100.4475 53.470596,99.621321 51.978679,101.11324 C 51.572754,101.51916 50.238091,102.05514 49.012758,102.30429 C 47.330358,102.64638 46.728596,103.15007 46.554967,104.36152 C 46.194764,106.87476 49.475943,108.75872 50.930023,106.87355 z M 52.656388,87.954372 C 52.147436,86.628068 53.249959,84.71247 54.522265,84.71247 C 55.081058,84.71247 55.532344,85.573008 55.658225,86.87859 C 55.833795,88.699506 55.644582,89.044712 54.470938,89.044712 C 53.703057,89.044712 52.88651,88.554059 52.656388,87.954372 z M 7.5725437,79.935895 C 7.3281606,79.691512 7.1282106,78.238374 7.1282106,76.706699 C 7.1282106,73.949576 8.5686671,71.715743 10.346561,71.715743 C 11.17496,71.715743 11.456533,77.413489 10.722646,79.325969 C 10.314991,80.388297 8.3964216,80.759773 7.5725437,79.935895 z"
+ style="fill:#000000;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:path
+ id="path3489"
+ d="M 28.488917,144.36616 C 27.335002,144.10057 26.2887,143.35266 26.163806,142.70416 C 25.806349,140.848 28.782579,139.47688 33.732553,139.21729 C 37.452451,139.02221 38.322577,139.18202 38.501912,140.09332 C 39.133038,143.30032 33.781018,145.58419 28.488917,144.36616 z M 49.86992,135.46766 C 49.408524,134.30902 48.988986,132.27422 48.937619,130.94584 C 48.852681,128.74954 49.055765,128.48613 51.178369,128.03954 C 52.876997,127.68215 53.614963,127.81541 53.888787,128.52898 C 54.493138,130.1039 53.475653,134.17666 52.036257,135.94419 L 50.70882,137.57427 L 49.86992,135.46766 z M 4.012084,124.70377 C 3.3729083,123.9975 2.8499471,122.25954 2.8499471,120.84167 C 2.8499471,118.76846 3.1136888,118.26369 4.1969205,118.26369 C 6.4928824,118.26369 7.7768458,119.05784 8.8565261,121.1457 C 9.8136866,122.99666 9.7839125,123.26718 8.4794539,124.57163 C 6.7242623,126.32683 5.513337,126.36264 4.012084,124.70377 z M 9.1865337,116.71552 C 7.5858572,114.99739 7.6495167,113.81254 9.3603364,113.48065 C 10.69814,113.22113 13.382988,115.71048 13.382988,117.21039 C 13.382988,118.78254 10.831999,118.48171 9.1865337,116.71552 z M 27.556049,111.7301 C 25.753171,109.81102 22.293944,101.62894 22.882713,100.67629 C 23.58639,99.537718 27.336266,101.99989 29.547494,105.0524 C 32.061444,108.52281 32.533043,113.34827 30.358252,113.34827 C 29.653155,113.34827 28.392161,112.6201 27.556049,111.7301 z M 48.333922,102.42197 C 47.681189,101.76924 52.893295,92.984401 53.933306,92.984401 C 54.677916,92.984401 54.799985,93.748 54.466531,96.319863 C 53.636015,102.72533 53.588791,102.81524 51.05448,102.81524 C 49.77447,102.81524 48.550214,102.63827 48.333922,102.42197 z"
+ style="fill:#1bc9da;fill-opacity:1" />
+ <svg:path
+ id="path3487"
+ d="M 27.60259,143.74963 C 24.041912,143.0638 27.19671,140.27824 31.991356,139.87452 C 33.922414,139.7119 36.055355,139.33102 36.731224,139.02809 C 37.724307,138.58298 37.960079,138.8209 37.960079,140.26813 C 37.960079,143.53367 33.778666,144.93918 27.60259,143.74963 z M 35.151269,142.32876 C 36.651973,141.77715 31.624519,140.69576 29.92903,141.20547 C 28.652945,141.58908 28.644111,141.66934 29.786111,142.50439 C 30.916017,143.3306 32.573223,143.27636 35.151269,142.32876 z M 50.288432,135.64321 C 50.141461,135.16044 49.681175,133.70219 49.265576,132.40263 C 48.84997,131.10308 48.66777,129.78443 48.860679,129.4723 C 49.287477,128.78172 53.372885,127.82481 53.851408,128.30333 C 54.039753,128.49168 53.678744,130.41769 53.049163,132.58337 C 51.95806,136.33663 50.867503,137.54534 50.288432,135.64321 z M 52.355232,131.02037 C 52.355232,129.64576 50.98697,129.76224 50.717829,131.15976 C 50.553576,132.01266 50.795149,132.35963 51.410419,132.15455 C 51.930063,131.98133 52.355232,131.47095 52.355232,131.02037 z M 3.6925902,124.44308 C 3.2291366,123.97962 2.8499471,122.39966 2.8499471,120.93207 C 2.8499471,118.71206 3.0912942,118.26369 4.2862709,118.26369 C 5.8988567,118.26369 9.169771,121.20538 9.169771,122.65566 C 9.169771,124.05214 7.6876809,125.28572 6.0098589,125.28572 C 5.1988148,125.28572 4.156044,124.90653 3.6925902,124.44308 z M 7.4559097,123.11173 C 8.1528725,121.98402 5.8605059,119.88768 4.9385504,120.80963 C 4.5369193,121.21126 4.4104744,122.06669 4.6575613,122.71059 C 5.1672739,124.03888 6.7432738,124.26479 7.4559097,123.11173 z M 9.6297051,116.97954 C 8.1090083,115.2992 8.1524201,114.05047 9.7315327,114.05047 C 11.349318,114.05047 12.680784,115.38194 12.680784,116.99972 C 12.680784,118.63091 11.114788,118.62054 9.6297051,116.97954 z M 28.384577,112.03104 C 26.743087,110.50176 22.772195,101.6184 23.434181,100.95641 C 24.103958,100.28664 27.121996,102.50901 29.145625,105.16212 C 31.01651,107.61498 31.905168,112.62374 30.555177,113.10682 C 30.151487,113.25127 29.174716,112.76717 28.384577,112.03104 z M 29.640327,108.37165 C 29.284085,107.43978 28.324371,106.07539 27.507625,105.33966 C 26.047324,104.02422 26.022676,104.02422 26.025261,105.33966 C 26.029263,107.38038 28.795836,111.55816 29.606431,110.74756 C 30.033553,110.32044 30.046213,109.43338 29.640327,108.37165 z M 48.495182,102.06218 C 48.490955,101.24003 52.825835,93.695631 53.564909,93.238859 C 54.104244,92.905533 54.196892,93.893142 53.876575,96.561028 C 53.625868,98.649108 53.417995,100.85523 53.414638,101.46352 C 53.410201,102.26815 52.739435,102.55515 50.952892,102.51682 C 49.602289,102.48784 48.49632,102.28326 48.495182,102.06218 z"
+ style="fill:#000000;fill-opacity:1" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/comets/cometex0.png b/data/images/comets/cometex0.png
new file mode 100644
index 0000000..d5e208f
Binary files /dev/null and b/data/images/comets/cometex0.png differ
diff --git a/data/images/comets/cometex1.png b/data/images/comets/cometex1.png
new file mode 100644
index 0000000..68b5d80
Binary files /dev/null and b/data/images/comets/cometex1.png differ
diff --git a/data/images/comets/cometex2.png b/data/images/comets/cometex2.png
new file mode 100644
index 0000000..3add30e
Binary files /dev/null and b/data/images/comets/cometex2.png differ
diff --git a/data/images/comets/cometex3.png b/data/images/comets/cometex3.png
new file mode 100644
index 0000000..c2dc31f
Binary files /dev/null and b/data/images/comets/cometex3.png differ
diff --git a/data/images/comets/mini_comet.svg b/data/images/comets/mini_comet.svg
new file mode 100644
index 0000000..4388ad6
--- /dev/null
+++ b/data/images/comets/mini_comet.svg
@@ -0,0 +1,1050 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="21"
+ height="24"
+ id="svg2760"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="mini_comet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>3 frames</desc>
+ <svg:defs
+ id="defs2762">
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ id="stop3855"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop3857"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2768" />
+ <inkscape:perspective
+ id="perspective2777"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2798"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2827"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2846"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2975"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3813"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3835"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2572"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2570"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2568"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2566"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2564"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2562"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2560"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2558"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2556"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2554"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2552" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2550" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2548" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2546" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2544" />
+ <inkscape:perspective
+ id="perspective2542"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ id="stop2538"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2540"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2532" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2534" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2528"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2526"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2524"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2729"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2727"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2725"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2723"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2721"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2719"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2717"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ id="radialGradient2715"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient2713"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient2711"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2709" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2707" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2705" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2703" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2701" />
+ <inkscape:perspective
+ id="perspective2699"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ id="stop2695"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop2697"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop2689" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop2691" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2685"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2683"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2681"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2751"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <inkscape:perspective
+ id="perspective2578"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1026945e-3,-0.1023774,0.1080478,1.1637612e-3,273.85685,251.56604)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.3701377e-3,-9.7289181e-2,9.2598369e-2,6.0629944e-3,275.32689,250.37816)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7964695e-2,-0.4253676,0.3095395,1.3072836e-2,240.03056,296.68905)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7964695e-2,-0.4253676,0.3095395,1.3072836e-2,240.03056,296.68905)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.3701377e-3,-9.7289181e-2,9.2598369e-2,6.0629944e-3,275.32689,250.37816)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1026945e-3,-0.1023774,0.1080478,1.1637612e-3,273.85685,251.56604)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1026945e-3,-0.1023774,0.1080478,1.1637612e-3,273.85685,251.56604)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3394"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.3701377e-3,-9.7289181e-2,9.2598369e-2,6.0629944e-3,275.32689,250.37816)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3397"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.7964695e-2,-0.4253676,0.3095395,1.3072836e-2,-39.3685,74.86811)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3419"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3421"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3423"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3429"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2865595e-2,-8.9336247e-2,9.1084963e-2,1.3117429e-2,-16.087135,37.010938)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2269241e-2,-0.1127225,0.121083,1.3179237e-2,-24.765004,40.600651)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.1529084e-7,-0.3989402,0.2572694,-1.1995684e-8,-69.316456,74.043645)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3450"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3454"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.5291876e-3,-6.5513901e-2,6.1283266e-2,-6.1075597e-3,5.4985812,38.328632)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3466"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-6.6490684e-3,-7.7971275e-2,8.8326284e-2,-7.5321044e-3,0.5536937,40.99102)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient3469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.5591515e-3,-9.9802225e-2,0.1058619,-5.8966892e-3,-2.1090999,42.846152)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient3472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.7742015e-3,-0.3747146,0.2486801,-1.17745e-3,-28.16808,71.51865)"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.409972"
+ inkscape:cx="1.898438"
+ inkscape:cy="23.038163"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame0"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata2765">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(-279.39906,-221.82094)"
+ style="display:inline">
+ <svg:path
+ style="fill:url(#radialGradient3397);fill-opacity:1"
+ d="M 10.3125,-0.0625 C 10.32063,1.9044266 10.2909,3.0355445 10.03125,3.40625 C 9.51893,4.13769 8.9375003,3.9022201 8.9375,2.96875 C 8.9375,2.08734 8.2817199,2.1073601 7.875,3 C 7.49465,3.83479 7.4590698,5.6326799 7.8125,6 C 7.95066,6.14359 8.1054797,7.1339504 8.15625,8.1875 C 8.23973,9.91963 8.18888,10.14063 7.65625,10.40625 C 6.12903,11.16786 6.0074998,11.8816 6.78125,13.0625 C 7.14733,13.6212 6.9757099,13.80269 6.625,14.09375 C 6.33219,14.33676 6.0573802,14.33968 5.65625,14.125 C 4.55583,13.53608 3.87832,13.77802 3.34375,14.9375 C 2.84182,16.02616 2.9113701,17.49927 3.46875,17.84375 C 3.60827,17.92998 3.7187501,18.29085 3.71875,18.65625 C 3.71875,19.87025 7.6584405,23.434629 9,23.4375 C 9.26452,23.43806 9.4687496,23.5676 9.46875,23.71875 C 9.46875,23.87889 10.38458,24 11.65625,24 C 12.85654,24 13.90658,23.8699 14,23.71875 C 14.09342,23.5676 14.39355,23.437501 14.65625,23.4375 C 15.54502,23.4375 18,20.319771 18,19.1875 C 18,18.93622 17.654249,18.311241 17.25,17.78125 C 16.58588,16.91054 16.552111,16.74401 16.84375,15.9375 C 17.02127,15.44658 17.187499,14.81092 17.1875,14.53125 C 17.1875,13.88029 16.39812,13 15.8125,13 C 15.56385,13 15.21263,12.86888 15.03125,12.6875 C 14.63175,12.28799 14.58666,10.89239 14.96875,10.65625 C 15.1199,10.56283 15.25,9.6869397 15.25,8.6875 C 15.25,6.78122 14.66653,5.7686398 13.8125,5.9375 C 12.67074,6.1632476 12.484073,6.2943883 12.65625,-0.0625 L 10.3125,-0.0625 z M 4.25,1.46875 C 3.88357,1.46875 3.7187501,1.6335799 3.71875,2 C 3.71875,2.36643 3.8835701,2.5625 4.25,2.5625 C 4.61642,2.5625 4.8125,2.3664299 4.8125,2 C 4.8125,1.63358 4.6164201,1.46875 4.25,1.46875 z"
+ transform="translate(279.39906,221.82094)"
+ id="path2928" />
+ <svg:path
+ style="fill:url(#radialGradient3394);fill-opacity:1"
+ d="M 288.87966,245.54612 C 288.87966,245.39497 288.66324,245.27084 288.39872,245.27028 C 287.05716,245.26741 283.10845,241.68572 283.10845,240.47172 C 283.10845,240.10632 282.99429,239.7368 282.85477,239.65057 C 282.29739,239.30609 282.24091,237.84651 282.74284,236.75785 C 283.27741,235.59837 283.9674,235.35759 285.06782,235.94651 C 285.46895,236.16119 285.725,236.15073 286.01781,235.90772 C 286.36852,235.61666 286.36632,235.49515 286.00024,234.93645 C 285.22649,233.75555 285.52672,232.98152 287.05394,232.21991 C 287.58657,231.95429 287.63413,231.74276 287.55065,230.01063 C 287.49988,228.95708 287.34529,227.9776 287.20713,227.83401 C 286.8537,227.46669 286.8945,225.64497 287.27485,224.81018 C 287.68157,223.91754 288.33002,223.89962 288.33002,224.78103 C 288.33002,225.7145 288.76076,225.88437 289.27308,225.15293 C 289.62631,224.64862 289.70412,223.63322 289.70412,219.52746 C 289.70412,216.31076 289.81828,214.26682 290.02305,213.8174 C 290.26705,213.28187 290.26396,212.94619 290.00989,212.38857 C 289.77838,211.88046 290.58881,212.15849 290.78957,211.95773 C 290.94796,211.79934 290.25375,210.79932 290.25375,210.45167 C 290.25375,210.10403 290.35269,209.81959 290.47361,209.81959 C 290.99046,209.81959 291.35303,210.55708 291.35303,211.60835 C 291.35303,212.22941 291.5346,212.97761 291.75652,213.27101 C 292.08471,213.70492 292.33103,215.04035 292.16875,220.41388 C 291.92537,228.4731 292.14635,228.20326 293.28914,227.68286 C 294.12618,227.30168 294.65087,228.5989 294.65087,230.50518 C 294.65087,231.50462 294.5272,232.39878 294.37605,232.4922 C 293.99396,232.72834 294.03151,234.09887 294.43101,234.49838 C 294.61239,234.67976 294.96423,234.82816 295.21288,234.82816 C 295.7985,234.82816 296.5746,235.69084 296.5746,236.3418 C 296.5746,236.62147 296.42936,237.25195 296.25184,237.74287 C 295.9602,238.54938 295.99995,238.72837 296.66407,239.59908 C 297.06832,240.12907 297.39906,240.76829 297.39906,241.01957 C 297.39906,242.15184 294.95044,245.2713 294.06167,245.2713 C 293.79897,245.2713 293.5076,245.39497 293.41418,245.54612 C 293.32076,245.69727 292.26228,245.82094 291.06199,245.82094 C 289.79032,245.82094 288.87966,245.70626 288.87966,245.54612 z M 283.10845,223.83538 C 283.10845,223.46896 283.29166,223.28574 283.65809,223.28574 C 284.02451,223.28574 284.20773,223.46896 284.20773,223.83538 C 284.20773,224.20181 284.02451,224.38502 283.65809,224.38502 C 283.29166,224.38502 283.10845,224.20181 283.10845,223.83538 z M 295.47533,219.98791 C 295.47533,219.62149 295.65854,219.43827 296.02496,219.43827 C 296.39139,219.43827 296.5746,219.62149 296.5746,219.98791 C 296.5746,220.35434 296.39139,220.53755 296.02496,220.53755 C 295.65854,220.53755 295.47533,220.35434 295.47533,219.98791 z M 285.64165,216.64762 C 285.70937,216.44424 285.9852,216.23512 286.25459,216.1829 C 286.56789,216.12216 286.70003,216.2212 286.62127,216.45772 C 286.55355,216.66109 286.27773,216.87022 286.00833,216.92244 C 285.69504,216.98317 285.56289,216.88414 285.64165,216.64762 z"
+ id="path3877"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path3881"
+ d="M 288.87966,245.54612 C 288.87966,245.39497 288.66324,245.27084 288.39872,245.27028 C 287.05716,245.26741 283.10845,241.68572 283.10845,240.47172 C 283.10845,240.10632 282.99429,239.7368 282.85477,239.65057 C 282.29739,239.30609 282.24091,237.84651 282.74284,236.75785 C 283.27741,235.59837 283.9674,235.35759 285.06782,235.94651 C 285.46895,236.16119 285.725,236.15073 286.01781,235.90772 C 286.36852,235.61666 286.36632,235.49515 286.00024,234.93645 C 285.22649,233.75555 285.52672,232.98152 287.05394,232.21991 C 287.58657,231.95429 287.63413,231.74276 287.55065,230.01063 C 287.49988,228.95708 287.34529,227.9776 287.20713,227.83401 C 286.8537,227.46669 286.8945,225.64497 287.27485,224.81018 C 287.68157,223.91754 288.33002,223.89962 288.33002,224.78103 C 288.33002,225.7145 288.76076,225.88437 289.27308,225.15293 C 289.62631,224.64862 289.70412,223.63322 289.70412,219.52746 C 289.70412,216.31076 289.81828,214.26682 290.02305,213.8174 C 290.26705,213.28187 290.26396,212.94619 290.00989,212.38857 C 289.77838,211.88046 290.01131,211.71687 290.21207,211.51611 C 290.37045,211.35772 290.25375,210.79932 290.25375,210.45167 C 290.25375,210.10403 290.35269,209.81959 290.47361,209.81959 C 290.99046,209.81959 291.35303,210.55708 291.35303,211.60835 C 291.35303,212.22941 291.5346,212.97761 291.75652,213.27101 C 292.08471,213.70492 292.33103,215.04035 292.16875,220.41388 C 291.92537,228.4731 292.14635,228.20326 293.28914,227.68286 C 294.12618,227.30168 294.65087,228.5989 294.65087,230.50518 C 294.65087,231.50462 294.5272,232.39878 294.37605,232.4922 C 293.99396,232.72834 294.03151,234.09887 294.43101,234.49838 C 294.61239,234.67976 294.96423,234.82816 295.21288,234.82816 C 295.7985,234.82816 296.5746,235.69084 296.5746,236.3418 C 296.5746,236.62147 296.42936,237.25195 296.25184,237.74287 C 295.9602,238.54938 295.99995,238.72837 296.66407,239.59908 C 297.06832,240.12907 297.39906,240.76829 297.39906,241.01957 C 297.39906,242.15184 294.95044,245.2713 294.06167,245.2713 C 293.79897,245.2713 293.5076,245.39497 293.41418,245.54612 C 293.32076,245.69727 292.26228,245.82094 291.06199,245.82094 C 289.79032,245.82094 288.87966,245.70626 288.87966,245.54612 z M 283.10845,223.83538 C 283.10845,223.46896 283.29166,223.28574 283.65809,223.28574 C 284.02451,223.28574 284.20773,223.46896 284.20773,223.83538 C 284.20773,224.20181 284.02451,224.38502 283.65809,224.38502 C 283.29166,224.38502 283.10845,224.20181 283.10845,223.83538 z M 295.47533,219.98791 C 295.47533,219.62149 295.65854,219.43827 296.02496,219.43827 C 296.39139,219.43827 296.5746,219.62149 296.5746,219.98791 C 296.5746,220.35434 296.39139,220.53755 296.02496,220.53755 C 295.65854,220.53755 295.47533,220.35434 295.47533,219.98791 z M 285.64165,216.64762 C 285.70937,216.44424 285.9852,216.23512 286.25459,216.1829 C 286.56789,216.12216 286.70003,216.2212 286.62127,216.45772 C 286.55355,216.66109 286.27773,216.87022 286.00833,216.92244 C 285.69504,216.98317 285.56289,216.88414 285.64165,216.64762 z"
+ style="fill:url(#radialGradient3391);fill-opacity:1" />
+ <svg:path
+ style="fill:#000000"
+ d="M 289.68031,221.94594 C 289.63881,223.24513 289.56319,224.3348 289.55531,224.97719 C 289.44432,225.02027 289.31411,225.15332 289.14906,225.35219 C 288.70373,225.88878 288.33656,225.62936 288.33656,224.78969 C 288.33656,223.90828 287.68078,223.9283 287.27406,224.82094 C 286.89371,225.65573 286.85813,227.45362 287.21156,227.82094 C 287.34972,227.96453 287.50454,228.95489 287.55531,230.00844 C 287.63879,231.74057 287.58794,231.96157 287.05531,232.22719 C 285.5258,232.98994 285.181,233.91734 286.05531,234.88344 C 286.4752,235.34742 286.47735,235.43015 286.08656,235.82094 C 285.75034,236.15717 285.52676,236.18153 285.08656,235.94594 C 283.97163,235.34925 283.27946,235.59445 282.74281,236.75844 C 282.24088,237.8471 282.31043,239.32021 282.86781,239.66469 C 283.00733,239.75092 283.11781,240.11179 283.11781,240.47719 C 283.11781,241.69119 287.0575,245.25557 288.39906,245.25844 C 288.66358,245.259 288.86781,245.38854 288.86781,245.53969 C 288.86781,245.69983 289.78364,245.82094 291.05531,245.82094 C 292.2556,245.82094 293.30564,245.69084 293.39906,245.53969 C 293.49248,245.38854 293.79261,245.25844 294.05531,245.25844 C 294.94408,245.25844 297.39906,242.14071 297.39906,241.00844 C 297.39906,240.75716 297.05331,240.13218 296.64906,239.60219 C 295.98494,238.73148 295.95117,238.56495 296.24281,237.75844 C 296.42033,237.26752 296.58656,236.63186 296.58656,236.35219 C 296.58656,235.70123 295.79718,234.82094 295.21156,234.82094 C 294.96291,234.82094 294.61169,234.68982 294.43031,234.50844 C 294.03081,234.10893 293.98572,232.71333 294.36781,232.47719 C 294.51896,232.38377 294.64906,231.50788 294.64906,230.50844 C 294.64906,228.60216 294.19381,227.69594 293.27406,227.69594 C 292.33435,227.69594 292.20037,227.05556 292.18031,221.94594 L 291.21156,221.94594 C 291.21322,229.12864 291.2763,229.42519 292.71156,228.88344 C 293.99993,228.39713 294.28146,228.95885 293.80531,231.07094 C 293.59489,232.00431 293.43673,233.37769 293.43031,234.13344 C 293.4188,235.48857 293.41604,235.52918 294.33656,235.66469 C 295.69677,235.86493 295.97145,236.46098 295.24281,237.69594 C 294.38832,239.14419 294.44809,239.9364 295.46156,240.28969 C 296.41008,240.62035 296.42132,240.6168 295.93031,241.78969 C 295.40677,243.04027 293.50511,244.65836 292.30531,244.88344 C 290.31854,245.25616 288.69982,244.85138 286.77406,243.47719 C 283.91099,241.43414 282.62822,238.73172 283.77406,237.16469 C 284.14894,236.65202 284.17761,236.65022 284.71156,237.13344 C 285.36,237.72027 286.35747,237.64186 286.77406,236.97719 C 286.98417,236.64197 286.9973,236.15729 286.77406,235.32094 C 286.57032,234.55763 286.54057,233.98418 286.71156,233.66469 C 287.01276,233.10188 287.79163,233.026 288.27406,233.50844 C 288.52049,233.75487 288.69672,233.77328 288.93031,233.53969 C 289.16391,233.30609 289.12811,232.9253 288.86781,232.03969 C 288.67622,231.38785 288.51094,230.35974 288.49281,229.75844 C 288.466,228.86958 288.57718,228.62628 289.02406,228.53969 C 289.80677,228.38802 289.95679,228.01844 289.96156,226.38344 C 289.96382,225.60837 289.91849,225.18335 289.77406,225.03969 C 289.93817,224.31194 290.12744,223.05286 290.21156,221.94594 L 289.68031,221.94594 z M 283.64906,223.28969 C 283.28263,223.28969 283.11781,223.45452 283.11781,223.82094 C 283.11781,224.18737 283.28263,224.38344 283.64906,224.38344 C 284.01548,224.38344 284.21156,224.18737 284.21156,223.82094 C 284.21156,223.45452 284.01548,223.28969 283.64906,223.28969 z M 291.49281,235.66469 C 290.68415,235.66469 290.32136,236.66667 290.80531,237.57094 C 291.23795,238.37934 292.5576,238.24592 292.68031,237.38344 C 292.81133,236.46263 292.25638,235.66469 291.49281,235.66469 z M 287.77406,239.53969 C 287.28392,239.58811 286.75295,239.86031 286.58656,240.13344 C 286.33544,240.54564 286.42039,240.76124 287.18031,241.44594 C 288.41189,242.5556 289.53067,242.46847 289.64906,241.25844 C 289.75807,240.14422 288.97188,239.42136 287.77406,239.53969 z M 288.08656,240.38344 C 288.13651,240.37549 288.21485,240.37204 288.27406,240.38344 C 288.53858,240.43438 288.74281,240.64013 288.74281,240.85219 C 288.74281,241.2861 288.24963,241.54651 287.96156,241.25844 C 287.6312,240.92808 287.73689,240.4391 288.08656,240.38344 z"
+ id="path2926" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3910"
+ d="M 289.07683,241.03634 C 289.07683,241.3885 288.79018,241.51184 288.30934,241.51184 C 287.82851,241.51184 286.78116,240.87251 287.24494,240.27048 C 287.55549,239.86737 288.26436,240.05186 288.56699,240.21135 C 288.99236,240.43554 289.07683,240.68418 289.07683,241.03634 z"
+ style="fill:#d40000" />
+ <svg:path
+ style="fill:#d40000"
+ d="M 292.17399,236.93561 C 292.28441,237.28777 291.95551,237.53677 291.69551,237.53677 C 291.21467,237.53677 291.10661,237.20189 291.10661,236.84972 C 291.10661,236.49756 291.25148,236.21175 291.58509,236.16268 C 292.06081,236.0927 292.16172,236.7184 292.17399,236.93561 z"
+ id="path3915"
+ sodipodi:nodetypes="csssc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="translate(-4.0654534,-12.128338)">
+ <svg:path
+ style="fill:url(#radialGradient3435);fill-opacity:1"
+ d="M 10.3125,0.375 C 10.290805,1.3360578 10.190834,1.8837953 10,2.15625 C 9.803332,2.437032 9.6562504,2.9071091 9.65625,3.21875 C 9.65625,4.01271 9.2872448,4.1561489 8.75,3.5625 C 8.498741,3.284861 8.0805808,3.0625001 7.8125,3.0625 C 7.416451,3.0625 7.3099678,3.2005149 7.375,3.875 C 7.436978,4.517798 7.6066008,4.7478711 8.0625,4.8125 C 8.386301,4.858403 8.7879631,4.7750402 8.96875,4.625 C 9.469627,4.20931 9.6562504,4.549079 9.65625,6.03125 C 9.65625,7.104097 9.5177974,7.4820782 9.0625,7.90625 L 8.5,8.4375 L 8.03125,7.875 C 7.594108,7.335155 7.5815391,7.339807 7.09375,7.78125 C 6.390197,8.41796 6.4305952,9.5945817 7.21875,10.53125 C 7.577851,10.95802 7.80077,11.389054 7.6875,11.5 C 7.37862,11.80254 5.771004,11.401675 5.5625,10.96875 C 5.0519761,9.908737 4.7932206,8.8005297 5.03125,8.5625 C 5.1705634,8.423184 5.3124999,7.8036841 5.3125,7.15625 C 5.3125,6.508816 5.4812539,5.741431 5.6875,5.46875 C 6.3008393,4.657841 6.1579231,4.3437498 5.1875,4.34375 C 4.4268147,4.34375 4.2042836,4.475606 3.65625,5.34375 C 3.1015478,6.222453 3,6.6633228 3,8.53125 C 3,9.719793 3.1170004,10.761551 3.25,10.84375 C 3.3829997,10.925948 3.8502938,11.517695 4.28125,12.15625 C 5.0523254,13.298769 5.0698895,13.78125 4.40625,13.78125 C 3.6598012,13.78125 3.3933831,14.587059 3.4375,16.65625 C 3.4751552,18.422442 3.5858741,18.845169 4.1875,19.75 C 5.8175784,22.201602 7.4353099,23.5 8.875,23.5 C 9.303402,23.5 9.6562504,23.609524 9.65625,23.75 C 9.65625,23.891896 10.336134,24 11.1875,24 C 12.038866,24 12.71875,23.891895 12.71875,23.75 C 12.71875,23.609525 13.01238,23.5 13.40625,23.5 C 14.355844,23.5 15.481935,22.280599 16.53125,20.15625 C 17.304785,18.590223 17.670503,17.384918 17.96875,15.3125 C 18.108194,14.343535 17.658371,13.079464 16.75,11.9375 C 16.277154,11.343058 16.243604,11.156479 16.5,10.59375 C 17.1483,9.170888 16.65042,6.2201998 15.84375,6.71875 C 15.693592,6.811553 15.120385,7.7779192 14.59375,8.84375 C 14.067112,9.909579 13.473855,10.832342 13.28125,10.90625 C 13.088648,10.980158 12.713221,10.843273 12.4375,10.59375 C 11.798699,10.015642 11.744001,7.5437601 12.34375,6.6875 C 12.623394,6.288251 12.710088,5.6625129 12.65625,4.53125 C 12.581982,2.970751 12.559857,2.9259221 11.75,2.6875 L 10.90625,2.4375 L 10.90625,0.375 L 10.3125,0.375 z M 15.125,2.34375 C 14.520376,2.3556247 13.96875,3.187406 13.96875,4.25 C 13.96875,5.481361 14.448494,5.7194149 15.3125,4.9375 C 15.907723,4.398832 15.948104,2.5949209 15.375,2.375 C 15.28682,2.341162 15.211375,2.3420536 15.125,2.34375 z"
+ transform="translate(4.0654534,12.128338)"
+ id="path2956" />
+ <svg:path
+ style="fill:url(#radialGradient3432);fill-opacity:1"
+ d="M 13.706115,35.872928 C 13.706115,35.732453 13.355603,35.617518 12.927201,35.617518 C 11.487511,35.617518 9.8838393,34.336784 8.2537609,31.885182 C 7.6521348,30.980351 7.5491969,30.550256 7.5115417,28.784064 C 7.4674248,26.714872 7.7399601,25.911934 8.4864089,25.911934 C 9.1500486,25.911934 9.1037249,25.419302 8.3326495,24.276783 C 7.9016934,23.638228 7.4402721,23.048516 7.3072724,22.966318 C 7.1742727,22.884119 7.0654527,21.844421 7.0654527,20.655878 C 7.0654527,18.787951 7.1524811,18.357029 7.7071833,17.478326 C 8.2552168,16.610182 8.4789586,16.46176 9.2396439,16.46176 C 10.210067,16.46176 10.352476,16.785161 9.7391367,17.59607 C 9.5328905,17.868751 9.3641436,18.621572 9.3641436,19.269006 C 9.3641436,19.91644 9.2501566,20.560142 9.1108432,20.699458 C 8.8728137,20.937488 9.1036151,22.036924 9.614139,23.096937 C 9.822643,23.529862 11.432194,23.935481 11.741074,23.632941 C 11.854344,23.521995 11.653208,23.082049 11.294107,22.655279 C 10.505952,21.718611 10.443185,20.55128 11.146738,19.91457 C 11.634527,19.473127 11.668193,19.476711 12.105335,20.016556 L 12.558389,20.576052 L 13.132252,20.041417 C 13.587549,19.617245 13.706115,19.227392 13.706115,18.154545 C 13.706115,16.672374 13.542173,16.323303 13.041296,16.738993 C 12.860509,16.889033 12.447661,16.974236 12.12386,16.928333 C 11.667961,16.863704 11.517072,16.657591 11.455094,16.014793 C 11.390062,15.340308 11.466427,15.18471 11.862476,15.18471 C 12.130557,15.18471 12.55547,15.411869 12.806729,15.689508 C 13.343974,16.283157 13.706115,16.148132 13.706115,15.354172 C 13.706115,15.042531 13.867024,14.557821 14.063692,14.277039 C 14.318137,13.913766 14.406718,13.083811 14.370818,11.399415 C 14.307223,8.415691 14.882956,-1.6572823 15.131281,-1.9056073 C 15.435931,-2.2102579 15.989505,-0.89656631 15.996684,0.1480942 C 16.001703,0.87867436 16.151108,1.4514366 16.387921,1.6479747 C 16.67582,1.8869108 16.771036,2.5294537 16.771036,4.2333507 C 16.771036,6.4290755 16.752463,6.5007666 16.183593,6.5007666 C 15.091613,6.5007666 14.983166,6.8928696 14.983166,10.841001 L 14.983166,14.568255 L 15.813249,14.812629 C 16.623106,15.051051 16.645186,15.095978 16.719454,16.656477 C 16.773292,17.78774 16.679835,18.421193 16.400191,18.820442 C 15.800442,19.676702 15.867311,22.13259 16.506112,22.710698 C 16.781833,22.960221 17.165007,23.103904 17.357609,23.029996 C 17.550214,22.956088 18.138681,22.023573 18.665319,20.957744 C 19.191954,19.891913 19.745693,18.943943 19.895851,18.85114 C 20.702521,18.35259 21.206128,21.291808 20.557828,22.71467 C 20.301432,23.277399 20.338045,23.473148 20.810891,24.06759 C 21.719262,25.209554 22.180367,26.47543 22.040923,27.444395 C 21.742676,29.516813 21.384966,30.73116 20.611431,32.297187 C 19.562117,34.421537 18.436757,35.617518 17.487163,35.617518 C 17.093293,35.617518 16.771036,35.732453 16.771036,35.872928 C 16.771036,36.014824 16.089942,36.128338 15.238576,36.128338 C 14.38721,36.128338 13.706115,36.014824 13.706115,35.872928 z M 18.048087,16.373641 C 18.048087,15.159248 18.737886,14.236487 19.443329,14.507191 C 20.016433,14.727112 19.964102,16.522032 19.368879,17.0607 C 18.504873,17.842615 18.048087,17.605002 18.048087,16.373641 z"
+ id="path3891" />
+ <svg:path
+ id="path3895"
+ d="M 13.706115,35.872928 C 13.706115,35.732453 13.355603,35.617518 12.927201,35.617518 C 11.487511,35.617518 9.8838393,34.336784 8.2537609,31.885182 C 7.6521348,30.980351 7.5491969,30.550256 7.5115417,28.784064 C 7.4674248,26.714872 7.7399601,25.911934 8.4864089,25.911934 C 9.1500486,25.911934 9.1037249,25.419302 8.3326495,24.276783 C 7.9016934,23.638228 7.4402721,23.048516 7.3072724,22.966318 C 7.1742727,22.884119 7.0654527,21.844421 7.0654527,20.655878 C 7.0654527,18.787951 7.1524811,18.357029 7.7071833,17.478326 C 8.2552168,16.610182 8.4789586,16.46176 9.2396439,16.46176 C 10.210067,16.46176 10.352476,16.785161 9.7391367,17.59607 C 9.5328905,17.868751 9.3641436,18.621572 9.3641436,19.269006 C 9.3641436,19.91644 9.2501566,20.560142 9.1108432,20.699458 C 8.8728137,20.937488 9.1036151,22.036924 9.614139,23.096937 C 9.822643,23.529862 11.432194,23.935481 11.741074,23.632941 C 11.854344,23.521995 11.653208,23.082049 11.294107,22.655279 C 10.505952,21.718611 10.443185,20.55128 11.146738,19.91457 C 11.634527,19.473127 11.668193,19.476711 12.105335,20.016556 L 12.558389,20.576052 L 13.132252,20.041417 C 13.587549,19.617245 13.706115,19.227392 13.706115,18.154545 C 13.706115,16.672374 13.542173,16.323303 13.041296,16.738993 C 12.860509,16.889033 12.447661,16.974236 12.12386,16.928333 C 11.667961,16.863704 11.517072,16.657591 11.455094,16.014793 C 11.390062,15.340308 11.466427,15.18471 11.862476,15.18471 C 12.130557,15.18471 12.55547,15.411869 12.806729,15.689508 C 13.343974,16.283157 13.706115,16.148132 13.706115,15.354172 C 13.706115,15.042531 13.867024,14.557821 14.063692,14.277039 C 14.318137,13.913766 14.406718,13.083811 14.370818,11.399415 C 14.307223,8.415691 14.882956,-1.6572823 15.131281,-1.9056073 C 15.435931,-2.2102579 15.989505,-0.89656631 15.996684,0.1480942 C 16.001703,0.87867436 16.151108,1.4514366 16.387921,1.6479747 C 16.67582,1.8869108 16.771036,2.5294537 16.771036,4.2333507 C 16.771036,6.4290755 16.752463,6.5007666 16.183593,6.5007666 C 15.091613,6.5007666 14.983166,6.8928696 14.983166,10.841001 L 14.983166,14.568255 L 15.813249,14.812629 C 16.623106,15.051051 16.645186,15.095978 16.719454,16.656477 C 16.773292,17.78774 16.679835,18.421193 16.400191,18.820442 C 15.800442,19.676702 15.867311,22.13259 16.506112,22.710698 C 16.781833,22.960221 17.165007,23.103904 17.357609,23.029996 C 17.550214,22.956088 18.138681,22.023573 18.665319,20.957744 C 19.191954,19.891913 19.745693,18.943943 19.895851,18.85114 C 20.702521,18.35259 21.206128,21.291808 20.557828,22.71467 C 20.301432,23.277399 20.338045,23.473148 20.810891,24.06759 C 21.719262,25.209554 22.180367,26.47543 22.040923,27.444395 C 21.742676,29.516813 21.384966,30.73116 20.611431,32.297187 C 19.562117,34.421537 18.436757,35.617518 17.487163,35.617518 C 17.093293,35.617518 16.771036,35.732453 16.771036,35.872928 C 16.771036,36.014824 16.089942,36.128338 15.238576,36.128338 C 14.38721,36.128338 13.706115,36.014824 13.706115,35.872928 z M 18.048087,16.373641 C 18.048087,15.159248 18.737886,14.236487 19.443329,14.507191 C 20.016433,14.727112 19.964102,16.522032 19.368879,17.0607 C 18.504873,17.842615 18.048087,17.605002 18.048087,16.373641 z"
+ style="fill:url(#radialGradient3429);fill-opacity:1" />
+ <svg:path
+ style="fill:#000000"
+ d="M 10.25,-0.125 C 10.201136,1.010492 10.121561,1.9517248 9.96875,2.21875 C 9.793155,2.525584 9.6562504,2.999354 9.65625,3.28125 C 9.65625,4.024728 9.2744258,4.1419819 8.75,3.5625 C 8.498741,3.284861 8.0805808,3.0625001 7.8125,3.0625 C 7.416451,3.0625 7.3099678,3.2005149 7.375,3.875 C 7.436978,4.517798 7.6066008,4.7478711 8.0625,4.8125 C 8.386301,4.858403 8.7879631,4.7750402 8.96875,4.625 C 9.469627,4.20931 9.6562504,4.549079 9.65625,6.03125 C 9.65625,7.104097 9.5177974,7.4820782 9.0625,7.90625 L 8.5,8.4375 L 8.03125,7.875 C 7.594108,7.335155 7.5815391,7.339807 7.09375,7.78125 C 6.394945,8.413661 6.4431438,9.5782418 7.21875,10.5 C 7.997204,11.425138 7.8404279,11.768943 6.75,11.5625 C 5.6700856,11.358047 5.3124999,11.032672 5.3125,10.3125 C 5.3125,9.542868 4.8877646,9.2984733 4.5625,9.875 C 4.1045191,10.68676 3.6470757,9.8271375 3.65625,8.1875 C 3.6655904,6.517894 4.2943678,5.209965 4.96875,5.46875 C 5.4317242,5.64641 6.0625002,5.1948519 6.0625,4.6875 C 6.0625,4.45591 5.773799,4.3437498 5.1875,4.34375 C 4.4268147,4.34375 4.2042836,4.475606 3.65625,5.34375 C 3.1015478,6.222453 3,6.6633228 3,8.53125 C 3,9.719793 3.1170004,10.761551 3.25,10.84375 C 3.3829997,10.925948 3.8502938,11.517695 4.28125,12.15625 C 5.0523254,13.298769 5.0698895,13.78125 4.40625,13.78125 C 3.6598012,13.78125 3.3933831,14.587059 3.4375,16.65625 C 3.4751552,18.422442 3.5858741,18.845169 4.1875,19.75 C 5.8175784,22.201602 7.4353099,23.5 8.875,23.5 C 9.303402,23.5 9.6562504,23.609524 9.65625,23.75 C 9.65625,23.891896 10.336134,24 11.1875,24 C 12.038866,24 12.71875,23.891895 12.71875,23.75 C 12.71875,23.609525 13.01238,23.5 13.40625,23.5 C 14.355844,23.5 15.481935,22.280599 16.53125,20.15625 C 17.304785,18.590223 17.670503,17.384918 17.96875,15.3125 C 18.108194,14.343535 17.658371,13.079464 16.75,11.9375 C 16.277154,11.343058 16.243604,11.156479 16.5,10.59375 C 17.1483,9.170888 16.65042,6.2201998 15.84375,6.71875 C 15.693592,6.811553 15.120385,7.7779192 14.59375,8.84375 C 14.067112,9.909579 13.473855,10.832342 13.28125,10.90625 C 13.088648,10.980158 12.713221,10.843273 12.4375,10.59375 C 11.798699,10.015642 11.744001,7.5437601 12.34375,6.6875 C 12.623394,6.288251 12.710088,5.6625129 12.65625,4.53125 C 12.581982,2.970751 12.559857,2.9259221 11.75,2.6875 L 10.90625,2.4375 L 10.90625,-0.125 L 10.25,-0.125 z M 15.125,2.34375 C 14.520376,2.3556247 13.96875,3.187406 13.96875,4.25 C 13.96875,5.481361 14.448494,5.7194149 15.3125,4.9375 C 15.907723,4.398832 15.948104,2.5949209 15.375,2.375 C 15.28682,2.341162 15.211375,2.3420536 15.125,2.34375 z M 11.375,3.84375 C 11.906632,3.8892237 11.985029,4.4263124 11.6875,5.53125 C 11.538067,6.086203 11.396776,7.4790623 11.375,8.625 C 11.342913,10.313419 11.438493,10.805476 11.8125,11.21875 C 12.796851,12.306445 14.393289,11.638521 15.15625,9.8125 C 15.520459,8.940824 15.935087,8.4975856 16.1875,8.75 C 16.335347,8.897845 15.567303,11.421977 15.21875,11.90625 C 15.107443,12.060898 14.930725,12.709187 14.84375,13.34375 C 14.640088,14.829617 15.094151,15.167948 15.9375,14.1875 C 16.805705,13.17815 17.148901,13.58252 17,15.4375 C 16.914448,16.503303 16.573027,17.624482 15.9375,19 C 14.920176,21.20186 14.446396,21.843913 13.46875,22.34375 C 11.398633,23.402131 8.1769261,22.741645 6.375,20.90625 C 5.1383373,19.646619 4.3608142,18.160333 4.21875,16.78125 C 4.0606741,15.246754 4.4943391,14.519553 5.28125,15 C 5.5688494,15.175595 5.8824592,15.3125 5.96875,15.3125 C 6.176605,15.3125 5.9601222,13.277297 5.6875,12.65625 C 5.4994594,12.227891 5.55152,12.200381 6.09375,12.375 C 6.525141,12.513923 6.9651529,12.555226 7.375,12.53125 C 7.902984,12.500363 8.3676044,12.360286 8.5625,12.09375 C 9.001877,11.492865 8.9895778,11.4184 8.125,10.4375 C 7.437737,9.657769 7.1101511,8.9374997 7.46875,8.9375 C 7.54393,8.9375 7.9030506,9.1164196 8.25,9.34375 C 8.746966,9.669375 8.9594756,9.6786116 9.25,9.4375 C 9.780594,8.997145 10.206126,7.5368028 10.375,5.625 C 10.505339,4.149445 10.613217,3.947675 11.125,3.875 C 11.21852,3.8617204 11.299053,3.8372538 11.375,3.84375 z M 5.0625,6.28125 C 4.9225286,6.3356354 4.7463313,6.721075 4.625,7.46875 C 4.5021656,8.225688 4.5380578,8.4062501 4.875,8.40625 C 5.2010207,8.40625 5.3124999,8.1583272 5.3125,7.21875 C 5.3125,6.5182175 5.2024714,6.2268646 5.0625,6.28125 z M 8.375,13.59375 C 7.9690493,13.608979 7.5726774,13.93016 7.4375,14.46875 C 7.316816,14.949595 7.4085172,15.219054 7.75,15.46875 C 8.350454,15.907813 8.4790242,15.927228 8.96875,15.4375 C 9.458984,14.947268 9.4755407,14.545103 9.03125,13.9375 C 8.8582764,13.700944 8.6185704,13.584612 8.375,13.59375 z M 13.21875,15.875 C 13.071349,15.908543 12.914987,16.009907 12.71875,16.1875 C 12.087346,16.758911 12.047149,17.313369 12.59375,18.09375 C 13.105295,18.824085 13.711952,18.715627 14.21875,17.8125 C 14.638557,17.064391 14.468518,16.481112 13.65625,15.96875 C 13.501377,15.871058 13.366151,15.841457 13.21875,15.875 z"
+ id="path2954"
+ transform="translate(4.0654534,12.128338)" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3899"
+ d="M 17.916717,29.287473 C 17.916717,29.599013 17.705028,30.093734 17.384588,30.093734 C 17.064148,30.093734 16.884704,29.566764 16.884704,29.255225 C 16.884704,28.943686 17.128649,28.674717 17.449089,28.674717 C 17.769529,28.674717 17.916717,28.975934 17.916717,29.287473 z"
+ style="fill:#d40000" />
+ <svg:path
+ style="fill:#d40000"
+ d="M 12.950155,26.755817 C 12.950155,27.067356 12.770717,27.3847 12.450277,27.3847 C 12.129837,27.3847 11.918142,27.035108 11.918142,26.723569 C 11.918142,26.41203 12.162087,26.14306 12.482527,26.14306 C 12.802967,26.14306 12.950155,26.444278 12.950155,26.755817 z"
+ id="path3902"
+ sodipodi:nodetypes="csssc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(-4.0654534,-12.128338)">
+ <svg:path
+ style="fill:url(#radialGradient3472);fill-opacity:1"
+ d="M 6.59375,0.375 C 6.6412104,1.2551385 6.8540572,1.2873653 7.59375,0.5 C 7.6357711,0.45527053 7.6516746,0.41569119 7.6875,0.375 L 6.59375,0.375 z M 9.75,0.375 C 9.3409821,0.89767613 9.0937497,2.1986192 9.09375,4.25 C 9.09375,6.918986 8.903376,7.3486801 8,6.5 C 7.686719,6.20569 7.199136,5.9687501 6.9375,5.96875 C 6.193185,5.96875 5.2812501,6.9834431 5.28125,7.8125 C 5.28125,8.216809 5.1784659,8.7561763 5.03125,9.03125 C 4.8390466,9.390386 4.8360025,9.7798828 5.0625,10.40625 C 5.3424407,11.180416 5.3122934,11.428701 4.78125,12.5625 C 4.2860338,13.619807 4.2311729,13.947327 4.46875,14.46875 C 4.7144144,15.007924 4.6609933,15.206755 4.125,15.84375 C 3.2569677,16.875348 3.2699176,18.400457 4.15625,19.5625 C 4.5178135,20.036533 4.7520135,20.563801 4.65625,20.71875 C 4.560489,20.873695 4.5650499,21.367122 4.65625,21.8125 C 4.7897272,22.464344 5.0614339,22.761436 6.125,23.3125 C 7.237667,23.889006 7.785524,23.987723 9.5625,24 C 11.928506,24.016342 12.903337,23.660192 13.375,22.625 C 13.539995,22.262877 13.945034,21.84069 14.28125,21.6875 C 14.917073,21.397799 15.46875,20.492214 15.46875,19.71875 C 15.46875,19.472036 15.706646,19.033632 16,18.71875 C 16.293357,18.40387 16.754115,17.482672 17.03125,16.6875 C 17.308387,15.892327 17.652585,15.132839 17.78125,15 C 17.909911,14.867161 18.000001,13.557951 18,12.09375 C 18,9.269588 17.717919,8.4999999 16.6875,8.5 C 16.328568,8.5 16.221679,8.7114898 16.21875,9.34375 C 16.211781,10.847772 15.191982,13.018601 14.65625,12.6875 C 14.532264,12.610873 14.4375,12.196877 14.4375,11.78125 C 14.4375,11.283415 14.293102,10.99682 14,10.90625 C 13.113263,10.632238 12.798537,10.348869 12.71875,9.8125 C 12.674027,9.511856 12.417435,9.1397827 12.15625,9 C 11.895064,8.860218 11.668166,8.5569457 11.65625,8.3125 C 11.644334,8.068056 11.567322,6.3461291 11.5,4.46875 C 11.403438,1.776046 11.29979,0.95954401 10.96875,0.59375 C 10.880586,0.49632929 10.801388,0.4426222 10.71875,0.375 L 9.75,0.375 z M 13.1875,0.375 C 13.200134,0.6302813 13.235367,0.86036621 13.34375,0.96875 C 13.761265,1.3862626 14.350131,1.0301892 14.6875,0.375 L 13.1875,0.375 z M 4.46875,2.96875 C 3.9868348,2.9636835 3.5606007,3.3138882 3.3125,4 C 3.1428348,4.4692 2.9999999,5.7387409 3,6.8125 C 3,8.311735 3.0717795,8.7499997 3.34375,8.75 C 3.7242161,8.75 4.0312499,8.2161988 4.03125,7.5 C 4.03125,7.256149 4.2962028,6.8088879 4.625,6.5 C 4.9537975,6.191111 5.3773518,5.498502 5.5625,4.9375 C 5.8729974,3.996682 5.8325643,3.863814 5.34375,3.375 C 5.0634258,3.0946755 4.7578991,2.9717899 4.46875,2.96875 z M 16.40625,4.53125 C 16.243345,4.587671 16.041149,4.771351 15.6875,5.125 C 15.251737,5.560763 14.966906,6.032827 15.0625,6.1875 C 15.158093,6.342175 15.529968,6.4698409 15.90625,6.46875 C 16.818077,6.466106 17.437804,5.3128058 16.84375,4.71875 C 16.672051,4.547051 16.569155,4.474829 16.40625,4.53125 z"
+ transform="translate(4.0654534,12.128338)"
+ id="path2985" />
+ <svg:path
+ style="fill:url(#radialGradient3469);fill-opacity:1"
+ d="M 10.19336,35.428641 C 9.1297941,34.877577 8.8397729,34.586134 8.7062957,33.93429 C 8.6150957,33.488912 8.6188279,32.997739 8.7145889,32.842794 C 8.8103525,32.687846 8.5928779,32.173227 8.2313144,31.699194 C 7.3449821,30.537151 7.3321863,29.003063 8.2002186,27.971465 C 8.7362118,27.33447 8.7851245,27.136326 8.5394601,26.597152 C 8.301883,26.075729 8.3555372,25.746954 8.8507534,24.689647 C 9.3817966,23.555848 9.4136195,23.314041 9.1336788,22.539875 C 8.9071813,21.913508 8.8937195,21.526595 9.0859229,21.167459 C 9.233139,20.892385 9.353589,20.336523 9.353589,19.932214 C 9.353589,19.103157 10.261816,18.091521 11.006131,18.091521 C 11.267767,18.091521 11.738152,18.332322 12.051433,18.626632 C 12.954809,19.475312 13.167148,19.047451 13.167148,16.378465 C 13.167148,12.771249 13.859132,11.410203 15.033408,12.707764 C 15.364448,13.073558 15.478895,13.892179 15.575457,16.584883 C 15.642779,18.462262 15.70761,20.198302 15.719526,20.442746 C 15.731442,20.687192 15.954891,21.001559 16.216077,21.141341 C 16.477262,21.281124 16.727551,21.641474 16.772274,21.942118 C 16.852061,22.478487 17.17448,22.748815 18.061217,23.022827 C 18.354319,23.113397 18.506132,23.418161 18.506132,23.915996 C 18.506132,24.331623 18.607575,24.734378 18.731561,24.811005 C 19.267293,25.142106 20.274995,22.964187 20.281964,21.460165 C 20.284893,20.827905 20.395931,20.633894 20.754863,20.633894 C 21.785282,20.633894 22.065454,21.401785 22.065454,24.225947 C 22.065454,25.690148 21.960184,26.996818 21.831523,27.129657 C 21.702858,27.262496 21.370845,28.021778 21.093708,28.816951 C 20.816574,29.612124 20.34981,30.520349 20.056453,30.835229 C 19.763099,31.15011 19.523081,31.609598 19.523081,31.856312 C 19.523081,32.629776 18.983056,33.532753 18.347233,33.822454 C 18.011017,33.975645 17.600935,34.397264 17.43594,34.759387 C 16.964277,35.794578 15.990695,36.144136 13.624689,36.127794 C 11.847713,36.115517 11.306027,36.005147 10.19336,35.428641 z M 7.0654533,18.935843 C 7.0654533,17.862084 7.2042694,16.599662 7.3739346,16.130462 C 7.7708957,15.032683 8.6738017,14.756367 9.421333,15.503899 C 9.9101475,15.992713 9.9251576,16.113049 9.6146602,17.053867 C 9.4295119,17.614869 9.009011,18.326601 8.6802135,18.63549 C 8.3514161,18.944378 8.0824025,19.396618 8.0824025,19.640469 C 8.0824025,20.356668 7.8000745,20.888131 7.4196084,20.888131 C 7.147638,20.888131 7.0654533,20.435078 7.0654533,18.935843 z M 19.125045,18.318771 C 19.029451,18.164098 19.307775,17.681012 19.743538,17.245249 C 20.450836,16.537951 20.577108,16.494217 20.920506,16.837615 C 21.51456,17.431671 20.894826,18.595368 19.982999,18.598012 C 19.606717,18.599103 19.220638,18.473446 19.125045,18.318771 z M 10.624775,12.099262 C 10.624775,11.055127 10.680057,10.945737 11.170844,11.018754 C 11.471182,11.063436 11.839176,11.295066 11.988606,11.533485 C 12.202359,11.874527 12.130671,12.10496 11.652459,12.613994 C 10.80205,13.519211 10.624775,13.430421 10.624775,12.099262 z M 17.404435,13.091522 C 17.054274,12.741359 17.248077,11.294037 17.699879,10.885162 C 18.524658,10.138747 19.014606,10.34624 19.014606,11.441947 C 19.014606,12.679274 18.015622,13.702706 17.404435,13.091522 z M 13.770337,6.2043829 C 13.692029,5.9605292 13.508261,5.4412385 13.361965,5.0504041 C 13.172007,4.542935 13.178821,4.1579557 13.385795,3.7036957 C 13.545199,3.3538405 13.675623,2.5758797 13.675623,1.974894 C 13.675623,0.89461274 14.216109,0.040673123 14.899857,0.040673123 C 15.38601,0.040673123 15.963759,1.7901781 15.963759,3.2623133 C 15.963759,4.886748 15.495766,5.9264664 14.575949,6.3455644 C 14.00738,6.6046213 13.892393,6.5844702 13.770337,6.2043829 z"
+ id="path3851" />
+ <svg:path
+ id="path3861"
+ d="M 10.19336,35.428641 C 9.1297941,34.877577 8.8397729,34.586134 8.7062957,33.93429 C 8.6150957,33.488912 8.6188279,32.997739 8.7145889,32.842794 C 8.8103525,32.687846 8.5928779,32.173227 8.2313144,31.699194 C 7.3449821,30.537151 7.3321863,29.003063 8.2002186,27.971465 C 8.7362118,27.33447 8.7851245,27.136326 8.5394601,26.597152 C 8.301883,26.075729 8.3555372,25.746954 8.8507534,24.689647 C 9.3817966,23.555848 9.4136195,23.314041 9.1336788,22.539875 C 8.9071813,21.913508 8.8937195,21.526595 9.0859229,21.167459 C 9.233139,20.892385 9.353589,20.336523 9.353589,19.932214 C 9.353589,19.103157 10.261816,18.091521 11.006131,18.091521 C 11.267767,18.091521 11.738152,18.332322 12.051433,18.626632 C 12.954809,19.475312 13.167148,19.047451 13.167148,16.378465 C 13.167148,12.771249 13.859132,11.410203 15.033408,12.707764 C 15.364448,13.073558 15.478895,13.892179 15.575457,16.584883 C 15.642779,18.462262 15.70761,20.198302 15.719526,20.442746 C 15.731442,20.687192 15.954891,21.001559 16.216077,21.141341 C 16.477262,21.281124 16.727551,21.641474 16.772274,21.942118 C 16.852061,22.478487 17.17448,22.748815 18.061217,23.022827 C 18.354319,23.113397 18.506132,23.418161 18.506132,23.915996 C 18.506132,24.331623 18.607575,24.734378 18.731561,24.811005 C 19.267293,25.142106 20.274995,22.964187 20.281964,21.460165 C 20.284893,20.827905 20.395931,20.633894 20.754863,20.633894 C 21.785282,20.633894 22.065454,21.401785 22.065454,24.225947 C 22.065454,25.690148 21.960184,26.996818 21.831523,27.129657 C 21.702858,27.262496 21.370845,28.021778 21.093708,28.816951 C 20.816574,29.612124 20.34981,30.520349 20.056453,30.835229 C 19.763099,31.15011 19.523081,31.609598 19.523081,31.856312 C 19.523081,32.629776 18.983056,33.532753 18.347233,33.822454 C 18.011017,33.975645 17.600935,34.397264 17.43594,34.759387 C 16.964277,35.794578 15.990695,36.144136 13.624689,36.127794 C 11.847713,36.115517 11.306027,36.005147 10.19336,35.428641 z M 7.0654533,18.935843 C 7.0654533,17.862084 7.2042694,16.599662 7.3739346,16.130462 C 7.7708957,15.032683 8.6738017,14.756367 9.421333,15.503899 C 9.9101475,15.992713 9.9251576,16.113049 9.6146602,17.053867 C 9.4295119,17.614869 9.009011,18.326601 8.6802135,18.63549 C 8.3514161,18.944378 8.0824025,19.396618 8.0824025,19.640469 C 8.0824025,20.356668 7.8000745,20.888131 7.4196084,20.888131 C 7.147638,20.888131 7.0654533,20.435078 7.0654533,18.935843 z M 19.125045,18.318771 C 19.029451,18.164098 19.307775,17.681012 19.743538,17.245249 C 20.450836,16.537951 20.577108,16.494217 20.920506,16.837615 C 21.51456,17.431671 20.894826,18.595368 19.982999,18.598012 C 19.606717,18.599103 19.220638,18.473446 19.125045,18.318771 z M 10.624775,12.099262 C 10.624775,11.055127 10.680057,10.945737 11.170844,11.018754 C 11.471182,11.063436 11.839176,11.295066 11.988606,11.533485 C 12.202359,11.874527 12.130671,12.10496 11.652459,12.613994 C 10.80205,13.519211 10.624775,13.430421 10.624775,12.099262 z M 17.404435,13.091522 C 17.054274,12.741359 17.248077,11.294037 17.699879,10.885162 C 18.524658,10.138747 19.014606,10.34624 19.014606,11.441947 C 19.014606,12.679274 18.015622,13.702706 17.404435,13.091522 z M 13.770337,6.2043829 C 13.692029,5.9605292 13.508261,5.4412385 13.361965,5.0504041 C 13.172007,4.542935 13.178821,4.1579557 13.385795,3.7036957 C 13.545199,3.3538405 13.675623,2.5758797 13.675623,1.974894 C 13.675623,0.89461274 14.216109,0.040673123 14.899857,0.040673123 C 15.38601,0.040673123 15.963759,1.7901781 15.963759,3.2623133 C 15.963759,4.886748 15.495766,5.9264664 14.575949,6.3455644 C 14.00738,6.6046213 13.892393,6.5844702 13.770337,6.2043829 z"
+ style="fill:url(#radialGradient3466);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient3463);fill-opacity:1"
+ d="M 10.19336,35.428641 C 9.1297941,34.877577 8.8397729,34.586134 8.7062957,33.93429 C 8.6150957,33.488912 8.6188279,32.997739 8.7145889,32.842794 C 8.8103525,32.687846 8.5928779,32.173227 8.2313144,31.699194 C 7.3449821,30.537151 7.3321863,29.003063 8.2002186,27.971465 C 8.7362118,27.33447 8.7851245,27.136326 8.5394601,26.597152 C 8.301883,26.075729 8.3555372,25.746954 8.8507534,24.689647 C 9.3817966,23.555848 9.4136195,23.314041 9.1336788,22.539875 C 8.9071813,21.913508 8.8937195,21.526595 9.0859229,21.167459 C 9.233139,20.892385 9.353589,20.336523 9.353589,19.932214 C 9.353589,19.103157 10.261816,18.091521 11.006131,18.091521 C 11.267767,18.091521 11.738152,18.332322 12.051433,18.626632 C 12.954809,19.475312 13.167148,19.047451 13.167148,16.378465 C 13.167148,12.771249 13.859132,11.410203 15.033408,12.707764 C 15.364448,13.073558 15.478895,13.892179 15.575457,16.584883 C 15.642779,18.462262 15.70761,20.198302 15.719526,20.442746 C 15.731442,20.687192 15.954891,21.001559 16.216077,21.141341 C 16.477262,21.281124 16.727551,21.641474 16.772274,21.942118 C 16.852061,22.478487 17.17448,22.748815 18.061217,23.022827 C 18.354319,23.113397 18.506132,23.418161 18.506132,23.915996 C 18.506132,24.331623 18.607575,24.734378 18.731561,24.811005 C 19.267293,25.142106 20.274995,22.964187 20.281964,21.460165 C 20.284893,20.827905 20.395931,20.633894 20.754863,20.633894 C 21.785282,20.633894 22.065454,21.401785 22.065454,24.225947 C 22.065454,25.690148 21.960184,26.996818 21.831523,27.129657 C 21.702858,27.262496 21.370845,28.021778 21.093708,28.816951 C 20.816574,29.612124 20.34981,30.520349 20.056453,30.835229 C 19.763099,31.15011 19.523081,31.609598 19.523081,31.856312 C 19.523081,32.629776 18.983056,33.532753 18.347233,33.822454 C 18.011017,33.975645 17.600935,34.397264 17.43594,34.759387 C 16.964277,35.794578 15.990695,36.144136 13.624689,36.127794 C 11.847713,36.115517 11.306027,36.005147 10.19336,35.428641 z M 7.0654533,18.935843 C 7.0654533,17.862084 7.2042694,16.599662 7.3739346,16.130462 C 7.7708957,15.032683 8.6738017,14.756367 9.421333,15.503899 C 9.9101475,15.992713 9.9251576,16.113049 9.6146602,17.053867 C 9.4295119,17.614869 9.009011,18.326601 8.6802135,18.63549 C 8.3514161,18.944378 8.0824025,19.396618 8.0824025,19.640469 C 8.0824025,20.356668 7.8000745,20.888131 7.4196084,20.888131 C 7.147638,20.888131 7.0654533,20.435078 7.0654533,18.935843 z M 19.125045,18.318771 C 19.029451,18.164098 19.307775,17.681012 19.743538,17.245249 C 20.450836,16.537951 20.577108,16.494217 20.920506,16.837615 C 21.51456,17.431671 20.894826,18.595368 19.982999,18.598012 C 19.606717,18.599103 19.220638,18.473446 19.125045,18.318771 z M 10.624775,12.099262 C 10.624775,11.055127 10.680057,10.945737 11.170844,11.018754 C 11.471182,11.063436 11.839176,11.295066 11.988606,11.533485 C 12.202359,11.874527 12.130671,12.10496 11.652459,12.613994 C 10.80205,13.519211 10.624775,13.430421 10.624775,12.099262 z M 17.404435,13.091522 C 17.054274,12.741359 17.248077,11.294037 17.699879,10.885162 C 18.524658,10.138747 19.014606,10.34624 19.014606,11.441947 C 19.014606,12.679274 18.015622,13.702706 17.404435,13.091522 z M 13.770337,6.2043829 C 13.692029,5.9605292 13.508261,5.4412385 13.361965,5.0504041 C 13.172007,4.542935 13.178821,4.1579557 13.385795,3.7036957 C 13.545199,3.3538405 13.675623,2.5758797 13.675623,1.974894 C 13.675623,0.89461274 14.216109,0.040673123 14.899857,0.040673123 C 15.38601,0.040673123 15.963759,1.7901781 15.963759,3.2623133 C 15.963759,4.886748 15.495766,5.9264664 14.575949,6.3455644 C 14.00738,6.6046213 13.892393,6.5844702 13.770337,6.2043829 z"
+ id="path3873" />
+ <svg:path
+ style="fill:#000000"
+ d="M 6.59375,0.375 C 6.6412104,1.2551385 6.8540572,1.2873653 7.59375,0.5 C 7.6357711,0.45527053 7.6516746,0.41569119 7.6875,0.375 L 6.59375,0.375 z M 9.75,0.375 C 9.62378,0.5126576 9.5004406,0.70827082 9.40625,0.96875 C 9.08061,1.869292 8.9692985,6.436954 9.28125,6.125 C 9.383223,6.023028 9.5760178,4.898099 9.71875,3.625 C 9.861484,2.351899 10.126018,1.2704209 10.28125,1.21875 C 10.667991,1.090012 10.859225,3.8835342 10.6875,7 L 10.5625,9.5 L 11.5625,10.53125 C 12.125501,11.094251 12.728707,11.5625 12.875,11.5625 C 13.37184,11.5625 13.9375,12.366126 13.9375,13.0625 C 13.9375,13.444036 14.082203,13.894703 14.25,14.0625 C 14.417797,14.230297 14.614002,14.34375 14.71875,14.34375 C 15.165572,14.34375 16.208739,12.608325 16.375,11.5625 C 16.540246,10.523056 16.512161,10.430601 16.125,10.75 C 15.892373,10.941908 15.71875,11.321633 15.71875,11.5625 C 15.71875,12.069095 14.877224,12.908472 14.625,12.65625 C 14.531476,12.562724 14.4375,12.150574 14.4375,11.75 C 14.4375,11.27823 14.288193,10.995304 14,10.90625 C 13.113263,10.632238 12.798537,10.348869 12.71875,9.8125 C 12.674027,9.511856 12.417435,9.1397827 12.15625,9 C 11.895064,8.860218 11.668166,8.5569457 11.65625,8.3125 C 11.644334,8.068056 11.567322,6.3461291 11.5,4.46875 C 11.403438,1.776046 11.29979,0.95954401 10.96875,0.59375 C 10.898715,0.51636248 10.81832,0.43214157 10.75,0.375 L 9.75,0.375 z M 13.1875,0.375 C 13.200134,0.6302813 13.235367,0.86036621 13.34375,0.96875 C 13.761265,1.3862626 14.350131,1.0301892 14.6875,0.375 L 13.1875,0.375 z M 4.21875,3 C 3.4027907,3.204793 2.9999999,4.4470149 3,6.8125 C 3,8.311735 3.0717795,8.7499997 3.34375,8.75 C 3.7242161,8.75 4.0312499,8.2161988 4.03125,7.5 C 4.03125,7.256149 4.3066739,6.7971608 4.65625,6.46875 C 5.0058263,6.140341 5.2812501,5.6845331 5.28125,5.4375 C 5.28125,5.190466 5.3914197,4.8989198 5.53125,4.8125 C 6.3573227,4.301959 5.232638,2.745531 4.21875,3 z M 4.75,3.96875 C 4.9161103,3.9777057 5.031966,4.0807918 5.03125,4.34375 C 5.030556,4.598707 4.7443627,5.1742578 4.40625,5.59375 C 3.883111,6.242805 3.7679424,6.2717209 3.625,5.90625 C 3.5326152,5.670038 3.6249466,5.17257 3.8125,4.78125 C 4.0634274,4.2577088 4.4731495,3.9538239 4.75,3.96875 z M 16.4375,4.5625 C 16.27266,4.6207369 16.038848,4.7814926 15.6875,5.125 C 15.246104,5.556545 14.96919,6.0365238 15.0625,6.1875 C 15.15581,6.338481 15.529968,6.4698409 15.90625,6.46875 C 16.804857,6.466145 17.455636,5.2993819 16.875,4.71875 C 16.712893,4.556643 16.60234,4.5042631 16.4375,4.5625 z M 7.125,6 C 6.2931715,5.9445992 5.2812501,6.7721173 5.28125,7.8125 C 5.28125,8.216809 5.1784659,8.7561763 5.03125,9.03125 C 4.8390466,9.390386 4.8360025,9.7798828 5.0625,10.40625 C 5.3424407,11.180416 5.3122934,11.428701 4.78125,12.5625 C 4.2860338,13.619807 4.2311729,13.947327 4.46875,14.46875 C 4.7144144,15.007924 4.6609933,15.206755 4.125,15.84375 C 3.2569677,16.875348 3.2699176,18.400457 4.15625,19.5625 C 4.5178135,20.036533 4.7520135,20.563801 4.65625,20.71875 C 4.560489,20.873695 4.5650499,21.367122 4.65625,21.8125 C 4.7897272,22.464344 5.0614339,22.761436 6.125,23.3125 C 7.237667,23.889006 7.785524,23.987723 9.5625,24 C 11.928506,24.016342 12.903337,23.660192 13.375,22.625 C 13.539995,22.262877 13.945034,21.84069 14.28125,21.6875 C 14.917073,21.397799 15.46875,20.492214 15.46875,19.71875 C 15.46875,19.472036 15.665672,19.041774 15.9375,18.75 C 16.504665,18.141221 17.249999,16.532709 17.25,15.875 C 17.25,15.629536 17.415254,15.299073 17.625,15.125 C 17.91988,14.880271 18.000001,14.198755 18,12.125 C 18,9.279978 17.719864,8.4999999 16.6875,8.5 C 16.319222,8.5 16.218751,8.6941736 16.21875,9.40625 C 16.21875,10.189016 16.291907,10.291725 16.71875,10.15625 C 17.128573,10.026177 17.234196,10.1557 17.375,10.90625 C 17.781312,13.072079 16.947448,15.840996 15.25,17.96875 C 14.756334,18.587559 14.538677,19.107396 14.625,19.4375 C 14.72485,19.819321 14.331179,20.362392 13.09375,21.59375 L 11.4375,23.25 L 9.53125,23.25 C 7.475332,23.25 5.9671954,22.787431 5.5625,22.03125 C 5.4272788,21.778589 5.3962542,21.114092 5.46875,20.5625 C 5.583889,19.686456 5.4981654,19.464763 4.8125,18.8125 C 4.3807721,18.401805 4.0312499,18.000693 4.03125,17.90625 C 4.03125,17.811809 4.3799662,17.293593 4.8125,16.75 C 5.5167552,15.864917 5.5774219,15.621426 5.4375,14.5625 C 5.2950432,13.484417 5.3433776,13.330552 5.96875,12.875 C 6.627965,12.394796 6.6248111,12.357987 6.28125,11.53125 C 5.7766775,10.317064 5.8155572,7.871946 6.34375,7.34375 C 6.907509,6.779992 7.3125002,7.0931556 7.3125,8.09375 C 7.3125,10.147552 8.8477339,10.276917 9.125,8.25 C 9.252917,7.3149 9.1870427,7.1467951 8.71875,6.96875 C 8.422274,6.856029 8.029915,6.5993109 7.84375,6.375 C 7.6471197,6.1380745 7.4022762,6.0184669 7.125,6 z M 11.625,11.9375 C 10.920727,11.9375 10.637486,12.874927 11.15625,13.5 C 11.544585,13.967916 12.128908,13.870516 12.5,13.28125 C 12.884715,12.670354 12.416593,11.9375 11.625,11.9375 z M 9.15625,13.59375 C 8.017508,13.59375 7.3376406,15.5754 8.28125,16.125 C 8.525954,16.267527 8.8564621,16.370749 9.03125,16.375 C 9.442288,16.384999 10.375,15.452059 10.375,15.03125 C 10.375,14.497739 9.5970411,13.59375 9.15625,13.59375 z M 8.6875,19.53125 C 7.9648794,19.658959 7.526087,20.441009 8.09375,21.125 C 8.28316,21.353229 8.7502825,21.451964 9.21875,21.40625 C 9.861693,21.343507 9.9967286,21.227585 10.0625,20.65625 C 10.125485,20.109139 9.9962523,19.896595 9.46875,19.65625 C 9.1866235,19.527704 8.9283735,19.48868 8.6875,19.53125 z"
+ id="path2983"
+ transform="translate(4.0654534,12.128338)" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3917"
+ d="M 13.820056,27.168097 C 13.820056,27.487618 13.342725,27.81504 13.048265,27.81504 C 12.753802,27.81504 12.458068,27.533017 12.458068,27.213497 C 12.458068,26.893974 12.867301,26.339556 13.161764,26.339556 C 13.456224,26.339556 13.820056,26.848574 13.820056,27.168097 z"
+ style="fill:#d40000" />
+ <svg:path
+ style="fill:#d40000"
+ d="M 13.676399,32.659539 C 13.676399,32.97906 13.346617,33.158933 13.052157,33.158933 C 12.757694,33.158933 12.39386,32.990409 12.39386,32.670889 C 12.39386,32.351366 12.734993,32.080694 13.029456,32.080694 C 13.323916,32.080694 13.676399,32.340016 13.676399,32.659539 z"
+ id="path3920"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3924"
+ d="M 16.169475,24.991757 C 16.169475,25.184408 16.019475,25.340764 15.834655,25.340764 C 15.649832,25.340764 15.454433,25.201432 15.454433,25.008781 C 15.454433,24.816128 15.576058,24.608698 15.76088,24.608698 C 15.945701,24.608698 16.169475,24.799104 16.169475,24.991757 z"
+ style="fill:#d40000" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/comets/mini_comet1.png b/data/images/comets/mini_comet1.png
new file mode 100644
index 0000000..ff51365
Binary files /dev/null and b/data/images/comets/mini_comet1.png differ
diff --git a/data/images/comets/mini_comet2.png b/data/images/comets/mini_comet2.png
new file mode 100644
index 0000000..9df8fe5
Binary files /dev/null and b/data/images/comets/mini_comet2.png differ
diff --git a/data/images/comets/mini_comet3.png b/data/images/comets/mini_comet3.png
new file mode 100644
index 0000000..d3e01ec
Binary files /dev/null and b/data/images/comets/mini_comet3.png differ
diff --git a/data/images/factoroids/Makefile.am b/data/images/factoroids/Makefile.am
new file mode 100644
index 0000000..4e3d3fb
--- /dev/null
+++ b/data/images/factoroids/Makefile.am
@@ -0,0 +1,24 @@
+## Makefile.am for tuxmath data/images/factoroids:
+## Process with AutoMake:
+
+cometsdir = $(pkgdatadir)/images/factoroids
+
+dist_comets_DATA = asteroid1.png \
+ galaxy2.png \
+ star1.jpg \
+ star4.png \
+ asteroid2.png \
+ gbstars.png \
+ star1.png \
+ star5.png \
+ asteroid3.png \
+ star2.png \
+ galaxy1.png \
+ ship01.png \
+ ship.png \
+ star3.png \
+ factoroids.png \
+ factors.png \
+ tux.png \
+ good.png
+
diff --git a/data/images/factoroids/asteroid1.png b/data/images/factoroids/asteroid1.png
new file mode 100644
index 0000000..3d2a905
Binary files /dev/null and b/data/images/factoroids/asteroid1.png differ
diff --git a/data/images/factoroids/asteroid2.png b/data/images/factoroids/asteroid2.png
new file mode 100644
index 0000000..fdee53d
Binary files /dev/null and b/data/images/factoroids/asteroid2.png differ
diff --git a/data/images/factoroids/asteroid3.png b/data/images/factoroids/asteroid3.png
new file mode 100644
index 0000000..f92de95
Binary files /dev/null and b/data/images/factoroids/asteroid3.png differ
diff --git a/data/images/factoroids/comp.svg b/data/images/factoroids/comp.svg
new file mode 100644
index 0000000..b936c29
--- /dev/null
+++ b/data/images/factoroids/comp.svg
@@ -0,0 +1,3612 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="210mm"
+ height="297mm"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="comp.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3311">
+ <stop
+ style="stop-color:#afafe9;stop-opacity:1;"
+ offset="0"
+ id="stop3313" />
+ <stop
+ style="stop-color:#afafe9;stop-opacity:0;"
+ offset="1"
+ id="stop3315" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3311"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ x1="164.7175"
+ y1="454.11005"
+ x2="586.10876"
+ y2="454.11005" />
+ <filter
+ inkscape:collect="always"
+ id="filter3903"
+ x="-0.053494652"
+ width="1.1069893"
+ y="-0.20492889"
+ height="1.4098578">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.3925743"
+ id="feGaussianBlur3905" />
+ </filter>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3193"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3195"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3179">
+ <stop
+ style="stop-color:#aaccff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <stop
+ style="stop-color:#aaccff;stop-opacity:0;"
+ offset="1"
+ id="stop3183" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3191"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85652"
+ cy="389.94933"
+ fx="388.85652"
+ fy="389.94933"
+ r="324.77004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85652"
+ cy="389.94933"
+ fx="388.85652"
+ fy="389.94933"
+ r="324.77004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85652"
+ cy="389.94933"
+ fx="388.85652"
+ fy="389.94933"
+ r="324.77004" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient3192"
+ cx="388.85652"
+ cy="389.94933"
+ fx="388.85652"
+ fy="389.94933"
+ r="324.77004"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse" />
+ <filter
+ inkscape:collect="always"
+ id="filter3393"
+ x="-0.022309087"
+ width="1.0446182"
+ y="-0.12573879"
+ height="1.2514776">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="10.949753"
+ id="feGaussianBlur3395" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2443"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2441"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2439"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2437"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient2433"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(170.28571,-190.57143)"
+ x1="102.82881"
+ y1="589.505"
+ x2="640.02832"
+ y2="589.505" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3194"
+ gradientUnits="userSpaceOnUse"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3190"
+ gradientUnits="userSpaceOnUse"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3186"
+ gradientUnits="userSpaceOnUse"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3182"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3171"
+ x1="102.82881"
+ y1="589.505"
+ x2="640.02832"
+ y2="589.505"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(170.28571,-190.57143)" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3176">
+ <stop
+ style="stop-color:#28170b;stop-opacity:1;"
+ offset="0"
+ id="stop3178" />
+ <stop
+ style="stop-color:#28170b;stop-opacity:0;"
+ offset="1"
+ id="stop3180" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3163">
+ <stop
+ style="stop-color:#a05a2c;stop-opacity:1;"
+ offset="0"
+ id="stop3165" />
+ <stop
+ style="stop-color:#a05a2c;stop-opacity:0;"
+ offset="1"
+ id="stop3167" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient2599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.1428571,-2)"
+ x1="102.82881"
+ y1="589.505"
+ x2="640.02832"
+ y2="589.505" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.3589371,-74.285714,-204.84129)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2332478,0,0,1,-116.08333,210.96801)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2605"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,156.27196,-84.58034)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2607"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,-91.615416,-280.51833)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient2609"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,-8.0137643,-80.294624)"
+ x1="248.63581"
+ y1="487.10846"
+ x2="334.72768"
+ y2="487.10846" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="27.64451"
+ inkscape:cy="381.45226"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1280"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Capa 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g2590"
+ transform="matrix(0.1898691,0,0,0.177722,171.86665,100.68367)">
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path2388"
+ d="M 317.8125,314.6875 C 282.87531,314.79434 252.54994,340.29645 238.1875,370.84375 C 222.05821,383.70653 197.42276,372.0935 182.4375,387.28125 C 166.95463,401.68231 168.2127,424.41414 165.10517,443.62981 C 158.03427,469.0544 145.26781,495.44989 153.05761,522.27065 C 158.16521,546.46846 170.77903,571.32553 162.51431,596.3084 C 151.17977,630.69026 124.42507,656.36421 101.76757,683.36817 C 93.9584,701.06333 105.89109,720.36331 119.73926,731.17266 C 134.08491,742.82035 155.67534,747.30589 163.33117,765.86585 C 170.93289,783.24793 175.55636,804.69151 193.70457,814.41601 C 212.80858,824.93714 234.96819,817.91038 254.67875,813.32604 C 271.89608,809.21468 290.6962,808.42247 306.91795,816.56419 C 341.16958,830.3948 369.97416,858.33434 407.95608,862.16227 C 446.71522,865.41061 486.2155,847.96216 511.36609,818.65999 C 520.15024,801.98961 509.94527,783.80476 508.8125,766.59375 C 506.17147,748.23441 512.95819,727.8898 529.34375,717.9375 C 547.35147,705.58017 570.24684,706.46365 590,698.8125 C 609.15379,689.75589 616.02772,668.25085 626.31572,651.36856 C 637.84901,630.09856 638.36389,604.92852 633.84188,581.66711 C 627.64494,549.82905 613.45105,520.37606 602.54678,490.02582 C 593.4162,468.08316 577.56572,448.80989 556.53826,437.37821 C 533.61447,423.79754 504.85413,416.73562 489.28125,393.40625 C 479.30111,379.11386 473.64284,360.74144 458.72874,350.60454 C 446.5086,344.73687 433.22422,350.87076 421.82455,355.40434 C 401.85737,356.5954 388.06909,339.63826 371.5884,331.33641 C 355.25831,321.90487 337.05895,313.96723 317.8125,314.6875 z"
+ style="fill:#28170b" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path2391"
+ d="M 320.20824,313.597 C 285.27105,313.70384 254.94568,339.20595 240.58324,369.75325 C 224.45395,382.61603 199.8185,371.003 184.83324,386.19075 C 169.35037,400.59181 170.60844,423.32364 167.50091,442.53931 C 160.43001,467.9639 147.66355,494.35939 155.45335,521.18015 C 160.56095,545.37796 173.17477,570.23503 164.91005,595.2179 C 153.57551,629.59976 126.82081,655.27371 104.16331,682.27767 C 96.35414,699.97283 108.28683,719.27281 122.135,730.08216 C 136.48065,741.72985 158.07108,746.21539 165.72691,764.77535 C 173.32863,782.15743 177.9521,803.60101 196.10031,813.32551 C 215.20432,823.84664 237.36393,816.81988 257.07449,812.23554 C 274.29182,808.12418 293.09194,807.33197 309.31369,815.47369 C 343.56532,829.3043 372.3699,857.24384 410.35182,861.07177 C 449.11096,864.32011 488.61124,846.87166 513.76183,817.56949 C 522.54598,800.89911 512.34101,782.71426 511.20824,765.50325 C 508.56721,747.14391 515.35393,726.7993 531.73949,716.847 C 549.74723,704.48967 572.64263,705.37315 592.39573,697.722 C 611.54953,688.66539 618.42343,667.16035 628.71143,650.27806 C 640.24473,629.00806 640.75963,603.83802 636.23763,580.57661 C 630.04073,548.73855 615.84683,519.28556 604.94253,488.93532 C 595.81193,466.99266 579.96143,447.71939 558.93403,436.28771 C 536.01021,422.70704 507.24987,415.64512 491.67699,392.31575 C 481.69685,378.02336 476.03858,359.65094 461.12448,349.51404 C 448.90434,343.64637 435.61996,349.78026 424.22029,354.31384 C 404.25311,355.5049 390.46483,338.54776 373.98414,330.24591 C 357.65405,320.81437 339.45469,312.87673 320.20824,313.597 z"
+ style="fill:url(#linearGradient2599);fill-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3173"
+ d="M 206.75447,397.61677 C 191.97602,399.18015 186.77959,421.96262 185.74333,438.83055 C 180.26739,449.87823 170.12844,462.97764 176.25447,477.28446 C 179.22701,488.4465 179.71487,505.05385 189.91072,508.62495 C 199.33643,504.20814 211.07782,504.13788 218.25447,514.86756 C 226.55543,521.15352 235.7611,509.20559 234.77331,497.53064 C 234.02423,488.04837 232.3849,476.44122 240.08515,471.09669 C 246.48291,462.77267 259.40764,461.25014 260.44197,447.0631 C 259.10991,433.42743 247.79214,428.11048 239.90481,422.65429 C 227.39015,417.74819 220.46512,397.34645 206.75447,397.61677 z"
+ style="fill:url(#linearGradient2601);fill-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3184"
+ d="M 232.94073,642.75893 C 225.3807,646.83494 226.27358,656.64317 218.27086,660.93549 C 209.36921,666.86701 202.53299,676.08316 206.08766,685.6745 C 208.87759,695.20849 209.53698,707.3331 198.17377,713.45529 C 188.68847,718.90538 176.70666,726.26328 179.52568,737.04018 C 181.99991,746.65706 196.54031,750.86303 206.73071,746.21437 C 221.04526,741.64387 236.67414,734.98533 252.21023,740.25893 C 266.63009,744.08242 281.60169,753.99641 297.30085,748.41518 C 307.80368,737.10651 283.95581,729.21188 281.5384,718.50893 C 275.91095,705.89598 299.03937,697.70892 291.73436,685.07826 C 286.29707,674.30978 267.6516,674.38606 262.97708,663.06853 C 256.6513,653.39646 247.58413,643.50189 232.94073,642.75893 z"
+ style="fill:url(#linearGradient2603);fill-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3188"
+ d="M 502.60058,460.0131 C 484.38895,461.42631 477.98533,482.02059 476.70834,497.26839 C 469.96028,507.25497 457.46596,519.09621 465.01512,532.0289 C 468.67821,542.11885 469.27941,557.13111 481.84386,560.35921 C 493.45925,556.36663 507.92829,556.30312 516.77214,566.00224 C 527.0015,571.68444 538.34574,560.88408 537.12847,550.33048 C 536.20538,541.75896 534.18521,531.26665 543.67431,526.43545 C 551.55833,518.91093 567.4856,517.53464 568.76022,504.71022 C 567.11871,492.38423 553.17171,487.57796 543.45207,482.64582 C 528.03013,478.21094 519.49635,459.76874 502.60058,460.0131 z"
+ style="fill:url(#linearGradient2605);fill-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3192"
+ d="M 443.1875,628.67857 C 415.72608,633.59504 398.4051,662.14726 398.5569,688.69331 C 395.22939,711.0735 381.6663,732.61863 387.15625,755.77232 C 393.07321,763.36741 405.12339,759.87353 411.76169,766.86524 C 415.16785,770.84584 420.15748,766.1045 424.57979,767.7284 C 433.13324,768.10509 440.26518,773.66556 446.53125,778.52232 C 457.34467,779.57116 463.82626,768.60949 473.52551,765.84022 C 488.74789,757.88725 503.63398,744.29536 504.09375,725.92857 C 504.89059,722.27213 507.31134,716.37258 510.78125,716.30357 C 510.39125,718.39604 513.39678,721.42276 512.27364,717.41416 C 509.07643,701.49805 522.31864,686.40518 517.09375,670.74107 C 509.45425,659.75895 494.59383,662.85259 483.23001,663.44607 C 472.78757,663.21409 463.14649,655.35395 461.71875,644.86607 C 458.59146,637.16878 452.86388,627.61948 443.1875,628.67857 z M 505.53125,718.83482 C 505.51945,719.06422 505.38588,718.8234 505.53125,718.83482 z M 519.125,761.77232 C 519.11217,762.00476 519.28498,761.54675 519.125,761.77232 z"
+ style="fill:url(#linearGradient2607);fill-opacity:1" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3196"
+ d="M 333.99554,465.58929 C 327.95955,473.3254 339.79077,484.73984 330.50169,491.29267 C 322.24476,501.68456 307.61891,509.94827 307.90085,524.79897 C 313.1423,537.57637 318.36045,551.69747 314.96894,565.54673 C 318.8326,574.56405 331.61676,573.70244 336.05804,582.15179 C 342.87423,583.72322 344.65674,574.52145 349.74554,571.87054 C 356.17015,566.24781 359.23194,557.82792 359.62054,549.58929 C 364.47717,540.80657 374.888,548.76527 375.62054,556.21429 C 380.19166,565.61454 396.25352,563.81768 397.43304,553.05804 C 401.67505,538.69836 394.64642,524.53516 386.87246,512.83319 C 381.68429,506.92073 388.95286,501.47477 393.24554,498.08929 C 389.94302,491.89814 381.31114,496.13421 377.02679,499.08929 C 372.34885,502.56952 370.1674,510.14706 364.21429,511.27679 C 357.02585,507.14645 358.1109,497.33671 354.75771,490.65183 C 351.50761,480.48014 345.72625,466.93129 333.99554,465.58929 z"
+ style="fill:url(#linearGradient2609);fill-opacity:1" />
+ </g>
+ <g
+ id="g3592"
+ transform="matrix(0.3841207,0,0,0.3342857,144.0712,543.47866)">
+ <rect
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ y="0.93361717"
+ x="2.1798271e-05"
+ height="1000"
+ width="1243.2861"
+ id="rect2383"
+ style="fill:#000000" />
+ <image
+ transform="scale(-1,-1)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image2394"
+ x="-676.42865"
+ y="-941.43365" />
+ <image
+ transform="scale(-1,1)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ width="180.57143"
+ height="204.28572"
+ id="image2407"
+ x="-906.71429"
+ y="18.076487" />
+ <image
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image2420"
+ x="201.64789"
+ y="-819.07147" />
+ <image
+ transform="matrix(0,-1,-1,0,0,0)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ width="66.285713"
+ height="91.428574"
+ id="image2433"
+ x="-487.64789"
+ y="-1171.4286" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ width="45"
+ height="45"
+ id="image2472"
+ x="870.35724"
+ y="315.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2498"
+ x="750.71429"
+ y="556.43365" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2511"
+ x="756.42865"
+ y="230.71933" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2524"
+ x="730.21429"
+ y="72.576485" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2537"
+ x="678.78571"
+ y="344.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2550"
+ x="913.57147"
+ y="425.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2563"
+ x="926.42865"
+ y="737.86224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2576"
+ x="1096.4286"
+ y="627.86218" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2589"
+ x="893.57147"
+ y="587.86218" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2602"
+ x="1145"
+ y="287.86215" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2615"
+ x="1049.2856"
+ y="877.86224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2628"
+ x="815.92865"
+ y="464.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2641"
+ x="641.64288"
+ y="632.57648" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2654"
+ x="684.50006"
+ y="481.14792" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2667"
+ x="693.07147"
+ y="201.14789" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2680"
+ x="904.50006"
+ y="26.862186" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2693"
+ x="1098.7856"
+ y="304.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2706"
+ x="1067.3571"
+ y="58.290745" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2719"
+ x="1200.2142"
+ y="796.86224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2732"
+ x="1015.9286"
+ y="532.57648" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2745"
+ x="1053.0714"
+ y="258.29074" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2758"
+ x="768.78571"
+ y="768.29077" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2771"
+ x="669.28571"
+ y="812.14795" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2784"
+ x="780.21429"
+ y="885.43365" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2797"
+ x="728.78571"
+ y="862.57648" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2810"
+ x="894.50006"
+ y="928.29077" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2823"
+ x="890.21429"
+ y="106.86219" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2836"
+ x="1030.2142"
+ y="246.86215" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2849"
+ x="1084.5"
+ y="435.43362" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2862"
+ x="1024.5"
+ y="332.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2875"
+ x="935.92865"
+ y="255.43362" />
+ <image
+ transform="scale(-1,1)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image2888"
+ x="-1230.7145"
+ y="631.86224" />
+ <image
+ transform="scale(-1,1)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image2901"
+ x="-792.14288"
+ y="603.29077" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2914"
+ x="615.92865"
+ y="209.71933" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2927"
+ x="759.28571"
+ y="313.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2940"
+ x="1156.4286"
+ y="245.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image2953"
+ x="1030.7142"
+ y="87.86219" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2966"
+ x="798.78571"
+ y="55.433598" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2979"
+ x="967.35724"
+ y="175.43359" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image2992"
+ x="910.21429"
+ y="55.433598" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3005"
+ x="849.28571"
+ y="932.14795" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3018"
+ x="764.50006"
+ y="12.576482" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3031"
+ x="1090.2142"
+ y="381.14792" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3044"
+ x="1173.0714"
+ y="586.86218" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3057"
+ x="1138.7856"
+ y="598.29077" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3070"
+ x="1038.7856"
+ y="389.71933" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3083"
+ x="964.50006"
+ y="281.14792" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3096"
+ x="675.92865"
+ y="18.290745" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3109"
+ x="680.21429"
+ y="742.57648" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3122"
+ x="764.50006"
+ y="181.14789" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3135"
+ x="835.92865"
+ y="38.290745" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3148"
+ x="1045"
+ y="299.29074" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3161"
+ x="899.28571"
+ y="473.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3174"
+ x="787.85724"
+ y="433.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3187"
+ x="982.14288"
+ y="430.71933" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3200"
+ x="676.42865"
+ y="313.57645" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3213"
+ x="1052.1428"
+ y="809.29077" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3226"
+ x="1187.8571"
+ y="125.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3239"
+ x="1042.1428"
+ y="690.71936" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3252"
+ x="1047.8571"
+ y="365.00504" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3265"
+ x="905.00006"
+ y="605.00507" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3278"
+ x="727.85724"
+ y="399.29074" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3304"
+ x="1029.6428"
+ y="659.71936" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.png"
+ width="35"
+ height="31"
+ id="image3317"
+ x="629.64288"
+ y="385.43362" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ width="45"
+ height="45"
+ id="image3330"
+ x="1083.2142"
+ y="765.57648" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3343"
+ x="962.71552"
+ y="819.90625" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3356"
+ x="1096.5555"
+ y="907.77936" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3369"
+ x="1208.6825"
+ y="883.53571" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3382"
+ x="1093.2158"
+ y="154.07597" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3395"
+ x="1050.0885"
+ y="937.07379" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3408"
+ x="763.90619"
+ y="685.4162" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3421"
+ x="886.6347"
+ y="681.36548" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star2.png"
+ width="77"
+ height="65"
+ id="image3434"
+ x="837.98236"
+ y="489.72073" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3447"
+ x="975.02814"
+ y="555.10657" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3460"
+ x="744.71332"
+ y="509.64963" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3473"
+ x="679.55341"
+ y="564.18774" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3486"
+ x="959.87579"
+ y="624.80707" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3499"
+ x="783.09906"
+ y="344.99478" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3512"
+ x="879.56354"
+ y="205.58359" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3525"
+ x="1021.4951"
+ y="179.32977" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3538"
+ x="1178.1904"
+ y="363.27902" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3551"
+ x="1161.3961"
+ y="158.10641" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3564"
+ x="1196.2515"
+ y="511.66995" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3577"
+ x="1151.2946"
+ y="683.38574" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3590"
+ x="1122.5103"
+ y="70.233284" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3603"
+ x="1125.5408"
+ y="35.888096" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3616"
+ x="1109.8783"
+ y="40.928715" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3629"
+ x="1092.2057"
+ y="78.314522" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3642"
+ x="1097.7565"
+ y="45.979465" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3655"
+ x="1112.9087"
+ y="104.56834" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3668"
+ x="1068.9722"
+ y="90.436348" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3681"
+ x="1078.0636"
+ y="51.040379" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3694"
+ x="1048.259"
+ y="64.162239" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3707"
+ x="1090.1854"
+ y="43.969334" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3720"
+ x="666.04327"
+ y="95.588631" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3733"
+ x="713.89862"
+ y="110.62926" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3746"
+ x="683.09393"
+ y="73.263741" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3759"
+ x="685.61432"
+ y="101.53788" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3772"
+ x="715.91888"
+ y="90.426186" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3785"
+ x="657.33002"
+ y="95.476936" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3798"
+ x="678.54327"
+ y="123.76123" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3811"
+ x="637.63715"
+ y="156.09625" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3824"
+ x="628.03558"
+ y="168.20795" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3837"
+ x="656.31989"
+ y="114.66986" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3850"
+ x="709.85797"
+ y="120.73078" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3863"
+ x="670.46198"
+ y="146.99472" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3876"
+ x="626.52545"
+ y="91.44651" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3889"
+ x="852.09869"
+ y="721.91125" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3902"
+ x="908.1673"
+ y="796.67273" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3915"
+ x="1022.3145"
+ y="716.87067" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3928"
+ x="1007.6622"
+ y="780.50012" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3941"
+ x="931.40082"
+ y="897.68799" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3954"
+ x="971.29669"
+ y="802.72351" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3967"
+ x="999.08099"
+ y="763.33771" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3980"
+ x="961.70538"
+ y="793.64227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3993"
+ x="705.81732"
+ y="532.87305" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image4006"
+ x="718.44928"
+ y="494.49734" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image4019"
+ x="732.08136"
+ y="540.95422" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image4032"
+ x="679.55341"
+ y="524.79181" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image4045"
+ x="706.32745"
+ y="517.7309" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image4058"
+ x="731.07111"
+ y="518.7309" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image4071"
+ x="718.94928"
+ y="522.77148" />
+ <image
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image4084"
+ x="703.29706"
+ y="508.6395" />
+ <image
+ transform="scale(1,-1)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image3531"
+ x="171.619"
+ y="-130.50082" />
+ <image
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ width="70.571426"
+ height="100"
+ id="image3533"
+ x="310.42938"
+ y="-343.76196" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="87.14286"
+ height="78.14286"
+ id="image3535"
+ x="200.19041"
+ y="435.21509" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy2.png"
+ width="170.57143"
+ height="182.85715"
+ id="image3537"
+ x="477.04761"
+ y="588.57227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ width="45"
+ height="45"
+ id="image3539"
+ x="296.9762"
+ y="544.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3541"
+ x="177.3333"
+ y="785.50085" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3543"
+ x="183.04759"
+ y="459.78653" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3545"
+ x="156.8333"
+ y="301.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3547"
+ x="105.40472"
+ y="573.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3549"
+ x="340.19043"
+ y="654.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3552"
+ x="291.61902"
+ y="28.357964" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3554"
+ x="523.04767"
+ y="856.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3556"
+ x="320.19043"
+ y="816.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3558"
+ x="571.61908"
+ y="516.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3560"
+ x="414.4762"
+ y="168.35796" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3562"
+ x="242.54759"
+ y="693.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3565"
+ x="68.261894"
+ y="861.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3567"
+ x="111.11901"
+ y="710.21515" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3569"
+ x="119.69042"
+ y="430.21509" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3571"
+ x="331.11902"
+ y="255.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3573"
+ x="525.40485"
+ y="533.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3575"
+ x="493.9762"
+ y="287.35794" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3578"
+ x="565.40485"
+ y="87.357964" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3580"
+ x="442.54761"
+ y="761.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3582"
+ x="479.69043"
+ y="487.35794" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3584"
+ x="133.97618"
+ y="58.786518" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3586"
+ x="34.476189"
+ y="102.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3588"
+ x="145.40471"
+ y="175.92937" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3591"
+ x="93.976189"
+ y="153.07222" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3593"
+ x="259.69043"
+ y="218.78651" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3595"
+ x="316.83337"
+ y="335.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3597"
+ x="456.83337"
+ y="475.92935" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3599"
+ x="511.11902"
+ y="664.50085" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3601"
+ x="451.11902"
+ y="561.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3604"
+ x="362.54761"
+ y="484.50082" />
+ <image
+ transform="matrix(0,-1,-1,0,0,0)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image3606"
+ x="-69.286522"
+ y="-565.69049" />
+ <image
+ transform="matrix(0,1,-1,0,0,0)"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/galaxy1.png"
+ width="50"
+ height="41"
+ id="image3608"
+ x="906.42938"
+ y="-79.976189" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3610"
+ x="42.5476"
+ y="438.78653" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3612"
+ x="185.90477"
+ y="542.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3614"
+ x="583.04767"
+ y="474.07224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3617"
+ x="457.33337"
+ y="316.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3619"
+ x="225.40477"
+ y="284.50079" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3621"
+ x="393.9762"
+ y="404.50079" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3623"
+ x="336.83337"
+ y="284.50079" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3625"
+ x="214.47618"
+ y="222.64366" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3627"
+ x="191.119"
+ y="241.64366" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3630"
+ x="516.83337"
+ y="610.21515" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3632"
+ x="599.69049"
+ y="815.92938" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3634"
+ x="565.40485"
+ y="827.35797" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3636"
+ x="465.40479"
+ y="618.78656" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3638"
+ x="391.11902"
+ y="510.21512" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3640"
+ x="102.5476"
+ y="247.35793" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3643"
+ x="45.404716"
+ y="33.072227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3645"
+ x="191.119"
+ y="410.21509" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3647"
+ x="262.54761"
+ y="267.35794" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3649"
+ x="471.61902"
+ y="528.35797" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3651"
+ x="325.90479"
+ y="702.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3653"
+ x="214.47618"
+ y="662.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3656"
+ x="408.76184"
+ y="659.78656" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3658"
+ x="103.0476"
+ y="542.64368" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3660"
+ x="417.33337"
+ y="99.786522" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3662"
+ x="614.47626"
+ y="354.07224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3664"
+ x="468.76196"
+ y="919.78656" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3666"
+ x="474.4762"
+ y="594.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3669"
+ x="331.61902"
+ y="834.07227" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3671"
+ x="154.47618"
+ y="628.35797" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3673"
+ x="456.26184"
+ y="888.78656" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.png"
+ width="35"
+ height="31"
+ id="image3675"
+ x="29.119038"
+ y="615.92944" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star5.png"
+ width="45"
+ height="45"
+ id="image3677"
+ x="448.40479"
+ y="56.072224" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3679"
+ x="327.90588"
+ y="110.40197" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3682"
+ x="461.74609"
+ y="198.27507" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3684"
+ x="573.87311"
+ y="174.03142" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3686"
+ x="519.83502"
+ y="383.14316" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3688"
+ x="415.27905"
+ y="227.5695" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3690"
+ x="190.52519"
+ y="914.4834" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3692"
+ x="313.25366"
+ y="910.43268" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star2.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star2.png"
+ width="77"
+ height="65"
+ id="image3695"
+ x="264.60132"
+ y="718.78796" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3697"
+ x="401.64709"
+ y="784.17377" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3699"
+ x="171.33232"
+ y="738.71686" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3701"
+ x="106.17236"
+ y="793.25494" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3703"
+ x="386.49475"
+ y="853.87427" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3705"
+ x="209.718"
+ y="574.06201" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3708"
+ x="306.18262"
+ y="434.65079" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3710"
+ x="448.11414"
+ y="408.39697" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3712"
+ x="604.80963"
+ y="592.34625" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3714"
+ x="588.0152"
+ y="387.17361" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3716"
+ x="622.87054"
+ y="740.73718" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3718"
+ x="577.91364"
+ y="912.45294" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3721"
+ x="549.12946"
+ y="299.30048" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3723"
+ x="552.15985"
+ y="264.95529" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3725"
+ x="536.49738"
+ y="269.99591" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3727"
+ x="518.82477"
+ y="307.38171" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3729"
+ x="524.37555"
+ y="275.04666" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3731"
+ x="539.52789"
+ y="333.63553" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3734"
+ x="495.59131"
+ y="319.50354" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3736"
+ x="504.68262"
+ y="280.10757" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3738"
+ x="474.87805"
+ y="293.22943" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3740"
+ x="516.80438"
+ y="273.03653" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star1.jpg"
+ width="35"
+ height="31"
+ id="image3742"
+ x="92.662224"
+ y="324.65582" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3744"
+ x="140.51756"
+ y="339.69644" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3747"
+ x="109.71294"
+ y="302.33093" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3749"
+ x="112.23327"
+ y="330.60507" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3751"
+ x="142.53783"
+ y="319.49338" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3753"
+ x="83.948967"
+ y="324.54413" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3755"
+ x="105.16222"
+ y="352.82843" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3757"
+ x="64.256096"
+ y="385.16345" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3760"
+ x="54.654594"
+ y="397.27515" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3762"
+ x="82.938835"
+ y="343.73706" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3764"
+ x="136.47691"
+ y="349.79797" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3766"
+ x="97.080986"
+ y="376.06192" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3768"
+ x="53.144402"
+ y="320.5137" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3770"
+ x="217.28917"
+ y="12.407004" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3773"
+ x="273.35767"
+ y="87.168449" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3775"
+ x="387.50488"
+ y="7.3664155" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3777"
+ x="372.85266"
+ y="70.995872" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3779"
+ x="296.59119"
+ y="188.1837" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3781"
+ x="336.48718"
+ y="93.219231" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3783"
+ x="364.27148"
+ y="53.833424" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3786"
+ x="326.89575"
+ y="84.137993" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3788"
+ x="132.43633"
+ y="761.94025" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3790"
+ x="145.06828"
+ y="723.56458" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3792"
+ x="158.7003"
+ y="770.02142" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3794"
+ x="106.17236"
+ y="753.85901" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3796"
+ x="132.94646"
+ y="746.7981" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3799"
+ x="157.69011"
+ y="747.7981" />
+ <image
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star3.png"
+ width="10"
+ height="9"
+ id="image3801"
+ x="145.56828"
+ y="751.83868" />
+ <image
+ inkscape:export-filename="/home/usuario/Imágenes/bg.png"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ xlink:href="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ sodipodi:absref="/home/usuario/Escritorio/carpeta sin tÃtulo/se va/star4.png"
+ width="11"
+ height="11"
+ id="image3803"
+ x="129.916"
+ y="737.70673" />
+ </g>
+ <g
+ id="g4771"
+ transform="matrix(0.298545,0,0,0.3090126,560.9169,269.73575)">
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ transform="translate(-954.28571,-8.5714283)"
+ id="g2400">
+ <path
+ style="fill:#28170b"
+ d="M 489.24107,126.11607 C 454.30388,126.22291 423.97851,151.72502 409.61607,182.27232 C 393.48678,195.1351 368.85133,183.52207 353.86607,198.70982 C 338.3832,213.11088 339.64127,235.84271 336.53374,255.05838 C 329.46284,280.48297 316.69638,306.87846 324.48618,333.69922 C 329.59378,357.89703 342.2076,382.7541 333.94288,407.73697 C 322.60834,442.11883 295.85364,467.79278 273.19614,494.79674 C 265.38697,512.4919 277.31966,531.79188 291.16783,542.60123 C 305.51348,554.24892 327.10391,558.73446 334.75974,577.29442 C 342.36146,594.6765 346.98493,616.12008 365.13314,625.84458 C 384.23715,636.36571 406.39676,629.33895 426.10732,624.75461 C 443.32465,620.64325 462.12477,619.85104 478.34652,627.99276 C 512.59815,641.82337 541.40273,669.76291 579.38465,673.59084 C 618.14379,676.83918 657.64407,659.39073 682.79466,630.08856 C 691.57881,613.41818 681.37384,595.23333 680.24107,578.02232 C 677.60004,559.66298 684.38676,539.31837 700.77232,529.36607 C 718.78004,517.00874 741.67541,517.89222 761.42857,510.24107 C 780.58236,501.18446 787.45629,479.67942 797.74429,462.79713 C 809.27758,441.52713 809.79246,416.35709 805.27045,393.09568 C 799.07351,361.25762 784.87962,331.80463 773.97535,301.45439 C 764.84477,279.51173 748.99429,260.23846 727.96683,248.80678 C 705.04304,235.22611 676.2827,228.16419 660.70982,204.83482 C 650.72968,190.54243 645.07141,172.17001 630.15731,162.03311 C 617.93717,156.16544 604.65279,162.29933 593.25312,166.83291 C 573.28594,168.02397 559.49766,151.06683 543.01697,142.76498 C 526.68688,133.33344 508.48752,125.3958 489.24107,126.11607 z"
+ id="path4828"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3171);fill-opacity:1"
+ d="M 491.63681,125.02557 C 456.69962,125.13241 426.37425,150.63452 412.01181,181.18182 C 395.88252,194.0446 371.24707,182.43157 356.26181,197.61932 C 340.77894,212.02038 342.03701,234.75221 338.92948,253.96788 C 331.85858,279.39247 319.09212,305.78796 326.88192,332.60872 C 331.98952,356.80653 344.60334,381.6636 336.33862,406.64647 C 325.00408,441.02833 298.24938,466.70228 275.59188,493.70624 C 267.78271,511.4014 279.7154,530.70138 293.56357,541.51073 C 307.90922,553.15842 329.49965,557.64396 337.15548,576.20392 C 344.7572,593.586 349.38067,615.02958 367.52888,624.75408 C 386.63289,635.27521 408.7925,628.24845 428.50306,623.66411 C 445.72039,619.55275 464.52051,618.76054 480.74226,626.90226 C 514.99389,640.73287 543.79847,668.67241 581.78039,672.50034 C 620.53953,675.74868 660.03981,658.30023 685.1904,628.99806 C 693.97455,612.32768 683.76958,594.14283 682.63681,576.93182 C 679.99578,558.57248 686.7825,538.22787 703.16806,528.27557 C 721.1758,515.91824 744.0712,516.80172 763.8243,509.15057 C 782.9781,500.09396 789.852,478.58892 800.14,461.70663 C 811.6733,440.43663 812.1882,415.26659 807.6662,392.00518 C 801.4693,360.16712 787.2754,330.71413 776.3711,300.36389 C 767.2405,278.42123 751.39,259.14796 730.3626,247.71628 C 707.43878,234.13561 678.67844,227.07369 663.10556,203.74432 C 653.12542,189.45193 647.46715,171.07951 632.55305,160.94261 C 620.33291,155.07494 607.04853,161.20883 595.64886,165.74241 C 575.68168,166.93347 561.8934,149.97633 545.41271,141.67448 C 529.08262,132.24294 510.88326,124.3053 491.63681,125.02557 z"
+ id="path4830"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3182);fill-opacity:1"
+ d="M 378.18304,209.04534 C 363.40459,210.60872 358.20816,233.39119 357.1719,250.25912 C 351.69596,261.3068 341.55701,274.40621 347.68304,288.71303 C 350.65558,299.87507 351.14344,316.48242 361.33929,320.05352 C 370.765,315.63671 382.50639,315.56645 389.68304,326.29613 C 397.984,332.58209 407.18967,320.63416 406.20188,308.95921 C 405.4528,299.47694 403.81347,287.86979 411.51372,282.52526 C 417.91148,274.20124 430.83621,272.67871 431.87054,258.49167 C 430.53848,244.856 419.22071,239.53905 411.33338,234.08286 C 398.81872,229.17676 391.89369,208.77502 378.18304,209.04534 z"
+ id="path4832"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3186);fill-opacity:1"
+ d="M 404.3693,454.1875 C 396.80927,458.26351 397.70215,468.07174 389.69943,472.36406 C 380.79778,478.29558 373.96156,487.51173 377.51623,497.10307 C 380.30616,506.63706 380.96555,518.76167 369.60234,524.88386 C 360.11704,530.33395 348.13523,537.69185 350.95425,548.46875 C 353.42848,558.08563 367.96888,562.2916 378.15928,557.64294 C 392.47383,553.07244 408.10271,546.4139 423.6388,551.6875 C 438.05866,555.51099 453.03026,565.42498 468.72942,559.84375 C 479.23225,548.53508 455.38438,540.64045 452.96697,529.9375 C 447.33952,517.32455 470.46794,509.13749 463.16293,496.50683 C 457.72564,485.73835 439.08017,485.81463 434.40565,474.4971 C 428.07987,464.82503 419.0127,454.93046 404.3693,454.1875 z"
+ id="path4834"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3190);fill-opacity:1"
+ d="M 674.02915,271.44167 C 655.81752,272.85488 649.4139,293.44916 648.13691,308.69696 C 641.38885,318.68354 628.89453,330.52478 636.44369,343.45747 C 640.10678,353.54742 640.70798,368.55968 653.27243,371.78778 C 664.88782,367.7952 679.35686,367.73169 688.20071,377.43081 C 698.43007,383.11301 709.77431,372.31265 708.55704,361.75905 C 707.63395,353.18753 705.61378,342.69522 715.10288,337.86402 C 722.9869,330.3395 738.91417,328.96321 740.18879,316.13879 C 738.54728,303.8128 724.60028,299.00653 714.88064,294.07439 C 699.4587,289.63951 690.92492,271.19731 674.02915,271.44167 z"
+ id="path4836"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3194);fill-opacity:1"
+ d="M 614.61607,440.10714 C 587.15465,445.02361 569.83367,473.57583 569.98547,500.12188 C 566.65796,522.50207 553.09487,544.0472 558.58482,567.20089 C 564.50178,574.79598 576.55196,571.3021 583.19026,578.29381 C 586.59642,582.27441 591.58605,577.53307 596.00836,579.15697 C 604.56181,579.53366 611.69375,585.09413 617.95982,589.95089 C 628.77324,590.99973 635.25483,580.03806 644.95408,577.26879 C 660.17646,569.31582 675.06255,555.72393 675.52232,537.35714 C 676.31916,533.7007 678.73991,527.80115 682.20982,527.73214 C 681.81982,529.82461 684.82535,532.85133 683.70221,528.84273 C 680.505,512.92662 693.74721,497.83375 688.52232,482.16964 C 680.88282,471.18752 666.0224,474.28116 654.65858,474.87464 C 644.21614,474.64266 634.57506,466.78252 633.14732,456.29464 C 630.02003,448.59735 624.29245,439.04805 614.61607,440.10714 z M 676.95982,530.26339 C 676.94802,530.49279 676.81445,530.25197 676.95982,530.26339 z M 690.55357,573.20089 C 690.54074,573.43333 690.71355,572.97532 690.55357,573.20089 z"
+ id="path4838"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient3198);fill-opacity:1"
+ d="M 505.42411,277.01786 C 499.38812,284.75397 511.21934,296.16841 501.93026,302.72124 C 493.67333,313.11313 479.04748,321.37684 479.32942,336.22754 C 484.57087,349.00494 489.78902,363.12604 486.39751,376.9753 C 490.26117,385.99262 503.04533,385.13101 507.48661,393.58036 C 514.3028,395.15179 516.08531,385.95002 521.17411,383.29911 C 527.59872,377.67638 530.66051,369.25649 531.04911,361.01786 C 535.90574,352.23514 546.31657,360.19384 547.04911,367.64286 C 551.62023,377.04311 567.68209,375.24625 568.86161,364.48661 C 573.10362,350.12693 566.07499,335.96373 558.30103,324.26176 C 553.11286,318.3493 560.38143,312.90334 564.67411,309.51786 C 561.37159,303.32671 552.73971,307.56278 548.45536,310.51786 C 543.77742,313.99809 541.59597,321.57563 535.64286,322.70536 C 528.45442,318.57502 529.53947,308.76528 526.18628,302.0804 C 522.93618,291.90871 517.15482,278.35986 505.42411,277.01786 z"
+ id="path4840"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </g>
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ transform="matrix(0.5181574,0,0,0.5212052,-1418.644,418.43744)"
+ id="g2417">
+ <path
+ style="fill:#28170b"
+ d="M 489.24107,126.11607 C 454.30388,126.22291 423.97851,151.72502 409.61607,182.27232 C 393.48678,195.1351 368.85133,183.52207 353.86607,198.70982 C 338.3832,213.11088 339.64127,235.84271 336.53374,255.05838 C 329.46284,280.48297 316.69638,306.87846 324.48618,333.69922 C 329.59378,357.89703 342.2076,382.7541 333.94288,407.73697 C 322.60834,442.11883 295.85364,467.79278 273.19614,494.79674 C 265.38697,512.4919 277.31966,531.79188 291.16783,542.60123 C 305.51348,554.24892 327.10391,558.73446 334.75974,577.29442 C 342.36146,594.6765 346.98493,616.12008 365.13314,625.84458 C 384.23715,636.36571 406.39676,629.33895 426.10732,624.75461 C 443.32465,620.64325 462.12477,619.85104 478.34652,627.99276 C 512.59815,641.82337 541.40273,669.76291 579.38465,673.59084 C 618.14379,676.83918 657.64407,659.39073 682.79466,630.08856 C 691.57881,613.41818 681.37384,595.23333 680.24107,578.02232 C 677.60004,559.66298 684.38676,539.31837 700.77232,529.36607 C 718.78004,517.00874 741.67541,517.89222 761.42857,510.24107 C 780.58236,501.18446 787.45629,479.67942 797.74429,462.79713 C 809.27758,441.52713 809.79246,416.35709 805.27045,393.09568 C 799.07351,361.25762 784.87962,331.80463 773.97535,301.45439 C 764.84477,279.51173 748.99429,260.23846 727.96683,248.80678 C 705.04304,235.22611 676.2827,228.16419 660.70982,204.83482 C 650.72968,190.54243 645.07141,172.17001 630.15731,162.03311 C 617.93717,156.16544 604.65279,162.29933 593.25312,166.83291 C 573.28594,168.02397 559.49766,151.06683 543.01697,142.76498 C 526.68688,133.33344 508.48752,125.3958 489.24107,126.11607 z"
+ id="path2419"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2433);fill-opacity:1"
+ d="M 491.63681,125.02557 C 456.69962,125.13241 426.37425,150.63452 412.01181,181.18182 C 395.88252,194.0446 371.24707,182.43157 356.26181,197.61932 C 340.77894,212.02038 342.03701,234.75221 338.92948,253.96788 C 331.85858,279.39247 319.09212,305.78796 326.88192,332.60872 C 331.98952,356.80653 344.60334,381.6636 336.33862,406.64647 C 325.00408,441.02833 298.24938,466.70228 275.59188,493.70624 C 267.78271,511.4014 279.7154,530.70138 293.56357,541.51073 C 307.90922,553.15842 329.49965,557.64396 337.15548,576.20392 C 344.7572,593.586 349.38067,615.02958 367.52888,624.75408 C 386.63289,635.27521 408.7925,628.24845 428.50306,623.66411 C 445.72039,619.55275 464.52051,618.76054 480.74226,626.90226 C 514.99389,640.73287 543.79847,668.67241 581.78039,672.50034 C 620.53953,675.74868 660.03981,658.30023 685.1904,628.99806 C 693.97455,612.32768 683.76958,594.14283 682.63681,576.93182 C 679.99578,558.57248 686.7825,538.22787 703.16806,528.27557 C 721.1758,515.91824 744.0712,516.80172 763.8243,509.15057 C 782.9781,500.09396 789.852,478.58892 800.14,461.70663 C 811.6733,440.43663 812.1882,415.26659 807.6662,392.00518 C 801.4693,360.16712 787.2754,330.71413 776.3711,300.36389 C 767.2405,278.42123 751.39,259.14796 730.3626,247.71628 C 707.43878,234.13561 678.67844,227.07369 663.10556,203.74432 C 653.12542,189.45193 647.46715,171.07951 632.55305,160.94261 C 620.33291,155.07494 607.04853,161.20883 595.64886,165.74241 C 575.68168,166.93347 561.8934,149.97633 545.41271,141.67448 C 529.08262,132.24294 510.88326,124.3053 491.63681,125.02557 z"
+ id="path2421"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2435);fill-opacity:1"
+ d="M 378.18304,209.04534 C 363.40459,210.60872 358.20816,233.39119 357.1719,250.25912 C 351.69596,261.3068 341.55701,274.40621 347.68304,288.71303 C 350.65558,299.87507 351.14344,316.48242 361.33929,320.05352 C 370.765,315.63671 382.50639,315.56645 389.68304,326.29613 C 397.984,332.58209 407.18967,320.63416 406.20188,308.95921 C 405.4528,299.47694 403.81347,287.86979 411.51372,282.52526 C 417.91148,274.20124 430.83621,272.67871 431.87054,258.49167 C 430.53848,244.856 419.22071,239.53905 411.33338,234.08286 C 398.81872,229.17676 391.89369,208.77502 378.18304,209.04534 z"
+ id="path2423"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2437);fill-opacity:1"
+ d="M 404.3693,454.1875 C 396.80927,458.26351 397.70215,468.07174 389.69943,472.36406 C 380.79778,478.29558 373.96156,487.51173 377.51623,497.10307 C 380.30616,506.63706 380.96555,518.76167 369.60234,524.88386 C 360.11704,530.33395 348.13523,537.69185 350.95425,548.46875 C 353.42848,558.08563 367.96888,562.2916 378.15928,557.64294 C 392.47383,553.07244 408.10271,546.4139 423.6388,551.6875 C 438.05866,555.51099 453.03026,565.42498 468.72942,559.84375 C 479.23225,548.53508 455.38438,540.64045 452.96697,529.9375 C 447.33952,517.32455 470.46794,509.13749 463.16293,496.50683 C 457.72564,485.73835 439.08017,485.81463 434.40565,474.4971 C 428.07987,464.82503 419.0127,454.93046 404.3693,454.1875 z"
+ id="path2425"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2439);fill-opacity:1"
+ d="M 674.02915,271.44167 C 655.81752,272.85488 649.4139,293.44916 648.13691,308.69696 C 641.38885,318.68354 628.89453,330.52478 636.44369,343.45747 C 640.10678,353.54742 640.70798,368.55968 653.27243,371.78778 C 664.88782,367.7952 679.35686,367.73169 688.20071,377.43081 C 698.43007,383.11301 709.77431,372.31265 708.55704,361.75905 C 707.63395,353.18753 705.61378,342.69522 715.10288,337.86402 C 722.9869,330.3395 738.91417,328.96321 740.18879,316.13879 C 738.54728,303.8128 724.60028,299.00653 714.88064,294.07439 C 699.4587,289.63951 690.92492,271.19731 674.02915,271.44167 z"
+ id="path2427"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2441);fill-opacity:1"
+ d="M 614.61607,440.10714 C 587.15465,445.02361 569.83367,473.57583 569.98547,500.12188 C 566.65796,522.50207 553.09487,544.0472 558.58482,567.20089 C 564.50178,574.79598 576.55196,571.3021 583.19026,578.29381 C 586.59642,582.27441 591.58605,577.53307 596.00836,579.15697 C 604.56181,579.53366 611.69375,585.09413 617.95982,589.95089 C 628.77324,590.99973 635.25483,580.03806 644.95408,577.26879 C 660.17646,569.31582 675.06255,555.72393 675.52232,537.35714 C 676.31916,533.7007 678.73991,527.80115 682.20982,527.73214 C 681.81982,529.82461 684.82535,532.85133 683.70221,528.84273 C 680.505,512.92662 693.74721,497.83375 688.52232,482.16964 C 680.88282,471.18752 666.0224,474.28116 654.65858,474.87464 C 644.21614,474.64266 634.57506,466.78252 633.14732,456.29464 C 630.02003,448.59735 624.29245,439.04805 614.61607,440.10714 z M 676.95982,530.26339 C 676.94802,530.49279 676.81445,530.25197 676.95982,530.26339 z M 690.55357,573.20089 C 690.54074,573.43333 690.71355,572.97532 690.55357,573.20089 z"
+ id="path2429"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ style="fill:url(#linearGradient2443);fill-opacity:1"
+ d="M 505.42411,277.01786 C 499.38812,284.75397 511.21934,296.16841 501.93026,302.72124 C 493.67333,313.11313 479.04748,321.37684 479.32942,336.22754 C 484.57087,349.00494 489.78902,363.12604 486.39751,376.9753 C 490.26117,385.99262 503.04533,385.13101 507.48661,393.58036 C 514.3028,395.15179 516.08531,385.95002 521.17411,383.29911 C 527.59872,377.67638 530.66051,369.25649 531.04911,361.01786 C 535.90574,352.23514 546.31657,360.19384 547.04911,367.64286 C 551.62023,377.04311 567.68209,375.24625 568.86161,364.48661 C 573.10362,350.12693 566.07499,335.96373 558.30103,324.26176 C 553.11286,318.3493 560.38143,312.90334 564.67411,309.51786 C 561.37159,303.32671 552.73971,307.56278 548.45536,310.51786 C 543.77742,313.99809 541.59597,321.57563 535.64286,322.70536 C 528.45442,318.57502 529.53947,308.76528 526.18628,302.0804 C 522.93618,291.90871 517.15482,278.35986 505.42411,277.01786 z"
+ id="path2431"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </g>
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ style="fill:#cccccc"
+ transform="matrix(0.9408807,-0.3387379,0.3387379,0.9408807,-190.19469,51.976429)"
+ id="g3467">
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3419"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion3421"><rect
+ id="rect3423"
+ width="285.71429"
+ height="237.14285"
+ x="-1240"
+ y="135.21933"
+ style="fill:#cccccc" /></flowRegion><flowPara
+ id="flowPara3425"
+ style="font-size:72px;text-align:center;text-anchor:middle;fill:#cccccc">5</flowPara><flowPara
+ id="flowPara3429"
+ style="font-size:72px;text-align:center;text-anchor:middle;fill:#cccccc">15</flowPara><flowPara
+ id="flowPara3427" /></flowRoot> <rect
+ style="fill:#cccccc;fill-opacity:1;stroke-width:12.39999962;stroke-miterlimit:11.69999695;stroke-dasharray:none"
+ id="rect3459"
+ width="68.571426"
+ height="5.7142859"
+ x="-1134.2858"
+ y="221.21933" />
+ </g>
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ style="filter:url(#filter3393)"
+ id="g2465">
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot2409"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ transform="translate(37.142857,294.28571)"><flowRegion
+ id="flowRegion2411"><rect
+ id="rect2413"
+ width="1240"
+ height="602.85712"
+ x="-1402.8572"
+ y="189.50504"
+ style="fill:#ffffff" /></flowRegion><flowPara
+ id="flowPara2415"
+ style="font-size:200px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Purisa;-inkscape-font-specification:Purisa Bold">Fractoroids</flowPara></flowRoot> </g>
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ transform="translate(-4.654906,-6.997388)"
+ id="g3397">
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3399"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ transform="translate(37.142857,294.28571)"><flowRegion
+ id="flowRegion3401"><rect
+ id="rect3403"
+ width="1240"
+ height="602.85712"
+ x="-1402.8572"
+ y="189.50504"
+ style="fill:#ffffff" /></flowRegion><flowPara
+ id="flowPara3405"
+ style="font-size:200px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Purisa;-inkscape-font-specification:Purisa Bold">Fractoroids</flowPara></flowRoot> </g>
+ <g
+ inkscape:export-ydpi="37.450562"
+ inkscape:export-xdpi="37.450562"
+ inkscape:export-filename="/home/usuario/Imágenes/factors.png"
+ style="fill:#cccccc"
+ transform="matrix(0.9924512,0.2733666,-0.2655561,0.9640954,24.59077,122.12833)"
+ id="g3461">
+ <text
+ xml:space="preserve"
+ style="font-size:120px;font-style:normal;font-weight:normal;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="-414.28571"
+ y="280.93362"
+ id="text3451"><tspan
+ sodipodi:role="line"
+ id="tspan3453"
+ x="-414.28571"
+ y="280.93362">1</tspan><tspan
+ sodipodi:role="line"
+ x="-414.28571"
+ y="430.93362"
+ id="tspan3455">3</tspan></text>
+ <rect
+ style="fill:#cccccc;fill-opacity:1;stroke-width:12.39999962;stroke-miterlimit:11.69999695;stroke-dasharray:none"
+ id="rect3457"
+ width="97.14286"
+ height="14.285714"
+ x="-422.85715"
+ y="303.79074" />
+ </g>
+ </g>
+ <g
+ id="g4925"
+ transform="matrix(0.1982098,0,0,0.2037799,487.91293,168.73538)">
+ <g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000080"
+ transform="translate(-420.28509,-323.30143)"
+ id="g2398">
+ <path
+ sodipodi:type="arc"
+ style="fill:#000080"
+ id="path2400"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000080"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2402" />
+ </g>
+ <g
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ style="fill:url(#radialGradient4950);fill-opacity:1"
+ transform="translate(-422.85715,-322.85714)"
+ id="g2394">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient4946);fill-opacity:1"
+ id="path2383"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:url(#radialGradient4948);fill-opacity:1"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path4961" />
+ </g>
+ </g>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3199"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#d7d7f4;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3903);font-family:Bitstream Vera Sans"
+ transform="translate(-2.4054081,503.0925)"
+ inkscape:export-filename="/home/usuario/goodtux.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><flowRegion
+ id="flowRegion3201"
+ style="fill:url(#linearGradient3321);fill-opacity:1"><rect
+ id="rect3203"
+ width="480"
+ height="148.57143"
+ x="151.42857"
+ y="395.21933"
+ style="fill:#d7d7f4;fill-opacity:1" /></flowRegion><flowPara
+ id="flowPara3205"
+ style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#d7d7f4;fill-opacity:1;font-family:Rasheeq;-inkscape-font-specification:Rasheeq Bold Italic">Good!</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot2385"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ inkscape:export-filename="/home/usuario/goodtux.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ transform="translate(-2.7065641,501.98322)"><flowRegion
+ id="flowRegion2387"><rect
+ id="rect2389"
+ width="480"
+ height="148.57143"
+ x="151.42857"
+ y="395.21933" /></flowRegion><flowPara
+ id="flowPara2391"
+ style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#ffffff;font-family:Rasheeq;-inkscape-font-specification:Rasheeq Bold Italic">Good!</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot2393"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#5599ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ transform="translate(0.4517359,505.94965)"
+ inkscape:export-filename="/home/usuario/goodtux.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><flowRegion
+ id="flowRegion2395"><rect
+ id="rect2397"
+ width="480"
+ height="148.57143"
+ x="151.42857"
+ y="395.21933"
+ style="fill:#5599ff" /></flowRegion><flowPara
+ id="flowPara2399"
+ style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#5599ff;font-family:Rasheeq;-inkscape-font-specification:Rasheeq Bold Italic">Good!</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot2401"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:url(#radialGradient3191);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ transform="translate(0.4517429,505.94965)"
+ inkscape:export-filename="/home/usuario/goodtux.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><flowRegion
+ id="flowRegion2403"
+ style="fill:url(#radialGradient3195);fill-opacity:1"><rect
+ id="rect2405"
+ width="480"
+ height="148.57143"
+ x="151.42857"
+ y="395.21933"
+ style="fill:url(#radialGradient3193);fill-opacity:1" /></flowRegion><flowPara
+ id="flowPara2407"
+ style="font-size:144px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;fill:url(#radialGradient3197);fill-opacity:1;font-family:Rasheeq;-inkscape-font-specification:Rasheeq Bold Italic">Good!</flowPara></flowRoot> </g>
+</svg>
diff --git a/data/images/factoroids/factoroids.png b/data/images/factoroids/factoroids.png
new file mode 100644
index 0000000..2373636
Binary files /dev/null and b/data/images/factoroids/factoroids.png differ
diff --git a/data/images/factoroids/factors.png b/data/images/factoroids/factors.png
new file mode 100644
index 0000000..6c36b5b
Binary files /dev/null and b/data/images/factoroids/factors.png differ
diff --git a/data/images/factoroids/galaxy1.png b/data/images/factoroids/galaxy1.png
new file mode 100644
index 0000000..11e0e98
Binary files /dev/null and b/data/images/factoroids/galaxy1.png differ
diff --git a/data/images/factoroids/galaxy2.png b/data/images/factoroids/galaxy2.png
new file mode 100644
index 0000000..2dd3904
Binary files /dev/null and b/data/images/factoroids/galaxy2.png differ
diff --git a/data/images/factoroids/gbstars.png b/data/images/factoroids/gbstars.png
new file mode 100644
index 0000000..46fe575
Binary files /dev/null and b/data/images/factoroids/gbstars.png differ
diff --git a/data/images/factoroids/good.png b/data/images/factoroids/good.png
new file mode 100644
index 0000000..3f56edb
Binary files /dev/null and b/data/images/factoroids/good.png differ
diff --git a/data/images/factoroids/ship.png b/data/images/factoroids/ship.png
new file mode 100644
index 0000000..75326ea
Binary files /dev/null and b/data/images/factoroids/ship.png differ
diff --git a/data/images/factoroids/ship01.png b/data/images/factoroids/ship01.png
new file mode 100644
index 0000000..3d93dd8
Binary files /dev/null and b/data/images/factoroids/ship01.png differ
diff --git a/data/images/factoroids/star1.jpg b/data/images/factoroids/star1.jpg
new file mode 100644
index 0000000..57eaa98
Binary files /dev/null and b/data/images/factoroids/star1.jpg differ
diff --git a/data/images/factoroids/star1.png b/data/images/factoroids/star1.png
new file mode 100644
index 0000000..40375fc
Binary files /dev/null and b/data/images/factoroids/star1.png differ
diff --git a/data/images/factoroids/star2.png b/data/images/factoroids/star2.png
new file mode 100644
index 0000000..ad55933
Binary files /dev/null and b/data/images/factoroids/star2.png differ
diff --git a/data/images/factoroids/star3.png b/data/images/factoroids/star3.png
new file mode 100644
index 0000000..af9782e
Binary files /dev/null and b/data/images/factoroids/star3.png differ
diff --git a/data/images/factoroids/star4.png b/data/images/factoroids/star4.png
new file mode 100644
index 0000000..d537055
Binary files /dev/null and b/data/images/factoroids/star4.png differ
diff --git a/data/images/factoroids/star5.png b/data/images/factoroids/star5.png
new file mode 100644
index 0000000..3043cb4
Binary files /dev/null and b/data/images/factoroids/star5.png differ
diff --git a/data/images/factoroids/tux.png b/data/images/factoroids/tux.png
new file mode 100644
index 0000000..56428ce
Binary files /dev/null and b/data/images/factoroids/tux.png differ
diff --git a/data/images/icons/Makefile.am b/data/images/icons/Makefile.am
new file mode 100644
index 0000000..c00808d
--- /dev/null
+++ b/data/images/icons/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath data/images/icons:
+## Process with AutoMake:
+
+iconsdir = $(pkgdatadir)/images/icons
+
+dist_icons_DATA = icon.png \
+ icon.xpm \
+ tuxmath.ico \
+ tuxmath.icns \
+ tuxmath.svg
diff --git a/data/images/icons/icon.png b/data/images/icons/icon.png
new file mode 100644
index 0000000..beb269d
Binary files /dev/null and b/data/images/icons/icon.png differ
diff --git a/data/images/icons/icon.xpm b/data/images/icons/icon.xpm
new file mode 100644
index 0000000..ec37c5e
--- /dev/null
+++ b/data/images/icons/icon.xpm
@@ -0,0 +1,294 @@
+/* XPM */
+static char * tuxmath_xpm[] = {
+"32 32 259 2",
+" c None",
+". c #151515",
+"+ c #2C2C2C",
+"@ c #343434",
+"# c #383838",
+"$ c #313131",
+"% c #222222",
+"& c #0E0E0E",
+"* c #212121",
+"= c #7A7A7A",
+"- c #C1C1C1",
+"; c #C3C3C3",
+"> c #A1A1A1",
+", c #393939",
+"' c #161616",
+") c #090909",
+"! c #515151",
+"~ c #D0D0D0",
+"{ c #E7E7E7",
+"] c #DFDFDF",
+"^ c #BDBDBD",
+"/ c #AEAEAE",
+"( c #868686",
+"_ c #1C1C1C",
+": c #030303",
+"< c #5C5C5C",
+"[ c #E1E1E1",
+"} c #FFFFFF",
+"| c #F4F4F4",
+"1 c #AFAFAF",
+"2 c #999999",
+"3 c #B6B6B6",
+"4 c #CACACA",
+"5 c #C2C2C2",
+"6 c #A3A3A3",
+"7 c #8B8B8B",
+"8 c #141414",
+"9 c #000000",
+"0 c #262626",
+"a c #F7F7F7",
+"b c #EAEAEA",
+"c c #D2D2D2",
+"d c #888888",
+"e c #FDFDFD",
+"f c #E9E9E9",
+"g c #9D9D9D",
+"h c #686868",
+"i c #010101",
+"j c #555555",
+"k c #C9C9C9",
+"l c #8D8D8D",
+"m c #444444",
+"n c #A9A9A9",
+"o c #E2E2E2",
+"p c #EEEEEE",
+"q c #6F6F6F",
+"r c #4F4F4F",
+"s c #CCCCCC",
+"t c #DDDDDD",
+"u c #292929",
+"v c #808080",
+"w c #575757",
+"x c #636363",
+"y c #353535",
+"z c #9F9F9F",
+"A c #BBBBBB",
+"B c #A8A8A8",
+"C c #A4A4A4",
+"D c #454545",
+"E c #121212",
+"F c #3B3B3B",
+"G c #DADADA",
+"H c #D3D38C",
+"I c #E3E33E",
+"J c #E9E826",
+"K c #EEDA23",
+"L c #EDCB3D",
+"M c #EBBD7B",
+"N c #A6A6A6",
+"O c #484848",
+"P c #2A2A2A",
+"Q c #363636",
+"R c #A7A7A7",
+"S c #BDBDA8",
+"T c #F5F51A",
+"U c #FFF200",
+"V c #FFDA00",
+"W c #FEC205",
+"X c #F3D7B6",
+"Y c #D5D5D5",
+"Z c #787878",
+"` c #1A1A1A",
+" . c #080808",
+".. c #EFEFEF",
+"+. c #FCFCFC",
+"@. c #F6F6D2",
+"#. c #FCE40C",
+"$. c #FFCE00",
+"%. c #F2C98E",
+"&. c #E6E6E6",
+"*. c #9C9C9C",
+"=. c #020202",
+"-. c #FAFAFA",
+";. c #DEDEDE",
+">. c #F0E6AE",
+",. c #F0CF65",
+"'. c #D7D7D7",
+"). c #CFCFCF",
+"!. c #050505",
+"~. c #0D0D0D",
+"{. c #F8F8F8",
+"]. c #969696",
+"^. c #F9F9F9",
+"/. c #F5F5F5",
+"(. c #C8C8C8",
+"_. c #C0C0C0",
+":. c #717171",
+"<. c #070707",
+"[. c #101010",
+"}. c #ACACAC",
+"|. c #939393",
+"1. c #C7C7C7",
+"2. c #EDEDED",
+"3. c #B9B9B9",
+"4. c #B4B4B4",
+"5. c #232323",
+"6. c #0F0F0F",
+"7. c #0C0C0C",
+"8. c #181818",
+"9. c #282828",
+"0. c #FEFEFE",
+"a. c #5D5D5D",
+"b. c #E5E5E5",
+"c. c #848484",
+"d. c #737373",
+"e. c #ADADAD",
+"f. c #8C8C8C",
+"g. c #060606",
+"h. c #818181",
+"i. c #D4D4D4",
+"j. c #CECECE",
+"k. c #B5B5B5",
+"l. c #9A9A9A",
+"m. c #A5A5A5",
+"n. c #040404",
+"o. c #BEBEBE",
+"p. c #919191",
+"q. c #C6C6C6",
+"r. c #BFBFBF",
+"s. c #ABABAB",
+"t. c #747474",
+"u. c #696969",
+"v. c #B7B7B7",
+"w. c #B3B3B3",
+"x. c #8F8F8F",
+"y. c #A0A0A0",
+"z. c #0A0A0A",
+"A. c #2F2F2F",
+"B. c #D8D8D8",
+"C. c #909090",
+"D. c #838383",
+"E. c #AAAAAA",
+"F. c #707070",
+"G. c #B8B8B8",
+"H. c #434343",
+"I. c #858585",
+"J. c #959595",
+"K. c #8E8E8E",
+"L. c #676767",
+"M. c #BABABA",
+"N. c #656565",
+"O. c #B0B0B0",
+"P. c #6B6B6B",
+"Q. c #BCBCBC",
+"R. c #B2B2B2",
+"S. c #F2F2F2",
+"T. c #D6D6D6",
+"U. c #7D7D7D",
+"V. c #929292",
+"W. c #E4E4E4",
+"X. c #D9D9D9",
+"Y. c #757575",
+"Z. c #9B9B9B",
+"`. c #8A8A8A",
+" + c #9E9E9E",
+".+ c #5A5A5A",
+"++ c #F9C66E",
+"@+ c #D5B479",
+"#+ c #D7B67E",
+"$+ c #D8B983",
+"%+ c #C2A984",
+"&+ c #B4B2B1",
+"*+ c #A19B92",
+"=+ c #C0A371",
+"-+ c #D5B67C",
+";+ c #D6B77C",
+">+ c #F5CE88",
+",+ c #FBCF80",
+"'+ c #F6BC59",
+")+ c #FFD68A",
+"!+ c #FFE6B4",
+"~+ c #FFE7B4",
+"{+ c #FFE8B4",
+"]+ c #FFE6B3",
+"^+ c #F4CC81",
+"/+ c #B5945B",
+"(+ c #B48E49",
+"_+ c #F7CC7A",
+":+ c #FFE1A2",
+"<+ c #FFE3A2",
+"[+ c #FFE4A2",
+"}+ c #FFD88B",
+"|+ c #F3A30F",
+"1+ c #FEC100",
+"2+ c #FFC814",
+"3+ c #FFCF22",
+"4+ c #FFD327",
+"5+ c #FFD527",
+"6+ c #FFD427",
+"7+ c #FFD227",
+"8+ c #FFCD21",
+"9+ c #FFC411",
+"0+ c #EFB70B",
+"a+ c #83817C",
+"b+ c #898989",
+"c+ c #757574",
+"d+ c #EDB70B",
+"e+ c #FFC607",
+"f+ c #FFCC10",
+"g+ c #FFD214",
+"h+ c #FFD416",
+"i+ c #FFD316",
+"j+ c #FFD114",
+"k+ c #FFCC11",
+"l+ c #FFC409",
+"m+ c #FFC300",
+"n+ c #FBD000",
+"o+ c #FFD700",
+"p+ c #FFDD00",
+"q+ c #FFE300",
+"r+ c #FFE600",
+"s+ c #FFE500",
+"t+ c #FFE000",
+"u+ c #FFD800",
+"v+ c #FFD300",
+"w+ c #FACA00",
+"x+ c #FEDB00",
+"y+ c #FFE900",
+"z+ c #FFE800",
+"A+ c #FFDB00",
+"B+ c #FACD00",
+"C+ c #FDE600",
+"D+ c #FEF800",
+"E+ c #FFF700",
+"F+ c #FFED00",
+"G+ c #FDE400",
+"H+ c #FFEC00",
+"I+ c #FEF400",
+"J+ c #FEEC00",
+" ",
+" ",
+" . + @ # $ % & ",
+" * = - ; ; ; ; ; > , ' ",
+" ) ! ~ { ] ^ / / / / / / ( _ ",
+" : < [ } } } | 1 2 2 3 4 5 6 7 8 ",
+" 9 0 1 } } } a b c d ] } } e f g h i ",
+" 9 j k } } a b l m n o } e p ] k q . ",
+" 9 9 r s } a b t < u v w e p ] ~ - x * 9 ",
+" 9 9 y z a b t ~ A B 2 | p ] ~ - C D E 9 ",
+" 9 9 9 8 F G t ~ H I J K L M ~ - N O P i 9 9 ",
+" 9 9 9 i . Q R ; S T U V W X Y Z * ` .9 9 9 ",
+" 9 9 9 9 9 Q ..+.} @.#.$.%.p &.] *.i 9 9 9 9 ",
+" 9 =.: : : 0 -.} a ;.} >.,...&.;.'.).z : : : : 9 ",
+" 9 !.) ) ) ~.p } {.].^.+./.p &.;.'.).(._.:.) ) =.<.9 ",
+" =.) [.[.[.[.}.} } |.l 1./.2.&.;.'.).1._.3.4.5.) 9 6.7.i ",
+" 9 =.<. .E 8.9.0.} 0.Z | a.2.b.;.'.s c.q d.6 e.f.& 7.: =.i 9 ",
+" g.* n } } } a.2.h.b.;.i.j.2 R k.l.# m.> 0 [. ",
+" n.u p } } ^.o.p.q.r.s.t.u.v.3.w.x.:.y.2 x z. ",
+" 9 A.} } B.2 C.|.z z 5 D.7 v.e.D.p.y.2 |.( !. ",
+" O } +.| 2.E.F.c.).G.}.k.E.H.I.x.f.|.J.K. ",
+" L.| | 2.b.;.M.u.1 _.3.w.}.l :.N.= p.O.P. ",
+" Q.R.S.&.;.T.U.O 3 3.w.}.N z 2 |.V./ y.D ",
+" l.q.W.X.A U.Y.Y.w.}.N z 2 |.Z./ n ! ",
+" `.r.Y ).^ e.w.}.N z +y.n s.6 .+ ",
+" ++ at +#+$+%+&+G.4.O./ n *+=+-+;+>+,+'+ ",
+" )+!+~+{+{+~+]+^+/+m.R *.(+_+:+<+[+[+<+:+}+|+ ",
+" 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+p+s+y+z+q+A+o+B+ ",
+" C+U D+E+F+G+ H+I+U J+ ",
+" ",
+" "};
diff --git a/data/images/icons/tuxmath.hqx b/data/images/icons/tuxmath.hqx
new file mode 100644
index 0000000..afdb99c
--- /dev/null
+++ b/data/images/icons/tuxmath.hqx
@@ -0,0 +1,240 @@
+(This file must be converted with BinHex 4.0)
+:"h4eH'eKG'J!9%9B9(4dH(3%!!!!!Y!!!#Q[ijP)EhFJG'mJGA0P)(4SDA-JD at 0
+[EMS+#P0dCA!J-6SJ3fp`H5"dD'8JD at 0[EL"dEb"dD'8JBfaTF'*[BA*N#Q%T)%0
+XD at 0V)'pZ)(4SDA-JCQPXC5"QFQpY)(4SC5"'D at jNCA)+BLNJ3fK[Eh0P)#G(CA3
+J5 at jQEbFJCR*[E5"dD'8J*dCTE'8R)'ePER8Z#Q-T)%PZ)(4SC5"TEQC[)(GTEQ4
+[Gb"dD'&d)("[F(-JGA!X)'0XD at 0V)'pZ)(4SC5"TBfpZ#Q3T)%0SEfpcC5!R3fp
+`H5FJCR*[E5"dD'8J*d9NDA3R)'ePER8Z#Q8T)%0XEh0P)(4SC5"TEQC[)(GTEQ4
+[G`S+8h4PF#!b1L"3BA0dC5"dD'8JD at 0[EL"dEb"dD'8JC'9cDA*PC#"TG'9Y#Q%
+T)%G[)(4[)(4SC5"TG'9Y)'PZ)(4SC5"'D at jNCA)JG'KKG#"jEh8JGf&ZG#"K)'0
+eFh4[E5"TBfpZ#Q)T)%0XD at 0V)(4SC5"TG'9Y)#KQD at aP,#"QEfaNCA)X)'4TFfX
+X)'9dBbNJ#Q)T)%0SEfpcC5!R4f9d)%PZCQmR)'CbEfdJG'KP)#G'D at aP*b"YC at j
+e,JTM+5"*EL"dD'8JD at jQEb"hD at jNEhFJG'KKG#"`Eh"c)(9`,#"ME'PMDb"[EL"
+dD'8JD at 0[EJTN+5"$D'p[Ff8J*e"KFh4P*b"QFQpY)(4SC5!R4 at 4TG#FJE at 9ZG5i
++C5NJ3fa[Ff8JG'KP)'PZCQmJGfPZC'ph#JT6G'9`)$-k)!T&EQT[H5"jEh9b)'j
+PGfaj)'0eFh4[E at PkC@3JD at 0[EL%+#NC[FL"YEh*P)(4SEh*[G at GS)'4TFQ9MG'P
+[ER-X)(0PC5""F("XC5Gc)(GPBR0TG'8JBA3k#QKdG(!k,bphGhFZBA"`E'8ZBfp
+Y,h0eF("[FR3[E@&M-6!a,f0eFh4[E at PkC5mf,`V6V!!!!3!!!#Pp!!!SI3!!!$)
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!#KjD at 0ZF`!!+(PTFc-b!!!#b!d!!!)"'Fhrr`!Xfb`h#i3!#!*CMC4X(KS'!B%
+!#`J!%VcrcU(!T$CJ*)-!#RMrq+Lhrr50!!!"JJ!CH2rJCBl`f)S%"J-!!J!"!"+
+KbIMjjRFF!!'#!!J$!,hrqIAS[aH!!4m!"382!*lbYIcMfXkd"!F&&3!'$Llr[DA
+Id+0lP&J$!i%!6hMrVU#mLEkLPRi!!!%!CIqZrZ at 3!-1eKff*NJ$r!0f9KCVHefk
+QUk5CU9dZ4FX!re[rXYDfXDbGZT[TZ[rBlr2fr[rqrl@,k2rrr[hrrr2eqS$q![h
+cri$p!rrmrrf#!!D*MC'-riJ!JHX0!!!#!4R0rrm!,0XX0`Z%!!J#@Bf8E"iD"J'
+"!!X)!"+mrmkK`+3fB#5$!!TirrLSYrrdM3!!!B)!'AMri'@4mYL+"!B$!!)!!3!
+5SFRfcG4i(!!"JJ!)!`#prr$9l,iAJ!%I!!8&$`#HmVApjGV1Y!3("48!"JiZrlf
+Php#MHj4B!`1"!&airkkJ[)QqSTCq!!!"!'ArV[lPN!$$YBGYLC)!r`#4S)qEhpK
+ZTUZMQkPI3%5B!,arikA,XV5XRkq6bAErPkDLVXrGemqFMl2 at hY6#rmHfYmA9hpr
+9aIr2h1(IcpE2JJ!'JSQ1M2q)!)'B$3!!!J%CcIrr!#cE,$F,K!!)!PQ0P'`H'JB
+"J3!,#!!5[2r1SF#N0Q!NJ`!+H2riT,6rp)d!!!'#!"Pirq&aQI2BLJ3'!`!#!!%
+!%D#j'!brH4`!!B)!#!-![2qHErLp&i!"(`!&"3m!R[+drq[CcV3%"`89!!B1,[q
+pTGl2ShZ8@!-$J3!mH2qZS,b*[U+ at IJ!!!3"PrklqjC!!`l@(EBQ5!2m!!EDMR1$
+DEU at XSTbUB@G#)`"9Y`#4ZE#lUkHHL(GSjA'!!!aDE at G2AjNX@Q"K+[mKNJ!'H)+
+(MIq(ri%!FcKYD`!!!3J!!!!!!J%!!!!!!!)!!!!!!!!!!J"%d2rrhPd!!`!!!!!
+!!J#+rrhlqrlrV`!$!!!!!3"GrrVrrrrrqrq,!!)!!!3!lrcrrrrrrrrlraF"!!!
+!3rrmrrrrrrrrrIpb!!%$!+Arr[rrrrrrrrrra!!$!*Rrr[rrrrrrrrrrr[qi!#U
+Rarrqrrrrrrrrrrr)9"S!!%,rr2rrrrrrrrlrF`!"!3B!l[crrrrrrrrkraJ"!!!
+"!)(rr[rrrrrqrii!!J!!!!)%h2rrqr[prq3d"J!!!3"Srr[qrrrrrrrrrHm!!`!
+!)VMUkVFC!&M+i-TU!!%!!!!!!!!!!J3!!!!!!!!!D@`c-J!!#1#-!!))%!+@!!I
+r!"K3AT0B-)!!!3B%N!!!"d8!'$Br3MXNJ!!#!`36M`!-%AqPe0VCflQ3!%8!'#1
+2!!j4eqMGZUUXVUbUXSF9!!5+!"%"!!"+p2lrrrQXQ*1ed-+ML4@,!!X,!#2"rrh
+rpqhJJq+!r`6YS'B!(BN!&!J!1GArrrEZQNUQkrhllGr$G``$#SJ!&!-!3p,rpqI
+L@#9b@[rVhp#lD5%!"BJ!%J%!(U[mkGh3YjarpHlJcm+L5!L-!"%411,Pd02MhY[
+Ykmc*TNJR!!',!!B"%61F`VliJ2m&mZ4U'"F(L3!!!i!!$`%!*YcrrrRlr[,[jZ4
+Q!!'+!"J#!`-"(r,rqr,rp22ZjGr5i(m!"!-#!!!"J`!!"S!*%a$IrrfPr[hdl1A
+IeXr%ce`$#`-&K!!D#K%3%!YYrrqMIFVhl1AHeY2+a, at m(3N!$`d"J3!D"!d0&4i
+4prcrF2K0mq$Ee-L8J)'QXAm'$33#K3!9#4@,r[cr at Zq0kpc8dDU8Q)FiUC`f&BF
+!'!)Fc2rqfTGP[EQpGhbrZVU0Gk at L6Jd"!`'&!"BjlIrJYVV(YUr%LjHjXik9TCH
+6I!%6!i3!&a%!22rlp21hGCV6YUZhTdb!HS at 8QiX!2B8!'"J!8Hrdl12Pe8qh`EU
+bU)PiF(k1[Pm!23+%!"Ir!*HVqH2EhAeBYlQbV+DKR*58XT%`Bc5'!"HUrjUilGU
+fJ at Pa[+ZQRjL6R,'Z4cGE!1D$!"VQrq5qYS#[dmfmZELXTk+HT+QQNccrl[rZjZD
+#!"[Qrr,rjIA+hGZrVEDcVUbTR-(@bZllmpEdjIIVJ3!$jrr[rB2r"[HVU+bIVIZ
+$r`6qmq2dki%!!Z[Rr)(r#rlqrIr`LBYSp2hprS,r!rlMrqZ"!!2pf[cqJrm'r[f
+0R at MirS2r"2liirEVJ3!Em2(rqrhpr[lpr[[rQ(9Pr2IqrIhqr2liqZ2fki%!"2$
+rrrVpJ2i5rIlkrrq5rrMer[lpr[hqpr`!pS3!#IJ!qIcqrIcl!2Z#!!Iir2[pq[d
+!ri%!M!!##"!#PJ!(r`!B8&k6@$#!!!%'"*!!!!G&!"Jf2d)l*)!!!J-%%im!$"&
+rTG6DfGZjN!"&!"JMM`!18GIShEUUV+kXUV+(&3!%LJ!4!3!!5[6qrrrjV*L6YG$
+#SiN9L`!,#`!M`IrprrIYi)2LJ2m%lD"Q!"f*!"3)!$R9rrrflTT+TZ[pqqhI`hF
+-!`U)!"3$!%25rrIRiPJPF9Vqkpr3ZfNK!!@)!")"!"kVr1RGd,HFJ2E`hmr#SNJ
+)M!!4%6MLjG$6ipc(d-,0b+C)*`!"L`!2!4%cR-+qq2IHZ-rRD4JA"iN!!!1!!!m
+"!#EFrrriim[4mqANCJ!"LJ!B!J-$!4rbrr[brqV3mHAIdZ"r!!3$!J!!!B-!!!D
+!#4-3hrrpTIlppHlPhpE2a-pF!`X$"B3!'JS4%"!,EIrrShh+pqcNhYE6bX5e["d
+*!!m0!B%!'J30$48H%IImrh$i6I2Jfp6)P)#"TV&r"Jd%!S8!&3N9LrlmreV[MH[
+Fe0'UP*L(1+QF0K@(!"J#(-crrYUACEfj[AGm[lUkMAHPSNi0!3-"K3!@1Hhri,D
+kalD[a)ZAZE11PD at ANh`"%`1%!"F4!$crqr6cYh at DdlDVYkG-J(U&P*Z,!$f&!"J
+B!&([p1cMjG92Ym'kXUL*H("qMVjI!$d#K!!Ar`#AUrRMfpep@,HjXUbQSCb8P,+
+4-'-dKJ!AU[qDZ1hDYS&TFEbVTTqBNjb`VNB[5`#)J`!DM[q"URL(XpM6`,LiV+H
+LRD5ZUjC!rk$rR)L6JJ!EM[qArjDfVF'dT+khXkkXUjLKY,(2b,*ET)ZZli%!"T(
+rPY6UkZf!ka(+NDZVSB[0jqERjH6PeU12UZq"!"ZJRlR&aFR,bmR&aV+#LQZe`F2
+(bX[*aF,!MmDFJ3!Elh[0cpMFhYrGfFr2KiKVa0(Ci12MiGh6aBr"QS%!'fZklH6
+GhqVThYlKlBpjCXREk0rKiprRhpD2`*k"!"TVrpVTj12Yl12QjYVrLrr$iqlRjqR
+RlqA3!-'%!!R+!-MCkHI9a!$1JJ!(YFc at fFqq!+U"!)`!!JJ3!TB!"rm!'&"HNeJ
+`J!!""J53!!!(43!B0Mp#1b5!!!)$""12!!`4IkA8fYREZC!!43!B)im!$P(Ak0f
+kUUbZV+UbKa8!")S!%3%!!%Vdr[rrqDbBNlA3`U1*&BX!#`X!)m(rrIrhlH#$iS$
+r"1fJCJ!GL3!8#!!jeIrrpZkD5UEVrI[Yhm0h$!-+L!!8!`"$d[rhjq&9)@eArZ[
+Id,YT)3!&L!!5!3!HUrcThG1qTBMmmpr2`U*)#)`!%4%iiZ6 at P&!L$e+(cmLQ5#F
+!!BX!$`%4-jc"T``!"!#Tk'NB&`H*!!!$J!!2!3!Qh2rre`N!NrRNj'B!!BS!'!)
+$!`%Im[rlmIqaA2cMhp,JI`!%!`)!!!'$!!!'J!N6%0rrrDAqr2Mcj0r at cm62A!-
+,!`@%!"S+%4!3#fhrrk0pb[IViYr at dmV%YE`G#3!2$3'"!"S%$3d9(K(hr2p`q%h
+ci0[8b*5!JDDaI`B0"!+&!"8*&B[qr2pDlihVh064UT5BKcLTR$B9K`!B!Kc-rrl
+DPf at pZEehI,qkZSehTD*1$3%$!B8!&MRYrq#fZXHfVm5,PlQcMT at PPj0m!4-$K!!
+A%3!mrr[dmlGeQY1fUlHR6)"kKC5EL`!pK3!B'!"4lr6XiqA96lI"ZV+SLAK`ISk
+qA`!p!S3!&rm!Pk[jip[GI9LhZE+XTU'FP*5bN6"M0)B!&kVrQEIXfV@!DA'mUkD
+IQ*+EX+j&)6-!%B3!'2m!I3f6ZYrGaVDhV+HLRD1eXja(raMr$4''!"Dm$8TjMQp
+iXVQcVUb[P at PiK*4Y3J!2#i8!&J'&[Vbp[,fpG'1`UU40EUkUUkUUVB31K3!A"3!
+H'4dI(adD)!4hKR)#%Ji2%"!2$4!$K3!!#iF!!hNfG`'3!!!"!3'"!!8"!!"DL at D
+E!!"YV!"X1'eV!!!%#!!!!!!!!!!!!!!!!!!$"JB'"J8"!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!%!!!!!!!!!!!!!!J!!!!!!!!!!!!!!!!!!!!!!!!!$!!9)VIMrrrh
+8A5!!"3!!!!!!!!!!!!!!!!!!!!!!!J"0e[rrqrVjq[rrmBN!!J!!!!!!!!!!!!!
+!!!!!!!-!K[rrrIlrrrrrr[hrrm`0"!!!!!!!!!!!!!!!!!!%!*Irqrrrrrrrrrr
+rrrrprpi!!`!!!!!!!!!!!!!!!3"Srr[rrrrrrrrrrrrrrrrqrm-*!3!!!!!!!!!
+!!!!!)IIprrrrrrrrrrrrrrrrrrrqreJ!!3!!!!!!!!!!"!#Srrlrrrrrrrrrrrr
+rrrrrrrrlq33%!!!!!!!!!!!$$IrkrrrrrrrrrrrrrrrrrrrrrrhpF`!"!!!!!!!
+!!J#3!2lqrrrrrrrrrrrrrrrrrrrrrrrr`3)"!!!!!!!!!J#irrrrrrrrrrrrrrr
+rrrrrrrrrrrre)`!!!!!!!!!$#HIrrrrrrrrrrrrrrrrrrrrrrrrrrIma"!!!!!!
+!"!#FrrlrrrrrrrrrrrrrrrrrrrrrrrrqrVd!"!!!!!3!R2rprrrrrrrrrrrrrrr
+rrrrrrrrrrrrqrm%#"3!$!*crr2rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrm`!!`#
+5rrhrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrp1ma)F!!#3U,M[Nrrrrrrrrrrrrrrr
+rrrrrrrrrrrhr0J!!!!!!!!!!!,2rrrrrrrrrrrrrrrrrrrrrrrrrrrBM!3)"!!!
+!!!)!N[lqrrrrrrrrrrrrrrrrrrrrrrrr`J)"!!!!!!!!!!)4rr[rrrrrrrrrrrr
+rrrrrrrrrrIYc!!%!!!!!!!!!"!#Vr[lrrrrrrrrrrrrrrrrrrrrir`3&!!!!!!!
+!!!!!!$rprIrrrrrrrrrrrrrrrrrrr[pL!!%!!!!!!!!!!!!""E[rr[rrrrrrrrr
+rrrrrrrrre!`#!!!!!!!!!!!!!!%,!-Rmr[rrrrrrrrrrrrrqr-N!!!)#!!!!!!!
+!!!!!!!"IR26qrrrrrrrrrrrrrrlqZk5*&!!"!!!!!!!!!3"Er[rrrrrrrrrpq2R
+jr2rrrrrrrrrrKJ!$!!!!!!!!+2rjq[hqr[lpr[rrrrrrrrhqr[lpqrEr&3%!!!!
+!!!!!NIrrrrrrrrrrJ!!(!'MZrrrrrrrrqT3!!`!!!!!!!!)!0h+qcFbpD$)!"`3
+(!"e*LkUVPP-T!!%!!!!!!!!!!!%!!!!!!!!!!!%!!!!"!!!!!!!!!!!"!!!!!!!
+!!!!!!!!""!3%"!%!!!!!!!!!!!)$!`-"!!!!!!!!D at Jc-J!!$V(dr`%!!+IrJ!!
+%!`S3#!'!!*rr"3!!"#TZYS(0"FU85a-$!*cr!`!%-Uq)[`0q%J-!QIm(!"+9`Y6
+Cal5'X31`A!X!P[m%!!!9T1+"r`(bXiHM!R-&!*Ar!`!5NqU#r`rhl+#9PCDkeHE
+C`TL9FJ-!Nrm$!!&qZS,r"[I[jXD'PHL"r`EiiTb'5`!!NIm%!!!HH1D"r`EhlqD
+rcBEMJIm(q1lNdS&e!J#4r`3!!$PXqi$r&2I[jSYA&+#[l[rrq1lNfY#9DKi!!)r
+rJ!!"5 at H!raAhlqEG6NF2GcaYrrMZj0V3aCeF-J!!Mrq!!"Jd6ZlrpqrQhG5Q9fD
+5G-RilZ6Dd- at lK8iKJ!#0ri%!'"T!`[I[jYh8c-1jV&Eeq1lNfY$&Zl&B3!U!!)h
+rJ3!A"M*4kqEGe-c2dYM,dFEdkpc3aEZaE6)XJJ#-ri)!"aNNGGV8c-2FJrm)qGR
+&Z*4**#33JJ#,ri-!#!%4&N+I`lZrkS(r"2hcmH9hJ"B!$B-!Lrq%!!J""dRer[h
+rq[D!r`I`mZ[QiE-4"B3!Lrq&!!&`rS,r#rEkrqrbkqEKh0I01)8!LIm"!!'$"!&
+4rS$r$qRhrrr[m2$VjH(Fep,0b#H#"!)"!!#(r`%!!S-)!66mJ2m4T-RrrrVdlZ[
+PiGc at dXh(`lN4J!J%"!-$!!#&r`%!!S3-!0U!ra[5I[hrq[6[kqAJh0E5cFI$[VQ
+C$!`+!!8-"3!!Jrm"!!1%%3"*J2mGqfDF5Z,dlqVPi0c at dFh(`VkjYE)l%3-!"a%
+4#!!!JIm&!!)2%"%8J4F!fS$r'mpCrj&ElqVPi0[@dFfjS*fcYE'XR4%(#!S$!`+
+!!!(rri3!!a-F(&#"raM3 at 2VS1qMPi0[@dF&b4eT6-dqTU+4&("`"J`#&r`3!#5)
+Lfi(r'0`bk,HLjH$EdXc,V,QpZE at S*AkNS)8L)!#,r`-!!bJXJ[mBqBeSZ16Jfl"
+D5'Lj[EQeXC!!8U1JQjJS'!#-r`)!+fL!raVSPhjjH(CdFBh,c-I#[EQeXC4YRjq
+EPj03$J#-r`)!(U1!raV2dH$9fpcBeG'lE&q&YE at RJC+NRjZANj0i!J#-ram!"YE
+rrrRdlq519i,3dFUVT+ffYApLSk1IQjH6N!#TH`#1rai(i2rjp1rUjH$EPLqmam+
+pZE@`E6Jk1$G1N!#3!*ZiA`#1radZT2[dlqVPi0ZlU&'U`VfjYE#XU+5IQC+3!*!
+!NE5S2C!!rab'f[6VjH$Ee(d5Jm+pZE@`V+LNRjZANj!!PV5e at c@3!2mEaS$Sl12
+EeY(-X6PXZE@`V+LNRjZANj!!RV5cKcZ5raUUMHALfp+H@'9iBV@`V+LNRjZANjH
+PXDkI2!#6raL*S0VAe-fqSV at eX+bST*qEQ*kTVUbUQ%8jP2mAcS5+bmc+am1qZE1
+ZUkUTUUbXUDHMLd9"NrmGhqheqHcPjq,,V+ffYE1`VDZTRTc&iZ[[r[lmqI,RMIm
+"j[U'r`Vpjk1NUkQQS*!!c[Z(r`(jjSVr!HEqLIm'mTZLSTq&e)Vr!IMVLIm!mi[
+r"ECpIRGKj)[r!1Z*r`(ZrSRr"[h[L)$rrr1+r`$fLrm"q2Z(r`(lmB2r![,mrS6
+r![lmpSrr"rRmrIlqr2clLIm'q[clrIhkqrrrPIrdr`%!!+IrJ!!%!`S3#!'!!*r
+r"3!!"#TZYS(0"FU85a-$!*cr!`!%-Uq)[`0q%J-!QIm(!"+9`Y6Cal5'X31`A!X
+!P[m%!!!9T1+"r`(bXiHM!R-&!*Ar!`!5NqU#r`rhl+#9PCDkeHEC`TL9FJ-!Nrm
+$!!&qZS,r"[I[jXD'PHL"r`EiiTb'5`!!NIm%!!!HH1D"r`EhlqDrcBEMJIm(q1l
+NdS&e!J#4r`3!!$PXqi$r&2I[jSYA&+#[l[rrq1lNfY#9DKi!!)rrJ!!"5 at H!raA
+hlqEG6NF2GcaYrrMZj0V3aCeF-J!!Mrq!!"Jd6ZlrpqrQhG5Q9fD5G-RilZ6Dd-@
+lK8iKJ!#0ri%!'"T!`[I[jYh8c-1jV&Eeq1lNfY$&Zl&B3!U!!)hrJ3!A"M*4kqE
+Ge-c2dYM*a,,IeGA3aEZaE6)XJJ#-ri)!&KNNGGV8c-2Er[ldj06%QG$&Z*4**#3
+3JJ#,ri-!%3%4&N+I`lZrkIcXh-b[hr(PGi!@!!f$!)[rK!!6!3G*pIlprrVYj06
+%c[,VjZ'c%3@%!)[rK3!"F2k#r`[dfmc*mZ[QiGcAc6L&!)Rr!3!"J`3"8Ik!r`r
+Tprrrjmh`kqAKh0I5cFJRJJ3#!3!!Krm"!!+$#!%dr)$r%D6*rrrkp1lVjH(FeY,
+0am1j%B!)"!3$!`!!KIm"!!+%$!$DJ2mEdRlprrVdlq[Pi0c at dXh(`lkjQ3`-#J!
+&$!8!!)2r!3!$K"%!5B$r(IYQR%VLp1rUjH$FeY(0am+qZE at b1a%$!!F4%3J!!)(
+r"3!#$a!4&)%A!0U!ra[2 at Iq4@qrUjH$EeY(0ZD#GXl at aV*d4"`J+!`-#J!!"rrq
+%!!-6("a3JImBd&Mkk$[SjH$EeY("FNGD8c02UDLN44`F!B-!KIm%!!NL)YZ"raM
+F-ZLhSZAJfp,-bkbj[EQeU#9qT+#&)L!!Lrm$!!-S,),r'2Q0D,MNi0Z`@NKSZEf
+jYE'3!&+MS*ZB+"J!M2m#!#YSJ2mDk*GqHAKfG('0bmc(`VfjYE'8ECqIQjH68!i
+!M2m#!"kMJ2mDcp(JeG[Ff0A4ZfaIKE at eTi'5T*qEPj16H!)!M2mI!!E at rrrjp1r
+NMPH#d0(+Uk5YYV9rBU1MRjZANj!!UAX!M[mH"q$rqI6[kZAJfjB[[-I#[EQeX'd
+i1MJh6T!!N!#EZ&m!M[mG,U6lp1rUjH$EZkK4UX+pZE@`V+LNRjQ5N!#3!*'dU$f
+3!2mFKYVdkqAJfp4p%S2#[EQeX+bST*qEPj13!*DdY9XeN!$r'mD!k1cMfpE4c,%
+jE,QeX+bST*qEPj13!*kdXiFlN[mDUShPiY[5RPKPH'+eX+bST*qEPj1ATE'ZRc`
+!NrmBLD$Dep60[U+eYE#XU+5IQjLHUDkXUTK&1C6r&mk%LX[-bXI$[VQcVUZUUDU
+XV+QRSiY&3C2r(BUMXm6(`,UYRU'YYV at cX+fVUCk3!*kb`-[JfXl!Xik0r`+1aqL
+!l3(ZlS$Y$11fMk5VUDDJLTRAjqH#k!6Rjq#fNiVr'C at ddYA@epIBf0IAeYA3UiU
+LSTq&QEh3dY28J08'e065dF5XLBRr)kr#[m2'bF[-c-[*am1raBepIRGJXEr!`mE
+*bmc,bXM&`Vr(RSRr)Uh3b-h5eGMCfYM at dXl*d+@)J2rrYY(-dGACfpcFfYI8cmr
+"Lrm0[0VMj1ARkZVSjqEMekU$r`beh1AVl1hYlZhYkH($M[m*c-VBhq[UfpA(J)M
+r"m(2dpc at dFLUrrq8rr6r!3!!Trq!!!3$#K!)!B!!Rrm&!!!%+QkfJFd&bT4,%`-
+!R2m$!!3bViLr!hi5!`#Cr`F!%TA#e0R(Y)Da!l"F#`#@r`3!!"@NiS(r!I+cKk-
+#F`8!PIm$!"+6kS,r$rIXS*@9PVV9jYR#Q*9b!`#6r`-!!AkkJ[m'pqrQaSD9k)(
+r"[MLR)C,!!#4r`3!!"jijS(r"[I[jVr0KZ1"r`IilZ65JA8#!*(r"!!!1 at clJ2m
+8pqrQLeF8S+rZrrrilZ6Dd*9U(J!!Mrq!!!&*Ci$r&II[jYe14`ph2'hrq1lNfY$
+&R9`b!!#2ri!!'$41l[rhlqEGe+CACT*dbIMZj0V3aEZ&6L'!!)hrJ3!B'N$#pqr
+QhG6-`lQX9[AilZ6Dd- at lX9K!#S!!MIq"!"F'-P(VjYh8c*Yj at 5FG0SURbp$&Zl&
+Y-Lb#!)crJJ!('54efY6-`e5$!!JEaF at iP%NN*"##!)[rJ`!)!4%@3Tr$ZlipJ3!
+%#mIajAH!&J!0J`#,ri3!%`%(5IAqrIr`+J!!!U2bkqEKXa%&K!#,ri8!!A$qJ[m
+,h"B!H2,VjZ(FemdiK3#*r`%!!B-%!9(qJ2m2kIIrrljCm1[PiGcAdXh)*i)%!J%
+!!)Ir!3!#J`J"02b!ra'NbIrrq[6ZkqAKh0E5cFI$Z4'!#!3%!`-!!)Ar!3!#K!`
+!fS$r'p*qrIrkp1rVjH$FeY,0am1qZCN-$!S!"3`&!!#$r`%!!i34!%Q!rahlCTa
++i[6[kZAJh0E4cFI#[VQeXMX4!`!(%4%)!!#"r`8!!Jm3%45"&`$DJ2mEceRrN9[
+[kZAJfpE4cEQJRE1eXDbG%3F)#J-$!S!!!IrrK!!$%a`F8)(r'0"BqZJlk1AJfpE
+4`A*(@P-c6kQST%8F(!'$!)Ar"!!*)L,EJImBh$,SYk,Pi0[5c-ZXZEfjYDJPIU5
+JK5)J!)[r!`!$+#b#raMjM at Lij1$EX&T)D,QpZE at aN!"5Sk#EQ#JB!)cr!J!VD)$
+r'ZLAIRPiGR4aMF[-am+pZE at aP'fIRjZANe!1!)cr!J!HSi$r'Xr4i0AEh0M9dEY
+XAi at eYDH"NU5IQjH6NhJ#!)cr(`!'e[rrqI6[j)jAJY$4bUZNVEDeIf+MSjqEPj1
+3!+Pl!)lr(JIJrrRdlqVPi0Z@,lc(`VfjYE"Y1$Si0dk3!*!!QlKI!)lr(5kNqr6
+[kZAJflZS8DV#[EQeX+bST*qCNT!!N!#4Y+JpN!$r()EDp1[Pi0[8I4+$`VfjYE#
+XU+5IQjH6N!#@Y,9E0C!!ra['J1MXip[@dFba1 at bjYE#XU+5IQjH6N!#HY,1(1j,
+r'UU0jH,EdTjBCAKLYE#XU+5IQjH6Pk at aVTmm!*2r')QJfYI8cEkLYE@`V+LNRjZ
+BRUQZV+UB46Q8raI1K)V,c-V(`lkjXkkVUUQUV+bTTk1,48'6rai!)8*QKAeV8&5
+2VEDeXl#YUkQHIeTFFBQQPRPE44!!M2m#!'QkKFX+X&j`T+ZTTU#"2*+'Z3+N3!#
++r`)!#'U(E3KL$'bLSTq&("Q)A!)c!!#*r`8!!!-*$!k"$`S0#`J#!#YpIRGI$B`
+!LIq0!!1)J2rrM!#,riX!Jrq+!)lrK`#)ri8!rrq8rfJiE at X!!!N)!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!""`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!$1NiHheq22Uc at X-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!*bl[hrrrrrrrrrrrrja4d!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!4HIqrrrrrrrrrrrrrrrrrrUK"`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!#!q[rrrrrrrrrrrrrrrrrrrrrrj48!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!E(mrrrrrrrrrrrrrrrrrrrrrrrrrr![!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!R[hrrrrrrrrrrrrrrrrrrrrrrrrrrrra'3!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!"[q[rrrrrrrrrrrrrrrrrrrrrrrrrrrrrri3J!!!!!!!!!!!!!!!!!!!!!!!!
+!!#Afrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrl8!!!!!!!!!!!!!!!!!!!!!!!!
+!!0(rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrJd!!!!!!!!!!!!!!!!!!!!!!!
+!9r[rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrD!!!!!!!!!!!!!!!!!!!!!!!
+!iIrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrl4`!!!!!!!!!!!!!!!!!!!!!
+[qIrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr``!!!!!!!!!!!!!!!!!!!!#
+drrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrp!X!!!!!!!!!!!!!!!!!!!$
+[rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrfF!!!!!!!!!!!!!!!!!!"[
+hrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrl%!!!!!!!!!!!!!!!!!!&r
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrq%!!!!!!!!!!!!!!!!!!-,
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr))!!!!!!!!!!!!!!!!TIc
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr9#3!!!!!!!!!!!!#Qr2r
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrf3X!!!!!!!!!!+Mmrrr
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrpd0!!!!!!!!UIcrrrr
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrJ$`!!!!#VrIrrrrr
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrlqIMlhK%!!#LQXVV!aqI
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)P(aN6$3-!!!!!!!!!!&V
+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrq!!!!!!!!!!!!!!!!!!!"(
+hrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrl%!!!!!!!!!!!!!!!!!!!$
+TrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrfS!!!!!!!!!!!!!!!!!!!#
+krrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrm`m!!!!!!!!!!!!!!!!!!!!
+eq[rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrra!!!!!!!!!!!!!!!!!!!!!!
+!frrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr43!!!!!!!!!!!!!!!!!!!!!
+!Arrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrk!!!!!!!!!!!!!!!!!!!!!!!
+!#rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmr!!!!!!!!!!!!!!!!!!!!!!!
+!!)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmF!!!!!!!!!!!!!!!!!!!!!!!!
+!!!$Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr!)!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!&qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrq2`!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!(rRrrrrrrrrrrrrrrrrrrrrrrrrrrrdV!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!$#JbY,mrrrrrrrrrrrrrrrrrrrrrrrrrr6ZjGUZ2`%!!!!!!!!!!!!!!!!!!!"
+4i2hrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrFid!!!!!!!!!!!!!!!!!&[
+arrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrH$3!!!!!!!!!!!!!!!-$
+rrrrrrrrrrrrrrrrrrrrrrrrpr[rrrrrrrrrrrrrrrrrZ-J!!!!!!!!!!!!!!!$[
+`rrrrrrrrrrrrrrrrk"m2'J!!EI,rrrrrrrrrrrrrrrbX!!!!!!!!!!!!!!!!!!!
+L`[2rrrrrrrrrrZqc%J!!!!!!!#Dhkrhrrrrrrrrbbe8!!!!!!!!!!!!!!!!!!!!
+!!!95PDDcXU at 54!)!!!!!!!!!!!!!!$&PJ)5#EN8'!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"!!!!+Ad
+!!#Kp!!!!-J!!!!!!!!!!!"`!-J!!D at 0ZF`!!!!UrZIrr!!!!!!!!!!#"BJ!!:
diff --git a/data/images/icons/tuxmath.icns b/data/images/icons/tuxmath.icns
new file mode 100644
index 0000000..c80bccd
Binary files /dev/null and b/data/images/icons/tuxmath.icns differ
diff --git a/data/images/icons/tuxmath.ico b/data/images/icons/tuxmath.ico
new file mode 100644
index 0000000..05b5ea1
Binary files /dev/null and b/data/images/icons/tuxmath.ico differ
diff --git a/data/images/icons/tuxmath.ico.old b/data/images/icons/tuxmath.ico.old
new file mode 100644
index 0000000..ccdcba4
Binary files /dev/null and b/data/images/icons/tuxmath.ico.old differ
diff --git a/data/images/icons/tuxmath.png b/data/images/icons/tuxmath.png
new file mode 100644
index 0000000..beb269d
Binary files /dev/null and b/data/images/icons/tuxmath.png differ
diff --git a/data/images/icons/tuxmath.svg b/data/images/icons/tuxmath.svg
new file mode 100644
index 0000000..ff3b3be
--- /dev/null
+++ b/data/images/icons/tuxmath.svg
@@ -0,0 +1,1066 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 10.0, SVG Export Plug-In . SVG Version: 3.0.0 Build 76) -->
+<svg
+ xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="132"
+ height="117"
+ viewBox="0.008 -0.291 132 117"
+ overflow="visible"
+ enable-background="new 0.008 -0.291 132 117"
+ xml:space="preserve"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tuxmath.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+ id="metadata283"><rdf:RDF><cc:Work
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
+ id="defs281"><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 58.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="132 : 58.5 : 1"
+ inkscape:persp3d-origin="66 : 39 : 1"
+ id="perspective285" />
+
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_1_"
+ id="linearGradient3151"
+ gradientUnits="userSpaceOnUse"
+ x1="33.455101"
+ y1="134.8"
+ x2="33.455101"
+ y2="79.492203" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient3153"
+ gradientUnits="userSpaceOnUse"
+ x1="34.128399"
+ y1="51.917999"
+ x2="34.128399"
+ y2="78.923302" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient3155"
+ gradientUnits="userSpaceOnUse"
+ x1="29.4014"
+ y1="90.037102"
+ x2="51.554901"
+ y2="112.191" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient3157"
+ gradientUnits="userSpaceOnUse"
+ x1="25.8179"
+ y1="86.409203"
+ x2="51.3773"
+ y2="112.146" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ x1="24.374001"
+ y1="66.755898"
+ x2="33.8414"
+ y2="76.223099" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient3161"
+ gradientUnits="userSpaceOnUse"
+ x1="40.188"
+ y1="67.644501"
+ x2="48.386002"
+ y2="75.842499" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_7_"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ x1="31.747999"
+ y1="73.683601"
+ x2="31.747999"
+ y2="68.590599" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_8_"
+ id="linearGradient3165"
+ gradientUnits="userSpaceOnUse"
+ x1="35.980999"
+ y1="72.686501"
+ x2="35.980999"
+ y2="69.1763" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_9_"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ x1="37.716801"
+ y1="78.847702"
+ x2="35.737"
+ y2="77.450104" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="linearGradient3169"
+ gradientUnits="userSpaceOnUse"
+ x1="37.429699"
+ y1="78.079102"
+ x2="31.775499"
+ y2="75.251999" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_11_"
+ id="linearGradient3171"
+ gradientUnits="userSpaceOnUse"
+ x1="33.480999"
+ y1="127.388"
+ x2="33.480999"
+ y2="105.1" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_12_"
+ id="linearGradient3173"
+ gradientUnits="userSpaceOnUse"
+ x1="33.829601"
+ y1="100.71"
+ x2="33.829601"
+ y2="110.822" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_13_"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4258"
+ y1="117.758"
+ x2="49.4258"
+ y2="105.512" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_14_"
+ id="linearGradient3177"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4263"
+ y1="109.792"
+ x2="49.4263"
+ y2="117.86" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_15_"
+ id="radialGradient3179"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9706,0,0,0.4062,0.2742,524.622)"
+ cx="50.122101"
+ cy="-1005.98"
+ fx="50.122101"
+ fy="-1005.98"
+ r="17.6775" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_16_"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4263"
+ y1="107.75"
+ x2="49.4263"
+ y2="112.283" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_17_"
+ id="linearGradient3183"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="118.006"
+ x2="20.0718"
+ y2="105.762" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_18_"
+ id="linearGradient3185"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="110.042"
+ x2="20.0718"
+ y2="118.111" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_19_"
+ id="radialGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9706,0,0,0.4062,0.2742,524.622)"
+ cx="19.8799"
+ cy="-1005.37"
+ fx="19.8799"
+ fy="-1005.37"
+ r="17.6759" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_20_"
+ id="linearGradient3189"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="107.999"
+ x2="20.0718"
+ y2="112.532" />
+
+
+ </defs><sodipodi:namedview
+ inkscape:window-height="480"
+ inkscape:window-width="640"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="1"
+ inkscape:cx="228.47932"
+ inkscape:cy="47.347533"
+ inkscape:current-layer="svg2"><inkscape:grid
+ type="xygrid"
+ id="grid3344" /></sodipodi:namedview>
+ <g
+ id="g9"
+ transform="matrix(1.8160959,0,0,1.8160959,4,-97.450562)">
+ <path
+ d="M 9.2,79.784 C 9.255,79.73 9.289,79.66 9.3,79.585 C 11.16,65.699 21.745,55.23 33.923,55.23 C 46.277,55.23 56.883,65.878 58.594,79.999 C 58.602,80.079 58.64,80.151 58.697,80.207 C 58.697,80.207 65.106,86.437 66.126,87.43 C 64.797,87.463 58.943,87.609 58.943,87.609 C 58.771,87.614 58.629,87.747 58.608,87.918 C 58.181,91.57 57.158,95.057 55.566,98.278 C 51.135,107.248 42.842,112.82 33.923,112.82 C 25.604,112.82 17.866,108.043 13.223,100.041 C 11.211,96.575 9.902,92.743 9.329,88.652 C 9.306,88.483 9.164,88.356 8.994,88.351 C 8.994,88.351 2.163,88.176 0.821,88.14 C 1.83,87.134 9.2,79.784 9.2,79.784 z"
+ id="path11" />
+ <linearGradient
+ id="XMLID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="33.455101"
+ y1="134.8"
+ x2="33.455101"
+ y2="79.492203">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,255)"
+ id="stop14" />
+ <stop
+ offset="0.2033"
+ style="stop-color:rgb(194,194,194)"
+ id="stop16" />
+ <stop
+ offset="0.494"
+ style="stop-color:rgb(112,112,112)"
+ id="stop18" />
+ <stop
+ offset="0.733"
+ style="stop-color:rgb(51,51,51)"
+ id="stop20" />
+ <stop
+ offset="0.9078"
+ style="stop-color:rgb(14,14,14)"
+ id="stop22" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(0,0,0)"
+ id="stop24" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.435"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <path
+ d="M 58.134,80.79 C 57.944,80.606 57.823,80.361 57.791,80.096 C 56.13,66.384 45.869,56.043 33.922,56.043 C 22.147,56.043 11.906,66.21 10.1,79.692 C 10.066,79.946 9.949,80.182 9.768,80.361 C 9.768,80.361 5.105,85.011 2.733,87.376 C 5.377,87.443 9.014,87.538 9.014,87.538 C 9.578,87.553 10.049,87.975 10.128,88.537 C 10.685,92.524 11.961,96.255 13.919,99.629 C 18.416,107.379 25.894,112.006 33.922,112.006 C 42.532,112.006 50.547,106.607 54.841,97.915 C 56.391,94.776 57.388,91.381 57.805,87.822 C 57.872,87.249 58.348,86.811 58.922,86.796 C 58.922,86.796 61.804,86.724 64.176,86.665 C 61.931,84.479 58.134,80.79 58.134,80.79 z"
+ style="fill:url(#linearGradient3151)"
+ id="path26" />
+ <linearGradient
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="34.128399"
+ y1="51.917999"
+ x2="34.128399"
+ y2="78.923302">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,255)"
+ id="stop29" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(0,0,0)"
+ id="stop31" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="screen"
+ d="M 52.363,69.489 C 52.363,76.967 44.198,83.027 34.127,83.027 C 24.057,83.027 15.893,76.966 15.893,69.489 C 15.893,62.012 24.057,55.952 34.127,55.952 C 44.199,55.952 52.363,62.013 52.363,69.489 z"
+ style="fill:url(#linearGradient3153)"
+ id="path33" />
+ <path
+ d="M 36.005,68.651 C 36.005,69.038 35.726,69.35 35.383,69.35 C 35.039,69.35 34.76,69.037 34.76,68.651 C 34.76,68.267 35.039,67.954 35.383,67.954 C 35.726,67.954 36.005,68.268 36.005,68.651 z"
+ style="fill:#ffffff"
+ id="path35" />
+ <linearGradient
+ id="XMLID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="29.4014"
+ y1="90.037102"
+ x2="51.554901"
+ y2="112.191">
+ <stop
+ offset="0.0056"
+ style="stop-color:rgb(255,255,255)"
+ id="stop38" />
+ <stop
+ offset="0.2355"
+ style="stop-color:rgb(223,223,223)"
+ id="stop40" />
+ <stop
+ offset="0.5725"
+ style="stop-color:rgb(182,182,182)"
+ id="stop42" />
+ <stop
+ offset="0.839"
+ style="stop-color:rgb(157,157,157)"
+ id="stop44" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(148,148,148)"
+ id="stop46" />
+ <a:midPointStop
+ offset="0.0056"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.4035"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#949494" />
+ </linearGradient>
+ <path
+ d="M 47.723,80.114 C 44.028,76.337 39.335,74.073 34.223,74.073 C 27.903,74.073 22.222,77.531 18.281,83.034 C 14.999,87.613 12.923,93.608 12.694,100.214 C 17.223,108.022 24.935,113.166 33.693,113.166 C 43.101,113.166 51.3,107.229 55.647,98.432 C 55.008,91.041 52.052,84.539 47.723,80.114 z"
+ style="fill:url(#linearGradient3155)"
+ id="path48" />
+ <linearGradient
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="25.8179"
+ y1="86.409203"
+ x2="51.3773"
+ y2="112.146">
+ <stop
+ offset="0.0056"
+ style="stop-color:rgb(255,255,255)"
+ id="stop51" />
+ <stop
+ offset="0.0486"
+ style="stop-color:rgb(247,247,247)"
+ id="stop53" />
+ <stop
+ offset="0.3721"
+ style="stop-color:rgb(191,191,191)"
+ id="stop55" />
+ <stop
+ offset="0.6499"
+ style="stop-color:rgb(150,150,150)"
+ id="stop57" />
+ <stop
+ offset="0.8682"
+ style="stop-color:rgb(124,124,124)"
+ id="stop59" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(115,115,115)"
+ id="stop61" />
+ <a:midPointStop
+ offset="0.0056"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.4035"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#737373" />
+ </linearGradient>
+ <path
+ d="M 47.723,80.114 C 44.028,76.337 39.335,74.073 34.223,74.073 C 27.903,74.073 22.222,77.531 18.281,83.034 C 14.999,87.613 12.923,93.608 12.694,100.214 C 17.223,108.022 24.935,113.166 33.693,113.166 C 43.101,113.166 51.3,107.229 55.647,98.432 C 55.008,91.041 52.052,84.539 47.723,80.114 z"
+ style="fill:url(#linearGradient3157)"
+ id="path63" />
+ <linearGradient
+ id="XMLID_5_"
+ gradientUnits="userSpaceOnUse"
+ x1="24.374001"
+ y1="66.755898"
+ x2="33.8414"
+ y2="76.223099">
+ <stop
+ offset="0.0337"
+ style="stop-color:rgb(255,255,255)"
+ id="stop66" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(148,148,148)"
+ id="stop68" />
+ <a:midPointStop
+ offset="0.0337"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#949494" />
+ </linearGradient>
+ <path
+ d="M 34.222,68.741 C 34.222,73.551 30.701,77.449 26.36,77.449 C 22.019,77.449 18.498,73.551 18.498,68.741 C 18.498,63.932 22.019,60.035 26.36,60.035 C 30.701,60.035 34.222,63.933 34.222,68.741 z"
+ style="fill:url(#linearGradient3159)"
+ id="path70" />
+ <linearGradient
+ id="XMLID_6_"
+ gradientUnits="userSpaceOnUse"
+ x1="40.188"
+ y1="67.644501"
+ x2="48.386002"
+ y2="75.842499">
+ <stop
+ offset="0.0337"
+ style="stop-color:rgb(255,255,255)"
+ id="stop73" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(148,148,148)"
+ id="stop75" />
+ <a:midPointStop
+ offset="0.0337"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#949494" />
+ </linearGradient>
+ <path
+ d="M 49.593,69.364 C 49.593,73.044 46.152,76.028 41.907,76.028 C 37.663,76.028 34.222,73.044 34.222,69.364 C 34.222,65.683 37.662,62.7 41.907,62.7 C 46.151,62.7 49.593,65.684 49.593,69.364 z"
+ style="fill:url(#linearGradient3161)"
+ id="path77" />
+ <linearGradient
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="31.747999"
+ y1="73.683601"
+ x2="31.747999"
+ y2="68.590599">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,255)"
+ id="stop80" />
+ <stop
+ offset="0.2033"
+ style="stop-color:rgb(194,194,194)"
+ id="stop82" />
+ <stop
+ offset="0.494"
+ style="stop-color:rgb(112,112,112)"
+ id="stop84" />
+ <stop
+ offset="0.733"
+ style="stop-color:rgb(51,51,51)"
+ id="stop86" />
+ <stop
+ offset="0.9078"
+ style="stop-color:rgb(14,14,14)"
+ id="stop88" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(0,0,0)"
+ id="stop90" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.435"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <path
+ d="M 34.045,69.009 C 34.045,70.432 33.016,71.585 31.748,71.585 C 30.48,71.585 29.451,70.432 29.451,69.009 C 29.451,67.585 30.48,66.432 31.748,66.432 C 33.016,66.432 34.045,67.585 34.045,69.009 z"
+ style="fill:url(#linearGradient3163)"
+ id="path92" />
+ <path
+ d="M 31.863,68.261 C 31.863,68.745 31.513,69.138 31.083,69.138 C 30.65,69.138 30.302,68.745 30.302,68.261 C 30.302,67.777 30.651,67.384 31.083,67.384 C 31.513,67.384 31.863,67.776 31.863,68.261 z"
+ style="fill:#ffffff"
+ id="path94" />
+ <linearGradient
+ id="XMLID_8_"
+ gradientUnits="userSpaceOnUse"
+ x1="35.980999"
+ y1="72.686501"
+ x2="35.980999"
+ y2="69.1763">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,255)"
+ id="stop97" />
+ <stop
+ offset="0.2033"
+ style="stop-color:rgb(194,194,194)"
+ id="stop99" />
+ <stop
+ offset="0.494"
+ style="stop-color:rgb(112,112,112)"
+ id="stop101" />
+ <stop
+ offset="0.733"
+ style="stop-color:rgb(51,51,51)"
+ id="stop103" />
+ <stop
+ offset="0.9078"
+ style="stop-color:rgb(14,14,14)"
+ id="stop105" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(0,0,0)"
+ id="stop107" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.435"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <path
+ d="M 37.564,69.465 C 37.564,70.444 36.855,71.24 35.981,71.24 C 35.107,71.24 34.398,70.444 34.398,69.465 C 34.398,68.484 35.107,67.689 35.981,67.689 C 36.855,67.688 37.564,68.483 37.564,69.465 z"
+ style="fill:url(#linearGradient3165)"
+ id="path109" />
+ <path
+ d="M 35.786,69.183 C 35.786,69.538 35.528,69.829 35.21,69.829 C 34.89,69.829 34.633,69.538 34.633,69.183 C 34.633,68.824 34.89,68.535 35.21,68.535 C 35.528,68.534 35.786,68.823 35.786,69.183 z"
+ style="fill:#ffffff"
+ id="path111" />
+ <linearGradient
+ id="XMLID_9_"
+ gradientUnits="userSpaceOnUse"
+ x1="37.716801"
+ y1="78.847702"
+ x2="35.737"
+ y2="77.450104">
+ <stop
+ offset="0.0337"
+ style="stop-color:rgb(255,255,255)"
+ id="stop114" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(128,128,128)"
+ id="stop116" />
+ <a:midPointStop
+ offset="0.0337"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#808080" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="multiply"
+ d="M 28.039,75.009 C 28.039,75.009 32.131,74.073 34.55,74.073 C 36.967,74.073 40.874,75.009 40.874,75.009 L 34.55,82.68 L 28.039,75.009 z"
+ style="opacity:0.4;fill:url(#linearGradient3167)"
+ id="path118" />
+ <linearGradient
+ id="XMLID_10_"
+ gradientUnits="userSpaceOnUse"
+ x1="37.429699"
+ y1="78.079102"
+ x2="31.775499"
+ y2="75.251999">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,139,0)"
+ id="stop121" />
+ <stop
+ offset="0.2022"
+ style="stop-color:rgb(255,194,0)"
+ id="stop123" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(255,255,0)"
+ id="stop125" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FF8B00" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FF8B00" />
+ <a:midPointStop
+ offset="0.2022"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFFF00" />
+ </linearGradient>
+ <path
+ d="M 27.508,74.111 C 27.508,74.111 31.565,73.183 33.962,73.183 C 36.357,73.183 40.23,74.111 40.23,74.111 L 33.962,81.713 L 27.508,74.111 z"
+ style="fill:url(#linearGradient3169)"
+ id="path127" />
+ <linearGradient
+ id="XMLID_11_"
+ gradientUnits="userSpaceOnUse"
+ x1="33.480999"
+ y1="127.388"
+ x2="33.480999"
+ y2="105.1">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,255)"
+ id="stop130" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(0,0,0)"
+ id="stop132" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#000000" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="screen"
+ d="M 58.923,86.796 C 58.349,86.812 57.873,87.249 57.806,87.822 C 57.389,91.381 56.392,94.776 54.842,97.915 C 50.548,106.606 42.532,112.006 33.923,112.006 C 25.895,112.006 18.417,107.379 13.92,99.629 C 11.962,96.255 10.686,92.525 10.129,88.537 C 10.05,87.974 9.579,87.553 9.015,87.538 C 9.015,87.538 5.377,87.443 2.734,87.376 C 5.106,85.012 9.769,80.361 9.769,80.361 C 9.95,80.182 10.067,79.946 10.101,79.692 C 11.908,66.21 22.148,56.043 33.923,56.043 C 45.869,56.043 56.131,66.384 57.792,80.096 C 57.824,80.362 57.944,80.607 58.135,80.79 C 58.135,80.79 61.931,84.479 64.177,86.665 C 61.805,86.724 58.923,86.796 58.923,86.796 z M 58.938,79.956 C 57.22,65.788 46.678,54.881 33.922,54.881 C 21.292,54.881 10.827,65.573 8.957,79.537 L 0,88.467 L 8.985,88.698 C 9.573,92.908 10.948,96.812 12.922,100.214 C 17.453,108.022 25.164,113.166 33.922,113.166 C 43.33,113.166 51.529,107.229 55.875,98.432 C 57.44,95.263 58.511,91.727 58.952,87.957 L 66.962,87.756 L 58.938,79.956 z"
+ style="fill:url(#linearGradient3171)"
+ id="path134" />
+ <linearGradient
+ id="XMLID_12_"
+ gradientUnits="userSpaceOnUse"
+ x1="33.829601"
+ y1="100.71"
+ x2="33.829601"
+ y2="110.822">
+ <stop
+ offset="0.0337"
+ style="stop-color:rgb(255,255,255)"
+ id="stop137" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(178,178,178)"
+ id="stop139" />
+ <a:midPointStop
+ offset="0.0337"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFFFFF" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#B2B2B2" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="multiply"
+ d="M 33.468,106.637 C 24.457,106.637 16.656,102.019 12.85,95.287 C 12.579,96.826 12.409,98.415 12.353,100.04 C 16.883,107.848 24.595,112.993 33.352,112.993 C 42.76,112.993 50.958,107.055 55.304,98.257 C 55.183,96.848 54.976,95.47 54.692,94.131 C 51.158,101.486 42.985,106.637 33.468,106.637 z"
+ style="opacity:0.4;fill:url(#linearGradient3173)"
+ id="path141" />
+ <g
+ id="g143">
+ <path
+ d="M 48.325,106.81 C 41.816,106.81 36.539,109.02 36.539,111.749 C 36.539,112.226 36.704,112.687 37.007,113.125 C 41.615,112.267 45.839,110.049 49.38,106.831 C 49.031,106.819 48.68,106.81 48.325,106.81 z"
+ style="opacity:0.2"
+ id="path145" />
+ <path
+ d="M 21.593,106.975 C 20.52,106.975 19.485,107.041 18.506,107.163 C 22.263,110.512 26.836,112.645 31.812,113.079 C 32.232,112.596 32.462,112.072 32.462,111.526 C 32.463,109.012 27.597,106.975 21.593,106.975 z"
+ style="opacity:0.2"
+ id="path147" />
+ <g
+ id="g149">
+ <linearGradient
+ id="XMLID_13_"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4258"
+ y1="117.758"
+ x2="49.4258"
+ y2="105.512">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,194,0)"
+ id="stop152" />
+ <stop
+ offset="0.1548"
+ style="stop-color:rgb(247,181,0)"
+ id="stop154" />
+ <stop
+ offset="0.716"
+ style="stop-color:rgb(222,136,0)"
+ id="stop156" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(212,119,0)"
+ id="stop158" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="0.4463"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#D47700" />
+ </linearGradient>
+ <path
+ d="M 37.949,111.906 C 37.949,114.554 43.097,116.711 49.425,116.711 C 55.755,116.711 60.903,114.555 60.903,111.906 C 60.903,109.259 55.755,107.101 49.425,107.101 C 43.097,107.102 37.949,109.259 37.949,111.906 z M 38.992,111.906 C 38.992,109.498 43.672,107.539 49.425,107.539 C 55.179,107.539 59.859,109.498 59.859,111.906 C 59.859,114.315 55.18,116.273 49.425,116.273 C 43.672,116.273 38.992,114.315 38.992,111.906 z"
+ style="fill:url(#linearGradient3175)"
+ id="path160" />
+ <linearGradient
+ id="XMLID_14_"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4263"
+ y1="109.792"
+ x2="49.4263"
+ y2="117.86">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,167,0)"
+ id="stop163" />
+ <stop
+ offset="0.691"
+ style="stop-color:rgb(255,255,0)"
+ id="stop165" />
+ <stop
+ offset="0.792"
+ style="stop-color:rgb(255,252,0)"
+ id="stop167" />
+ <stop
+ offset="0.8546"
+ style="stop-color:rgb(255,244,0)"
+ id="stop169" />
+ <stop
+ offset="0.9067"
+ style="stop-color:rgb(255,229,0)"
+ id="stop171" />
+ <stop
+ offset="0.953"
+ style="stop-color:rgb(255,209,0)"
+ id="stop173" />
+ <stop
+ offset="0.9952"
+ style="stop-color:rgb(255,183,0)"
+ id="stop175" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(255,179,0)"
+ id="stop177" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFA700" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFA700" />
+ <a:midPointStop
+ offset="0.691"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="0.7952"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFB300" />
+ </linearGradient>
+ <path
+ d="M 60.382,111.906 C 60.382,114.439 55.476,116.491 49.425,116.491 C 43.374,116.491 38.47,114.439 38.47,111.906 C 38.47,109.374 43.374,107.321 49.425,107.321 C 55.476,107.321 60.382,109.374 60.382,111.906 z"
+ style="fill:url(#linearGradient3177)"
+ id="path179" />
+ <radialGradient
+ id="XMLID_15_"
+ cx="50.122101"
+ cy="-1005.98"
+ r="17.6775"
+ fx="50.122101"
+ fy="-1005.98"
+ gradientTransform="matrix(0.9706,0,0,0.4062,0.2742,524.622)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,0)"
+ id="stop182" />
+ <stop
+ offset="0.1643"
+ style="stop-color:rgb(255,241,0)"
+ id="stop184" />
+ <stop
+ offset="0.7192"
+ style="stop-color:rgb(255,196,0)"
+ id="stop186" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(255,179,0)"
+ id="stop188" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="0.4463"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFB300" />
+ </radialGradient>
+ <path
+ d="M 59.397,112.671 C 59.397,114.576 54.933,116.121 49.425,116.121 C 43.918,116.121 39.454,114.576 39.454,112.671 C 39.454,110.767 43.918,109.222 49.425,109.222 C 54.933,109.222 59.397,110.767 59.397,112.671 z"
+ style="fill:url(#radialGradient3179)"
+ id="path190" />
+ <linearGradient
+ id="XMLID_16_"
+ gradientUnits="userSpaceOnUse"
+ x1="49.4263"
+ y1="107.75"
+ x2="49.4263"
+ y2="112.283">
+ <stop
+ offset="9.77011%"
+ style="stop-color:rgb(255,255,255)"
+ id="stop193" />
+ <stop
+ offset="100%"
+ style="stop-opacity:0;stop-color:rgb(255,255,255)"
+ id="stop195" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="screen"
+ d="M 58.592,110.335 C 58.592,111.863 54.488,113.105 49.425,113.105 C 44.363,113.105 40.26,111.864 40.26,110.335 C 40.26,108.806 44.363,107.567 49.425,107.567 C 54.488,107.567 58.592,108.807 58.592,110.335 z"
+ style="fill:url(#linearGradient3181)"
+ id="path197" />
+ </g>
+ <g
+ id="g199">
+ <linearGradient
+ id="XMLID_17_"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="118.006"
+ x2="20.0718"
+ y2="105.762">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,194,0)"
+ id="stop202" />
+ <stop
+ offset="0.1548"
+ style="stop-color:rgb(247,181,0)"
+ id="stop204" />
+ <stop
+ offset="0.716"
+ style="stop-color:rgb(222,136,0)"
+ id="stop206" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(212,119,0)"
+ id="stop208" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="0.4463"
+ style="stop-color:#FFC200" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#D47700" />
+ </linearGradient>
+ <path
+ d="M 8.595,112.155 C 8.595,114.805 13.743,116.96 20.072,116.96 C 26.401,116.96 31.55,114.806 31.55,112.155 C 31.55,109.508 26.401,107.352 20.072,107.352 C 13.743,107.352 8.595,109.508 8.595,112.155 z M 9.637,112.155 C 9.637,109.747 14.319,107.788 20.072,107.788 C 25.825,107.788 30.505,109.747 30.505,112.155 C 30.505,114.563 25.826,116.523 20.072,116.523 C 14.319,116.523 9.637,114.563 9.637,112.155 z"
+ style="fill:url(#linearGradient3183)"
+ id="path210" />
+ <linearGradient
+ id="XMLID_18_"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="110.042"
+ x2="20.0718"
+ y2="118.111">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,167,0)"
+ id="stop213" />
+ <stop
+ offset="0.691"
+ style="stop-color:rgb(255,255,0)"
+ id="stop215" />
+ <stop
+ offset="0.792"
+ style="stop-color:rgb(255,252,0)"
+ id="stop217" />
+ <stop
+ offset="0.8546"
+ style="stop-color:rgb(255,244,0)"
+ id="stop219" />
+ <stop
+ offset="0.9067"
+ style="stop-color:rgb(255,229,0)"
+ id="stop221" />
+ <stop
+ offset="0.953"
+ style="stop-color:rgb(255,209,0)"
+ id="stop223" />
+ <stop
+ offset="0.9952"
+ style="stop-color:rgb(255,183,0)"
+ id="stop225" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(255,179,0)"
+ id="stop227" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFA700" />
+ <a:midPointStop
+ offset="0.5"
+ style="stop-color:#FFA700" />
+ <a:midPointStop
+ offset="0.691"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="0.7952"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFB300" />
+ </linearGradient>
+ <path
+ d="M 31.028,112.155 C 31.028,114.689 26.123,116.743 20.072,116.743 C 14.02,116.743 9.116,114.689 9.116,112.155 C 9.116,109.624 14.02,107.571 20.072,107.571 C 26.123,107.571 31.028,109.624 31.028,112.155 z"
+ style="fill:url(#linearGradient3185)"
+ id="path229" />
+ <radialGradient
+ id="XMLID_19_"
+ cx="19.8799"
+ cy="-1005.37"
+ r="17.6759"
+ fx="19.8799"
+ fy="-1005.37"
+ gradientTransform="matrix(0.9706,0,0,0.4062,0.2742,524.622)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:rgb(255,255,0)"
+ id="stop232" />
+ <stop
+ offset="0.1643"
+ style="stop-color:rgb(255,241,0)"
+ id="stop234" />
+ <stop
+ offset="0.7192"
+ style="stop-color:rgb(255,196,0)"
+ id="stop236" />
+ <stop
+ offset="1"
+ style="stop-color:rgb(255,179,0)"
+ id="stop238" />
+ <a:midPointStop
+ offset="0"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="0.4463"
+ style="stop-color:#FFFF00" />
+ <a:midPointStop
+ offset="1"
+ style="stop-color:#FFB300" />
+ </radialGradient>
+ <path
+ d="M 30.043,112.92 C 30.043,114.826 25.579,116.371 20.072,116.371 C 14.565,116.371 10.101,114.826 10.101,112.92 C 10.101,111.017 14.565,109.472 20.072,109.472 C 25.579,109.472 30.043,111.017 30.043,112.92 z"
+ style="fill:url(#radialGradient3187)"
+ id="path240" />
+ <linearGradient
+ id="XMLID_20_"
+ gradientUnits="userSpaceOnUse"
+ x1="20.0718"
+ y1="107.999"
+ x2="20.0718"
+ y2="112.532">
+ <stop
+ offset="10.9195%"
+ style="stop-color:rgb(255,255,255)"
+ id="stop243" />
+ <stop
+ offset="100%"
+ style="stop-opacity:0;stop-color:rgb(255,255,255)"
+ id="stop245" />
+ </linearGradient>
+ <path
+ a:adobe-blending-mode="screen"
+ d="M 29.238,110.584 C 29.238,112.113 25.134,113.354 20.071,113.354 C 15.008,113.354 10.904,112.114 10.904,110.584 C 10.904,109.056 15.008,107.816 20.071,107.816 C 25.134,107.816 29.238,109.056 29.238,110.584 z"
+ style="fill:url(#linearGradient3189)"
+ id="path247" />
+ </g>
+ </g>
+ <path
+ d="M 58.257,80.14 L 53.519,87.286 L 58.257,87.112 L 58.257,80.14 z"
+ id="path249" />
+ </g>
+<path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3924"
+ d="M 40.671773,71.969328 C 41.905218,71.721478 43.175578,71.644648 44.430337,71.540077 C 49.503727,71.190685 54.589443,71.088307 59.671561,70.942659 C 60.394015,70.92064 61.116464,70.89862 61.838919,70.8766 L 60.293152,72.003846 C 59.597102,72.006908 58.901046,72.00997 58.204991,72.013033 C 53.053005,72.087429 47.892547,72.22499 42.765899,72.774464 C 41.414487,72.926847 40.069232,73.111331 38.737341,73.374778 L 40.671773,71.969328 z" /><path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3926"
+ d="M 52.815851,50.979956 C 54.821217,49.894393 53.496851,50.730117 51.923357,52.171788 C 50.02155,54.051911 48.58631,56.268364 47.629107,58.754935 C 46.817087,60.955697 46.933511,63.048757 47.685679,65.228416 C 48.410358,66.873548 49.450395,68.012472 51.314534,67.94777 C 53.395432,67.264213 53.522501,67.31769 54.519303,64.27802 C 54.79471,61.862169 53.449064,59.998139 51.628786,58.584205 C 50.142422,57.559139 48.514138,58.877454 51.634307,57.1384 C 51.594158,57.174169 51.554015,57.209938 51.513866,57.245708 L 49.348738,58.172845 C 49.381578,58.115814 49.414423,58.058783 49.447269,58.001752 C 51.394219,56.87295 51.79475,56.16538 53.498758,57.413207 C 55.279892,58.963418 56.651812,60.904927 56.42918,63.376821 C 55.481142,66.546441 52.725321,68.499748 49.533241,69.243282 C 47.578641,69.198887 46.543314,68.010138 45.792111,66.272859 C 45.039932,64.033484 44.883722,61.906425 45.71301,59.645332 C 46.649245,57.137419 48.093593,54.919453 49.948061,52.982734 C 51.372513,51.61022 52.892375,50.293902 54.750283,49.574509 L 52.815851,50.979956 z" /><path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3930"
+ d="M 45.008,76.709 C 45.575863,75.448548 47.18433,74.971249 48.489669,75.020739 C 51.206549,75.445819 53.678762,76.936342 55.873172,78.530129 C 57.573627,79.764681 58.699592,81.645968 56.764485,83.161233 C 54.269386,84.859362 52.277905,84.816796 49.54122,84.214141 C 46.931962,83.437396 51.046583,82.793361 52.330942,83.453739 C 54.337409,84.524245 56.266252,85.759772 57.959421,87.282863 C 59.112812,88.416829 59.495297,89.605091 58.144429,90.683019 C 54.925763,92.772111 51.778458,92.038852 48.252872,91.344084 C 47.870966,91.255688 47.489048,91.167298 47.107142,91.078908 L 48.863193,89.866925 C 49.22875,89.963186 49.594308,90.059447 49.959865,90.155708 C 51.653766,90.514643 58.904366,90.353917 56.064031,91.50703 C 57.456057,90.587269 57.173028,89.589736 56.092734,88.436027 C 54.463117,86.865932 52.555958,85.618232 50.506782,84.66011 C 48.176983,83.657129 50.079273,82.54543 51.383454,82.938913 C 52.685342,83.258136 56.996027,82.798173 54.711802,83.969865 C 56.741638,82.709721 55.72577,80.856415 54.128674,79.636085 C 51.945182,78.017675 49.450509,76.544675 46.681063,76.341558 C 44.510334,76.527214 45.456255,76.919982 47.138478,75.623468 L 45.008,76.709 z" /><path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3932"
+ d="M 63.353509,69.117757 C 64.069614,68.334202 65.158341,68.038609 66.058177,67.546006 C 66.976655,67.344437 67.928132,67.481014 68.851071,67.597311 C 70.046364,67.727738 71.239592,67.862287 72.428973,68.038431 C 73.807266,68.271412 73.539417,67.931086 73.19689,68.220294 L 73.509375,68.21604 C 71.660524,69.402635 71.998609,69.658659 70.534848,69.367465 C 69.377945,69.157713 68.214969,68.991033 67.043533,68.883243 C 66.098565,68.812332 65.12011,68.682892 64.20528,68.998748 C 64.650035,68.72185 64.407394,68.751304 64.045099,69.129755 L 63.353509,69.117757 z"
+ sodipodi:nodetypes="ccccccccccc" /><path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3934"
+ d="M 65.44179,74.366018 C 66.530517,74.436158 67.62178,74.335919 68.708935,74.27365 C 69.91938,74.221959 71.123867,74.099684 72.328382,73.975282 L 70.472131,75.349598 C 69.297153,75.442057 68.122124,75.527961 66.944082,75.57202 C 65.799913,75.642932 64.657122,75.739471 63.510853,75.768923 L 65.44179,74.366018 z" /><path
+ style="opacity:0.13934427999999999;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#111111;stroke-width:1.50000011999999994;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4001"
+ d="M 74.324771,65.663258 C 74.53026,65.087481 75.035246,64.665845 75.530795,64.208818 C 79.375989,61.029341 82.378821,61.212434 85.618796,61.512766 C 88.504762,62.230825 92.487791,62.425001 93.058576,65.594813 C 92.342919,69.241053 87.089599,71.772635 83.960022,73.625373 C 81.493155,75.120664 77.296391,76.73041 80.033871,78.332203 C 83.605791,79.482438 87.929181,79.377403 92.183549,79.243313 L 90.08359,80.599289 C 85.849152,80.592937 81.521835,80.672395 77.804368,79.689924 C 74.620216,78.055839 79.117078,76.079627 81.889032,74.499095 C 84.886524,72.735696 89.893082,70.344687 90.75887,66.869364 C 90.375738,63.674456 86.418263,62.784431 83.563225,62.823634 C 78.989742,62.886433 78.721326,63.444877 76.919513,64.339433 C 74.789114,65.397121 74.324771,65.663258 74.324771,65.663258 z"
+ sodipodi:nodetypes="cccccccccccssc" /><path
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3958"
+ d="M 74.324771,65.663258 C 74.53026,65.087481 75.035246,64.665845 75.530795,64.208818 C 79.375989,61.029341 82.378821,61.212434 85.618796,61.512766 C 88.504762,62.230825 92.487791,62.425001 93.058576,65.594813 C 92.342919,69.241053 87.089599,71.772635 83.960022,73.625373 C 81.493155,75.120664 77.296391,76.73041 80.033871,78.332203 C 83.605791,79.482438 87.929181,79.377403 92.183549,79.243313 L 90.08359,80.599289 C 85.849152,80.592937 81.521835,80.672395 77.804368,79.689924 C 74.620216,78.055839 79.117078,76.079627 81.889032,74.499095 C 84.886524,72.735696 89.893082,70.344687 90.75887,66.869364 C 90.375738,63.674456 86.368683,62.651081 83.563225,62.823634 C 78.797458,63.116758 78.746777,63.478252 76.919513,64.339433 C 74.759946,65.357226 74.324771,65.663258 74.324771,65.663258 z"
+ sodipodi:nodetypes="cccccccccccssc" /><path
+ d="M 40.671773,71.969328 C 41.905218,71.721478 43.175578,71.644648 44.430337,71.540077 C 49.503727,71.190685 54.589443,71.088307 59.671561,70.942659 C 60.394015,70.92064 61.116464,70.89862 61.838919,70.8766 L 60.293152,72.003846 C 59.597102,72.006908 58.901046,72.00997 58.204991,72.013033 C 53.053005,72.087429 47.892547,72.22499 42.765899,72.774464 C 41.414487,72.926847 40.069232,73.111331 38.737341,73.374778 L 40.671773,71.969328 z"
+ id="path3979"
+ style="opacity:0.13934427999999999;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000000999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ d="M 52.815851,50.979956 C 54.821217,49.894393 53.496851,50.730117 51.923357,52.171788 C 50.02155,54.051911 48.58631,56.268364 47.629107,58.754935 C 46.817087,60.955697 46.933511,63.048757 47.685679,65.228416 C 48.410358,66.873548 49.450395,68.012472 51.314534,67.94777 C 53.395432,67.264213 53.522501,67.31769 54.519303,64.27802 C 54.79471,61.862169 53.449064,59.998139 51.628786,58.584205 C 50.142422,57.559139 48.514138,58.877454 51.634307,57.1384 C 51.594158,57.174169 51.554015,57.209938 51.513866,57.245708 L 49.348738,58.172845 C 49.381578,58.115814 49.414423,58.058783 49.447269,58.001752 C 51.394219,56.87295 51.79475,56.16538 53.498758,57.413207 C 55.279892,58.963418 56.651812,60.904927 56.42918,63.376821 C 55.481142,66.546441 52.725321,68.499748 49.533241,69.243282 C 47.578641,69.198887 46.543314,68.010138 45.792111,66.272859 C 45.039932,64.033484 44.883722,61.906425 45.71301,59.645332 C 46.649245,57.137419 48.093593,54.919453 49.948061,52.982734 C 51.372513,51.61022 52.892375,50.293902 54.750283,49.574509 L 52.815851,50.979956 z"
+ id="path3981"
+ style="opacity:0.13934427999999999;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000000999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ d="M 45.008,76.709 C 45.575863,75.448548 47.18433,74.971249 48.489669,75.020739 C 51.206549,75.445819 53.678762,76.936342 55.873172,78.530129 C 57.573627,79.764681 58.699592,81.645968 56.764485,83.161233 C 54.269386,84.859362 52.277905,84.816796 49.54122,84.214141 C 46.931962,83.437396 51.046583,82.793361 52.330942,83.453739 C 54.337409,84.524245 56.266252,85.759772 57.959421,87.282863 C 59.112812,88.416829 59.495297,89.605091 58.144429,90.683019 C 54.925763,92.772111 51.778458,92.038852 48.252872,91.344084 C 47.870966,91.255688 47.489048,91.167298 47.107142,91.078908 L 48.863193,89.866925 C 49.22875,89.963186 49.594308,90.059447 49.959865,90.155708 C 51.653766,90.514643 58.904366,90.353917 56.064031,91.50703 C 57.456057,90.587269 57.173028,89.589736 56.092734,88.436027 C 54.463117,86.865932 52.555958,85.618232 50.506782,84.66011 C 48.176983,83.657129 50.079273,82.54543 51.383454,82.938913 C 52.685342,83.258136 56.996027,82.798173 54.711802,83.969865 C 56.741638,82.709721 55.72577,80.856415 54.128674,79.636085 C 51.945182,78.017675 49.450509,76.544675 46.681063,76.341558 C 44.510334,76.527214 45.456255,76.919982 47.138478,75.623468 L 45.008,76.709 z"
+ id="path3983"
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ d="M 63.353509,69.117757 C 64.069614,68.334202 65.158341,68.038609 66.058177,67.546006 C 66.976655,67.344437 67.928132,67.481014 68.851071,67.597311 C 70.046364,67.727738 71.239592,67.862287 72.428973,68.038431 C 73.807266,68.271412 74.297333,67.510022 71.386313,69.315062 L 73.509375,68.21604 C 71.660524,69.402635 71.998609,69.658659 70.534848,69.367465 C 69.377945,69.157713 68.214969,68.991033 67.043533,68.883243 C 66.098565,68.812332 65.12011,68.682892 64.20528,68.998748 C 64.650035,68.72185 65.923226,67.824962 65.560931,68.203413 L 63.353509,69.117757 z"
+ id="path3985"
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ d="M 65.44179,74.366018 C 66.530517,74.436158 67.62178,74.335919 68.708935,74.27365 C 69.91938,74.221959 71.123867,74.099684 72.328382,73.975282 L 70.472131,75.349598 C 69.297153,75.442057 68.122124,75.527961 66.944082,75.57202 C 65.799913,75.642932 64.657122,75.739471 63.510853,75.768923 L 65.44179,74.366018 z"
+ id="path3987"
+ style="opacity:0.13934427999999999;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000000999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
+ d="M 74.324771,65.663258 C 74.53026,65.087481 75.035246,64.665845 75.530795,64.208818 C 79.375989,61.029341 82.378821,61.212434 85.618796,61.512766 C 88.504762,62.230825 92.487791,62.425001 93.058576,65.594813 C 92.342919,69.241053 87.089599,71.772635 83.960022,73.625373 C 81.493155,75.120664 77.296391,76.73041 80.033871,78.332203 C 83.605791,79.482438 87.929181,79.377403 92.183549,79.243313 L 90.08359,80.599289 C 85.849152,80.592937 81.521835,80.672395 77.804368,79.689924 C 74.620216,78.055839 79.117078,76.079627 81.889032,74.499095 C 84.886524,72.735696 89.893082,70.344687 90.75887,66.869364 C 90.375738,63.674456 86.469835,62.861079 83.607528,62.882707 C 78.498296,62.921311 78.456564,63.713141 76.963816,64.398505 C 74.795861,65.393876 74.324771,65.663258 74.324771,65.663258 z"
+ id="path3989"
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.80000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:nodetypes="cccccccccccssc" /><path
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3991"
+ d="M 40.671773,71.969328 C 41.905218,71.721478 43.175578,71.644648 44.430337,71.540077 C 49.503727,71.190685 54.589443,71.088307 59.671561,70.942659 C 60.394015,70.92064 61.116464,70.89862 61.838919,70.8766 L 60.293152,72.003846 C 59.597102,72.006908 58.901046,72.00997 58.204991,72.013033 C 53.053005,72.087429 47.892547,72.22499 42.765899,72.774464 C 41.414487,72.926847 40.069232,73.111331 38.737341,73.374778 L 40.671773,71.969328 z" /><path
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3993"
+ d="M 52.815851,50.979956 C 54.821217,49.894393 53.496851,50.730117 51.923357,52.171788 C 50.02155,54.051911 48.58631,56.268364 47.629107,58.754935 C 46.817087,60.955697 46.933511,63.048757 47.685679,65.228416 C 48.410358,66.873548 49.450395,68.012472 51.314534,67.94777 C 53.395432,67.264213 53.522501,67.31769 54.519303,64.27802 C 54.79471,61.862169 53.449064,59.998139 51.628786,58.584205 C 50.142422,57.559139 48.514138,58.877454 51.634307,57.1384 C 51.594158,57.174169 51.554015,57.209938 51.513866,57.245708 L 49.348738,58.172845 C 49.381578,58.115814 49.414423,58.058783 49.447269,58.001752 C 51.394219,56.87295 51.79475,56.16538 53.498758,57.413207 C 55.279892,58.963418 56.651812,60.904927 56.42918,63.376821 C 55.481142,66.546441 52.725321,68.499748 49.533241,69.243282 C 47.578641,69.198887 46.543314,68.010138 45.792111,66.272859 C 45.039932,64.033484 44.883722,61.906425 45.71301,59.645332 C 46.649245,57.137419 48.093593,54.919453 49.948061,52.982734 C 51.372513,51.61022 52.892375,50.293902 54.750283,49.574509 L 52.815851,50.979956 z" /><path
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3997"
+ d="M 63.353509,69.117757 C 64.069614,68.334202 65.158341,68.038609 66.058177,67.546006 C 66.976655,67.344437 67.928132,67.481014 68.851071,67.597311 C 70.046364,67.727738 71.239592,67.862287 72.428973,68.038431 C 73.807266,68.271412 74.297333,67.510022 71.386313,69.315062 L 73.509375,68.21604 C 71.660524,69.402635 71.998609,69.658659 70.534848,69.367465 C 69.377945,69.157713 68.214969,68.991033 67.043533,68.883243 C 66.098565,68.812332 65.12011,68.682892 64.20528,68.998748 C 64.650035,68.72185 65.923226,67.824962 65.560931,68.203413 L 63.353509,69.117757 z" /><path
+ style="opacity:0.13934428;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.50000012;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3999"
+ d="M 65.44179,74.366018 C 66.530517,74.436158 67.62178,74.335919 68.708935,74.27365 C 69.91938,74.221959 71.123867,74.099684 72.328382,73.975282 L 70.472131,75.349598 C 69.297153,75.442057 68.122124,75.527961 66.944082,75.57202 C 65.799913,75.642932 64.657122,75.739471 63.510853,75.768923 L 65.44179,74.366018 z" /></svg>
diff --git a/data/images/icons/tuxmath.xpm b/data/images/icons/tuxmath.xpm
new file mode 100644
index 0000000..ec37c5e
--- /dev/null
+++ b/data/images/icons/tuxmath.xpm
@@ -0,0 +1,294 @@
+/* XPM */
+static char * tuxmath_xpm[] = {
+"32 32 259 2",
+" c None",
+". c #151515",
+"+ c #2C2C2C",
+"@ c #343434",
+"# c #383838",
+"$ c #313131",
+"% c #222222",
+"& c #0E0E0E",
+"* c #212121",
+"= c #7A7A7A",
+"- c #C1C1C1",
+"; c #C3C3C3",
+"> c #A1A1A1",
+", c #393939",
+"' c #161616",
+") c #090909",
+"! c #515151",
+"~ c #D0D0D0",
+"{ c #E7E7E7",
+"] c #DFDFDF",
+"^ c #BDBDBD",
+"/ c #AEAEAE",
+"( c #868686",
+"_ c #1C1C1C",
+": c #030303",
+"< c #5C5C5C",
+"[ c #E1E1E1",
+"} c #FFFFFF",
+"| c #F4F4F4",
+"1 c #AFAFAF",
+"2 c #999999",
+"3 c #B6B6B6",
+"4 c #CACACA",
+"5 c #C2C2C2",
+"6 c #A3A3A3",
+"7 c #8B8B8B",
+"8 c #141414",
+"9 c #000000",
+"0 c #262626",
+"a c #F7F7F7",
+"b c #EAEAEA",
+"c c #D2D2D2",
+"d c #888888",
+"e c #FDFDFD",
+"f c #E9E9E9",
+"g c #9D9D9D",
+"h c #686868",
+"i c #010101",
+"j c #555555",
+"k c #C9C9C9",
+"l c #8D8D8D",
+"m c #444444",
+"n c #A9A9A9",
+"o c #E2E2E2",
+"p c #EEEEEE",
+"q c #6F6F6F",
+"r c #4F4F4F",
+"s c #CCCCCC",
+"t c #DDDDDD",
+"u c #292929",
+"v c #808080",
+"w c #575757",
+"x c #636363",
+"y c #353535",
+"z c #9F9F9F",
+"A c #BBBBBB",
+"B c #A8A8A8",
+"C c #A4A4A4",
+"D c #454545",
+"E c #121212",
+"F c #3B3B3B",
+"G c #DADADA",
+"H c #D3D38C",
+"I c #E3E33E",
+"J c #E9E826",
+"K c #EEDA23",
+"L c #EDCB3D",
+"M c #EBBD7B",
+"N c #A6A6A6",
+"O c #484848",
+"P c #2A2A2A",
+"Q c #363636",
+"R c #A7A7A7",
+"S c #BDBDA8",
+"T c #F5F51A",
+"U c #FFF200",
+"V c #FFDA00",
+"W c #FEC205",
+"X c #F3D7B6",
+"Y c #D5D5D5",
+"Z c #787878",
+"` c #1A1A1A",
+" . c #080808",
+".. c #EFEFEF",
+"+. c #FCFCFC",
+"@. c #F6F6D2",
+"#. c #FCE40C",
+"$. c #FFCE00",
+"%. c #F2C98E",
+"&. c #E6E6E6",
+"*. c #9C9C9C",
+"=. c #020202",
+"-. c #FAFAFA",
+";. c #DEDEDE",
+">. c #F0E6AE",
+",. c #F0CF65",
+"'. c #D7D7D7",
+"). c #CFCFCF",
+"!. c #050505",
+"~. c #0D0D0D",
+"{. c #F8F8F8",
+"]. c #969696",
+"^. c #F9F9F9",
+"/. c #F5F5F5",
+"(. c #C8C8C8",
+"_. c #C0C0C0",
+":. c #717171",
+"<. c #070707",
+"[. c #101010",
+"}. c #ACACAC",
+"|. c #939393",
+"1. c #C7C7C7",
+"2. c #EDEDED",
+"3. c #B9B9B9",
+"4. c #B4B4B4",
+"5. c #232323",
+"6. c #0F0F0F",
+"7. c #0C0C0C",
+"8. c #181818",
+"9. c #282828",
+"0. c #FEFEFE",
+"a. c #5D5D5D",
+"b. c #E5E5E5",
+"c. c #848484",
+"d. c #737373",
+"e. c #ADADAD",
+"f. c #8C8C8C",
+"g. c #060606",
+"h. c #818181",
+"i. c #D4D4D4",
+"j. c #CECECE",
+"k. c #B5B5B5",
+"l. c #9A9A9A",
+"m. c #A5A5A5",
+"n. c #040404",
+"o. c #BEBEBE",
+"p. c #919191",
+"q. c #C6C6C6",
+"r. c #BFBFBF",
+"s. c #ABABAB",
+"t. c #747474",
+"u. c #696969",
+"v. c #B7B7B7",
+"w. c #B3B3B3",
+"x. c #8F8F8F",
+"y. c #A0A0A0",
+"z. c #0A0A0A",
+"A. c #2F2F2F",
+"B. c #D8D8D8",
+"C. c #909090",
+"D. c #838383",
+"E. c #AAAAAA",
+"F. c #707070",
+"G. c #B8B8B8",
+"H. c #434343",
+"I. c #858585",
+"J. c #959595",
+"K. c #8E8E8E",
+"L. c #676767",
+"M. c #BABABA",
+"N. c #656565",
+"O. c #B0B0B0",
+"P. c #6B6B6B",
+"Q. c #BCBCBC",
+"R. c #B2B2B2",
+"S. c #F2F2F2",
+"T. c #D6D6D6",
+"U. c #7D7D7D",
+"V. c #929292",
+"W. c #E4E4E4",
+"X. c #D9D9D9",
+"Y. c #757575",
+"Z. c #9B9B9B",
+"`. c #8A8A8A",
+" + c #9E9E9E",
+".+ c #5A5A5A",
+"++ c #F9C66E",
+"@+ c #D5B479",
+"#+ c #D7B67E",
+"$+ c #D8B983",
+"%+ c #C2A984",
+"&+ c #B4B2B1",
+"*+ c #A19B92",
+"=+ c #C0A371",
+"-+ c #D5B67C",
+";+ c #D6B77C",
+">+ c #F5CE88",
+",+ c #FBCF80",
+"'+ c #F6BC59",
+")+ c #FFD68A",
+"!+ c #FFE6B4",
+"~+ c #FFE7B4",
+"{+ c #FFE8B4",
+"]+ c #FFE6B3",
+"^+ c #F4CC81",
+"/+ c #B5945B",
+"(+ c #B48E49",
+"_+ c #F7CC7A",
+":+ c #FFE1A2",
+"<+ c #FFE3A2",
+"[+ c #FFE4A2",
+"}+ c #FFD88B",
+"|+ c #F3A30F",
+"1+ c #FEC100",
+"2+ c #FFC814",
+"3+ c #FFCF22",
+"4+ c #FFD327",
+"5+ c #FFD527",
+"6+ c #FFD427",
+"7+ c #FFD227",
+"8+ c #FFCD21",
+"9+ c #FFC411",
+"0+ c #EFB70B",
+"a+ c #83817C",
+"b+ c #898989",
+"c+ c #757574",
+"d+ c #EDB70B",
+"e+ c #FFC607",
+"f+ c #FFCC10",
+"g+ c #FFD214",
+"h+ c #FFD416",
+"i+ c #FFD316",
+"j+ c #FFD114",
+"k+ c #FFCC11",
+"l+ c #FFC409",
+"m+ c #FFC300",
+"n+ c #FBD000",
+"o+ c #FFD700",
+"p+ c #FFDD00",
+"q+ c #FFE300",
+"r+ c #FFE600",
+"s+ c #FFE500",
+"t+ c #FFE000",
+"u+ c #FFD800",
+"v+ c #FFD300",
+"w+ c #FACA00",
+"x+ c #FEDB00",
+"y+ c #FFE900",
+"z+ c #FFE800",
+"A+ c #FFDB00",
+"B+ c #FACD00",
+"C+ c #FDE600",
+"D+ c #FEF800",
+"E+ c #FFF700",
+"F+ c #FFED00",
+"G+ c #FDE400",
+"H+ c #FFEC00",
+"I+ c #FEF400",
+"J+ c #FEEC00",
+" ",
+" ",
+" . + @ # $ % & ",
+" * = - ; ; ; ; ; > , ' ",
+" ) ! ~ { ] ^ / / / / / / ( _ ",
+" : < [ } } } | 1 2 2 3 4 5 6 7 8 ",
+" 9 0 1 } } } a b c d ] } } e f g h i ",
+" 9 j k } } a b l m n o } e p ] k q . ",
+" 9 9 r s } a b t < u v w e p ] ~ - x * 9 ",
+" 9 9 y z a b t ~ A B 2 | p ] ~ - C D E 9 ",
+" 9 9 9 8 F G t ~ H I J K L M ~ - N O P i 9 9 ",
+" 9 9 9 i . Q R ; S T U V W X Y Z * ` .9 9 9 ",
+" 9 9 9 9 9 Q ..+.} @.#.$.%.p &.] *.i 9 9 9 9 ",
+" 9 =.: : : 0 -.} a ;.} >.,...&.;.'.).z : : : : 9 ",
+" 9 !.) ) ) ~.p } {.].^.+./.p &.;.'.).(._.:.) ) =.<.9 ",
+" =.) [.[.[.[.}.} } |.l 1./.2.&.;.'.).1._.3.4.5.) 9 6.7.i ",
+" 9 =.<. .E 8.9.0.} 0.Z | a.2.b.;.'.s c.q d.6 e.f.& 7.: =.i 9 ",
+" g.* n } } } a.2.h.b.;.i.j.2 R k.l.# m.> 0 [. ",
+" n.u p } } ^.o.p.q.r.s.t.u.v.3.w.x.:.y.2 x z. ",
+" 9 A.} } B.2 C.|.z z 5 D.7 v.e.D.p.y.2 |.( !. ",
+" O } +.| 2.E.F.c.).G.}.k.E.H.I.x.f.|.J.K. ",
+" L.| | 2.b.;.M.u.1 _.3.w.}.l :.N.= p.O.P. ",
+" Q.R.S.&.;.T.U.O 3 3.w.}.N z 2 |.V./ y.D ",
+" l.q.W.X.A U.Y.Y.w.}.N z 2 |.Z./ n ! ",
+" `.r.Y ).^ e.w.}.N z +y.n s.6 .+ ",
+" ++ at +#+$+%+&+G.4.O./ n *+=+-+;+>+,+'+ ",
+" )+!+~+{+{+~+]+^+/+m.R *.(+_+:+<+[+[+<+:+}+|+ ",
+" 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+p+s+y+z+q+A+o+B+ ",
+" C+U D+E+F+G+ H+I+U J+ ",
+" ",
+" "};
diff --git a/data/images/igloos/Makefile.am b/data/images/igloos/Makefile.am
new file mode 100644
index 0000000..b824ab1
--- /dev/null
+++ b/data/images/igloos/Makefile.am
@@ -0,0 +1,24 @@
+## Makefile.am for tuxmath data/images/igloos:
+## Process with AutoMake:
+
+igloosdir = $(pkgdatadir)/images/igloos
+
+dist_igloos_DATA = cloud.png \
+ composite.svg \
+ extra_life.png \
+ half.png \
+ intact.png \
+ melted1.png \
+ melted2.png \
+ melted3.png \
+ rebuilding1.png \
+ rebuilding2.png \
+ snow1.png \
+ snow2.png \
+ snow3.png \
+ steam1.png \
+ steam2.png \
+ steam3.png \
+ steam4.png \
+ steam5.png
+
diff --git a/data/images/igloos/cloud.png b/data/images/igloos/cloud.png
new file mode 100644
index 0000000..23183f5
Binary files /dev/null and b/data/images/igloos/cloud.png differ
diff --git a/data/images/igloos/cloud.png.bak b/data/images/igloos/cloud.png.bak
new file mode 100644
index 0000000..23183f5
Binary files /dev/null and b/data/images/igloos/cloud.png.bak differ
diff --git a/data/images/igloos/composite.svg b/data/images/igloos/composite.svg
new file mode 100644
index 0000000..b7adc13
--- /dev/null
+++ b/data/images/igloos/composite.svg
@@ -0,0 +1,5752 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg7951"
+ sodipodi:version="0.32"
+ inkscape:version="0.45"
+ sodipodi:docbase="/home/tim/src/tux4kids/tuxmath/trunk/data/images/igloos"
+ sodipodi:docname="composite.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ sodipodi:modified="TRUE">
+ <defs
+ id="defs7953">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9207"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9205"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9203"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9226"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.204419,-0.531867,-0.33593,0.18527,679.4298,639.6585)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9180"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9176"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9174"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9357"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9355"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9353"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9351"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9365"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9363"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9361"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9359"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9349"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9345"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9343"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.204419,-0.531867,-0.33593,0.18527,675.4618,960.284)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient8267"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient8265"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient8263"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient8261"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient12090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.710124,0,0,0.384496,183.4103,-20.54651)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient12093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.421122,0,0,0.648362,183.4103,-20.54651)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8028"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8026"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8024"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8022"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8020"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8018"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient12110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.549997,0,0,0.496439,183.4103,-20.54651)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient8014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient8012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient8010"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient8008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient9375"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.710124,0,0,0.384496,-58.22604,-22.85128)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient9378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.421122,0,0,0.648362,-58.22604,-22.85128)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8082"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8080"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8078"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8076"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8074"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ id="linearGradient5018"
+ inkscape:collect="always">
+ <stop
+ id="stop5020"
+ offset="0"
+ style="stop-color:#fdd541;stop-opacity:1;" />
+ <stop
+ id="stop5022"
+ offset="1"
+ style="stop-color:white;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5018"
+ id="linearGradient8072"
+ gradientUnits="userSpaceOnUse"
+ x1="50.651741"
+ y1="965.25763"
+ x2="45.15498"
+ y2="926.84485" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient9395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.549997,0,0,0.496439,-58.22604,-22.85128)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient8068"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient8066"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient8064"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient8062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ id="linearGradient912">
+ <stop
+ id="stop913"
+ offset="0.0000000"
+ style="stop-color:#b1f3f3;stop-opacity:1.0000000;" />
+ <stop
+ id="stop855"
+ offset="0.28319508"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1077"
+ offset="0.43082523"
+ style="stop-color:#e2ffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1078"
+ offset="0.69532084"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop914"
+ offset="1.0000000"
+ style="stop-color:#bdffff;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient912"
+ id="linearGradient3752"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.288414,0,0,0.26615,598.1275,408.6798)"
+ x1="84.717565"
+ y1="67.629982"
+ x2="7.7171915"
+ y2="18.836343" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2280"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.05165,0.950887)"
+ x1="262.03372"
+ y1="582.74817"
+ x2="205.08041"
+ y2="520.93854" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2278"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.69921,1.430186)"
+ x1="284.23892"
+ y1="369.54196"
+ x2="274.71536"
+ y2="351.49554" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.9104,1.098418)"
+ x1="295.32178"
+ y1="485.56943"
+ x2="235.70436"
+ y2="447.57535" />
+ <linearGradient
+ gradientTransform="scale(1.05165,0.950887)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient18000"
+ inkscape:collect="always"
+ x1="262.03372"
+ x2="205.08041"
+ xlink:href="#linearGradient11752"
+ y1="582.74817"
+ y2="520.93854" />
+ <linearGradient
+ gradientTransform="scale(0.69921,1.430186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient18625"
+ inkscape:collect="always"
+ x1="284.23892"
+ x2="274.71536"
+ xlink:href="#linearGradient11752"
+ y1="369.54196"
+ y2="351.49554" />
+ <linearGradient
+ id="linearGradient11752">
+ <stop
+ id="stop11753"
+ offset="0.0000000"
+ style="stop-color:#ffcf2f;stop-opacity:1.0000000;" />
+ <stop
+ id="stop11754"
+ offset="1.0000000"
+ style="stop-color:#faee89;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="scale(0.9104,1.098418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient25475"
+ inkscape:collect="always"
+ x1="295.32178"
+ x2="235.70436"
+ xlink:href="#linearGradient11752"
+ y1="485.56943"
+ y2="447.57535" />
+ <linearGradient
+ id="linearGradient11116"
+ inkscape:collect="always">
+ <stop
+ id="stop11117"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop11118"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="scale(0.972343,1.028444)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient11119"
+ inkscape:collect="always"
+ x1="371.22302"
+ x2="274.47937"
+ xlink:href="#linearGradient11116"
+ y1="211.30777"
+ y2="216.53050" />
+ <linearGradient
+ gradientTransform="scale(0.898229,1.113302)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13005"
+ inkscape:collect="always"
+ x1="386.07327"
+ x2="400.74783"
+ xlink:href="#linearGradient12377"
+ y1="185.66209"
+ y2="184.89015" />
+ <linearGradient
+ id="linearGradient10491"
+ inkscape:collect="always">
+ <stop
+ id="stop10492"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop10493"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="scale(0.972343,1.028444)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient10494"
+ inkscape:collect="always"
+ x1="355.46143"
+ x2="305.45908"
+ xlink:href="#linearGradient10491"
+ y1="208.43527"
+ y2="209.47983" />
+ <linearGradient
+ id="linearGradient12377">
+ <stop
+ id="stop12378"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop12379"
+ offset="1.0000000"
+ style="stop-color:#c8c8c8;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="scale(0.898229,1.113302)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient13630"
+ inkscape:collect="always"
+ x1="388.02988"
+ x2="403.19357"
+ xlink:href="#linearGradient12377"
+ y1="182.57433"
+ y2="181.03044" />
+ <linearGradient
+ id="linearGradient14252">
+ <stop
+ id="stop14253"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop14254"
+ offset="1.0000000"
+ style="stop-color:#303030;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3346">
+ <stop
+ style="stop-color:aqua;stop-opacity:1;"
+ offset="0"
+ id="stop3348" />
+ <stop
+ style="stop-color:aqua;stop-opacity:0;"
+ offset="1"
+ id="stop3350" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3346"
+ id="linearGradient3352"
+ x1="517.91101"
+ y1="757.18658"
+ x2="395.81851"
+ y2="582.46179"
+ gradientUnits="userSpaceOnUse" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath11177">
+ <path
+ style="opacity:1;fill:black;fill-opacity:1;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -52.28173,-67.43473 L -52.28173,262.72152 L 349.40577,262.72152 L 349.40577,76.34652 C 348.23035,87.07705 352.24773,87.22801 339.12452,98.78402 C 323.21183,112.7964 331.69272,117.81883 312.99952,130.28402 C 294.30631,142.74922 293.66003,157.43388 273.15577,160.87777 C 252.65153,164.32166 258.67286,136.60613 236.87452,137.22152 C 215.0762,137.83691 245.62044,157.22251 224.99952,155.72152 C 204.37859,154.22052 190.48685,137.05596 170.81202,127.72152 C 151.13719,118.38709 150.56661,125.67094 140.74952,108.87777 C 130.93243,92.0846 133.94444,101.62874 125.34327,83.62777 C 116.74209,65.62679 140.70548,92.28162 136.56202,71.15902 C 132.41857,50.03641 104.93875,33.01826 108.46827,13.22152 C 111.99779,-6.57522 116.64076,13.873 127.18702,-5.84098 C 137.7333,-25.55496 145.94748,-7.2647 157.81202,-24.02848 C 168.52114,-39.15973 172.7798,-54.55413 186.15577,-67.43473 L -52.28173,-67.43473 z M 245.59327,-67.43473 C 244.9251,-64.56084 245.94698,-61.47751 253.21827,-58.80973 C 264.21756,-54.77418 273.65554,-61.73925 282.96827,-67.43473 L 245.59327,-67.43473 z M 312.46827,-67.43473 C 318.89022,-58.77706 308.03426,-46.1974 322.12452,-34.12223 C 335.72402,-22.46762 344.01218,-39.89895 349.40577,-35.84098 L 349.40577,-67.43473 L 312.46827,-67.43473 z M 349.40577,2.00277 C 346.74177,10.4221 344.29718,18.66842 346.71827,28.09652 C 347.4227,30.83968 348.36022,32.83431 349.40577,34.31527 L 349.40577,2.00277 z "
+ id="rect11154" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11227"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.9104,1.098418)"
+ x1="295.32178"
+ y1="485.56943"
+ x2="235.70436"
+ y2="447.57535" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11229"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.69921,1.430186)"
+ x1="284.23892"
+ y1="369.54196"
+ x2="274.71536"
+ y2="351.49554" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11231"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.05165,0.950887)"
+ x1="262.03372"
+ y1="582.74817"
+ x2="205.08041"
+ y2="520.93854" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11406"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.9104,1.098418)"
+ x1="295.32178"
+ y1="485.56943"
+ x2="235.70436"
+ y2="447.57535" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11408"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.69921,1.430186)"
+ x1="284.23892"
+ y1="369.54196"
+ x2="274.71536"
+ y2="351.49554" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient11410"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.05165,0.950887)"
+ x1="262.03372"
+ y1="582.74817"
+ x2="205.08041"
+ y2="520.93854" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath11568">
+ <path
+ sodipodi:type="star"
+ style="opacity:1;fill:black;fill-opacity:1;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path11566"
+ sodipodi:sides="17"
+ sodipodi:cx="78.043388"
+ sodipodi:cy="839.63104"
+ sodipodi:r1="89.371216"
+ sodipodi:r2="105.14261"
+ sodipodi:arg1="-0.55479223"
+ sodipodi:arg2="-0.36999266"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.3"
+ d="M 125.66616,796.44264 C 130.8629,813.30023 183.06357,780.38398 185.4932,793.34292 C 187.92284,806.30187 180.53117,842.16894 189.29654,853.69985 C 198.06191,865.23076 151.41666,803.0258 157.63507,818.4877 C 163.85347,833.94961 172.005,862.5161 173.8588,880.0982 C 175.7126,897.68029 181.89981,846.12099 172.32018,859.16563 C 162.74056,872.21027 133.54483,885.09314 132.01291,901.31273 C 130.48099,917.53232 183.28484,873.49759 177.81734,886.85376 C 172.34985,900.20993 147.86537,880.07177 132.71749,883.82757 C 117.5696,887.58337 113.01068,944.11507 101.52253,954.94422 C 90.034382,965.77337 112.18738,915.10924 98.445468,913.02799 C 84.703553,910.94675 118.30284,950.44306 105.95668,956.03861 C 93.61052,961.63415 65.136223,945.11936 50.149318,940.50009 C 35.162412,935.88083 79.982991,959.40344 63.346485,959.12514 C 46.70998,958.84683 40.693335,957.16799 26.968134,949.09749 C 13.242932,941.027 3.8850101,910.56846 -7.7955957,900.3995 C -19.476201,890.23053 27.678604,938.21157 17.899835,929.07736 C 8.1210666,919.94314 29.099978,894.93577 17.760917,885.39583 C 6.4218565,875.8559 -23.199321,864.60263 -29.516675,849.83115 C -35.83403,835.05967 -55.015882,868.7099 -55.263666,851.10392 C -55.511451,833.49794 -40.561089,877.47194 -38.974269,864.10263 C -37.387449,850.73332 -26.762501,824.03985 -22.054142,810.8584 C -17.345782,797.67695 -7.8128453,818.56853 1.3602563,805.13805 C 10.533358,791.70756 -20.631335,825.62002 -16.922608,810.29628 C -13.213882,794.97255 -15.553044,780.90512 -3.9749365,768.81461 C 7.6031706,756.72409 23.648222,780.1884 30.84749,766.76246 C 38.046757,753.33651 -4.9148922,749.9641 9.8966163,741.73457 C 24.708125,733.50505 35.958695,704.85511 50.85804,707.2575 C 65.757384,709.65989 52.622692,733.26978 69.819545,734.67878 C 87.016398,736.08778 71.429361,720.09505 84.936661,716.67637 C 98.443961,713.25769 111.07265,735.53746 126.6996,741.43104 C 142.32655,747.32461 123.04042,733.65781 135.37522,741.22562 C 147.71002,748.79344 131.01964,735.40092 141.89926,746.57486 C 152.77888,757.7488 179.11905,770.92737 187.03196,784.84006 C 194.94488,798.75275 120.46942,779.58505 125.66616,796.44264 z "
+ transform="matrix(2.215132,0,0,0.998186,-5.77343,-530.9361)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3346"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ x1="517.91101"
+ y1="757.18658"
+ x2="395.81851"
+ y2="582.46179" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2456">
+ <path
+ sodipodi:type="star"
+ style="fill:red;fill-opacity:1;stroke:#fffcfc;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2450"
+ sodipodi:sides="16"
+ sodipodi:cx="12"
+ sodipodi:cy="233.36218"
+ sodipodi:r1="49.040798"
+ sodipodi:r2="41.684677"
+ sodipodi:arg1="0.68429479"
+ sodipodi:arg2="0.88064433"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.1"
+ d="M 47.569291,264.07799 C 43.228766,270.56767 45.233886,256.05517 39.975049,260.89863 C 34.716213,265.74208 40.019955,272.74853 33.197785,275.63279 C 26.375614,278.51704 35.173948,274.18383 28.350028,277.18248 C 21.526108,280.18112 27.989379,278.00575 20.798046,279.144 C 13.606712,280.28225 16.809737,270.99528 9.5440181,270.98355 C 2.2782993,270.97182 7.8778464,284.79601 0.22126742,283.68703 C -7.4353115,282.57805 0.2594272,274.58824 -6.5093125,271.21894 C -13.278052,267.84965 -11.030631,277.87094 -17.371588,273.89891 C -23.712545,269.92688 -15.874499,270.83791 -19.826806,264.61597 C -23.779113,258.39403 -27.954554,260.44136 -31.958761,253.7413 C -35.962968,247.04124 -23.554074,249.93814 -25.198538,243.00457 C -26.843002,236.07099 -39.987821,242.83062 -39.719267,235.40245 C -39.450713,227.97428 -32.257633,234.30239 -32.499754,227.0678 C -32.741876,219.8332 -34.255003,225.48932 -31.221823,218.48249 C -28.188642,211.47565 -32.749833,219.89907 -28.585689,213.7126 C -24.421545,207.52613 -30.952433,208.44488 -25.906695,202.81747 C -20.860957,197.19007 -18.924791,203.88669 -12.929976,199.85273 C -6.9351598,195.81877 -22.026234,190.32674 -15.950776,185.96588 C -9.8753175,181.60503 -6.2385323,198.35629 0.52581393,195.9116 C 7.2901602,193.46691 -4.7294241,185.11978 2.8467383,183.37934 C 10.422901,181.63891 8.3582779,188.60854 16.103143,188.86229 C 23.848008,189.11604 21.508705,181.30984 28.816089,183.34768 C 36.123473,185.38553 29.272792,192.52653 35.556763,196.66308 C 41.840735,200.79963 34.77352,195.44819 41.026467,199.27991 C 47.279414,203.11162 44.404742,196.76231 48.864162,202.41874 C 53.323582,208.07517 56.085526,205.7643 58.852257,212.83073 C 61.618989,219.89715 49.108405,211.95216 52.243769,218.8328 C 55.379134,225.71345 57.662582,224.93895 58.958558,232.47958 C 60.254534,240.02021 49.404777,226.5548 49.736668,233.68356 C 50.06856,240.81233 62.68785,241.25843 60.259179,248.55223 C 57.830508,255.84602 48.998526,249.86926 45.822603,256.84692 C 42.64668,263.82458 51.909817,257.5883 47.569291,264.07799 z "
+ transform="matrix(4.009754,0,0,3.253551,328.9656,28.38102)" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2463">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.7;fill:red;fill-opacity:1;stroke:#fffcfc;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2461"
+ sodipodi:cx="251.5"
+ sodipodi:cy="295.86218"
+ sodipodi:rx="41.5"
+ sodipodi:ry="44.5"
+ d="M 293 295.86218 A 41.5 44.5 0 1 1 210,295.86218 A 41.5 44.5 0 1 1 293 295.86218 z"
+ transform="matrix(1.775332,0,0,4.936273,-258.1668,-740.1758)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.125935,0,0,0.113869,247.963,56.42353)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-8.37304e-2,0,0,0.171265,247.963,56.42353)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.10902,0,0,0.131536,247.963,56.42353)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162741,0,0,8.811588e-2,158.7715,55.71311)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient2561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.650964e-2,0,0,0.148587,158.7715,55.71311)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient2564"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.165434,0,0,8.668128e-2,158.7715,55.71311)"
+ x1="112.39818"
+ y1="491.14319"
+ x2="141.35054"
+ y2="445.86075" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient2571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.126044,0,0,0.11377,158.7715,55.71311)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient2575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.12755,0,0,0.112427,158.7715,55.71311)"
+ x1="280.74716"
+ y1="488.92545"
+ x2="268.01199"
+ y2="491.01483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient2582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121132,0,0,0.118383,158.7715,55.71311)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4355"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.124739,0,0,0.113929,323.2533,56.38723)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-8.293553e-2,0,0,0.171355,323.2533,56.38723)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4361"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.107985,0,0,0.131605,323.2533,56.38723)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4367"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.161196,0,0,8.816241e-2,234.9086,55.67642)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.559326e-2,0,0,0.148665,234.9086,55.67642)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4373"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.163864,0,0,8.672709e-2,234.9086,55.67642)"
+ x1="112.39818"
+ y1="491.14319"
+ x2="141.35054"
+ y2="445.86075" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.124847,0,0,0.11383,234.9086,55.67642)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4384"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.126338,0,0,0.112487,234.9086,55.67642)"
+ x1="280.74716"
+ y1="488.92545"
+ x2="268.01199"
+ y2="491.01483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.119982,0,0,0.118446,234.9086,55.67642)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4397"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4399"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.12599,0,0,0.113929,399.9734,56.38728)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-8.376704e-2,0,0,0.171355,399.9734,56.38728)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4484"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.109068,0,0,0.131605,399.9734,56.38728)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4490"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,310.7431,55.67649)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4493"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.655161e-2,0,0,0.148665,310.7431,55.67649)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4496"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.165506,0,0,8.672691e-2,310.7431,55.67649)"
+ x1="112.39818"
+ y1="491.14319"
+ x2="141.35054"
+ y2="445.86075" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.126099,0,0,0.11383,310.7431,55.67649)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4507"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.127605,0,0,0.112487,310.7431,55.67649)"
+ x1="280.74716"
+ y1="488.92545"
+ x2="268.01199"
+ y2="491.01483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4514"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,310.7431,55.67649)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4516"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4518"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4647"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.173048,0,0,8.340454e-2,470.7643,58.82658)"
+ x1="151.95976"
+ y1="403.79459"
+ x2="194.87503"
+ y2="188.25638" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4650"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.131731,0,0,0.109565,469.4303,59.02506)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4653"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-8.758383e-2,0,0,0.164791,469.4303,59.02506)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4656"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.114038,0,0,0.126564,469.4303,59.02506)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4662"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.170231,0,0,8.478522e-2,376.1339,62.95044)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.100967,0,0,0.114853,376.1263,70.44899)"
+ x1="457.95407"
+ y1="321.26181"
+ x2="684.51758"
+ y2="321.26181" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4668"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.173048,0,0,8.340454e-2,376.1339,58.3415)"
+ x1="123.25822"
+ y1="452.65057"
+ x2="141.35054"
+ y2="445.86075" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4675"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.131845,0,0,0.10947,376.1339,58.3415)"
+ x1="392.50446"
+ y1="362.68777"
+ x2="276.09256"
+ y2="358.97195" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4678"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.13342,0,0,0.108177,376.1339,58.3415)"
+ x1="280.74716"
+ y1="488.92545"
+ x2="268.01199"
+ y2="491.01483" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4681"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.126707,0,0,0.113909,376.1339,62.95044)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient912"
+ id="linearGradient2659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.19001,4.869582e-2,-4.493674e-2,0.175342,582.7897,365.713)"
+ x1="84.717565"
+ y1="67.629982"
+ x2="7.7171915"
+ y2="18.836343" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient912"
+ id="linearGradient2663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.114105,0,0,0.105297,621.8357,311.5846)"
+ x1="84.717565"
+ y1="67.629982"
+ x2="7.7171915"
+ y2="18.836343" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3346"
+ id="linearGradient2761"
+ gradientUnits="userSpaceOnUse"
+ x1="517.91101"
+ y1="757.18658"
+ x2="395.81851"
+ y2="582.46179" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3346"
+ id="linearGradient2853"
+ gradientUnits="userSpaceOnUse"
+ x1="517.91101"
+ y1="757.18658"
+ x2="395.81851"
+ y2="582.46179" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2857">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:3.25083303px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 246.20031,814.08242 L 270.71931,753.5717 L 333.18436,774.13362 L 369.37904,751.22178 C 369.37904,751.22178 389.22777,758.27158 402.65482,761.20899 C 416.08187,764.1464 463.36849,774.72108 508.90377,760.6215 C 554.43905,746.52193 602.30944,721.26016 602.30944,721.26016 L 646.09334,793.52053 L 464.53608,812.90744 L 246.20031,814.08242 z "
+ id="path2855"
+ sodipodi:nodetypes="ccccsscccc" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2862">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:3.25083303px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 257.88876,699.08754 C 257.88876,699.08754 274.00352,635.30508 318.15737,653.39211 C 362.01723,671.35871 392.04834,694.72571 461.81133,689.11764 C 531.64463,683.5039 549.3246,667.51618 588.12769,640.09891 C 626.93074,612.68164 660.78027,807.0949 660.78027,807.0949 L 257.06315,845.3129 L 257.88876,699.08754 z "
+ id="path2860"
+ sodipodi:nodetypes="czzsccc" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3611"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.044468e-2,-0.131378,-8.289778e-2,4.57641e-2,608.054,583.8427)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.044468e-2,-0.131378,-8.289778e-2,4.57641e-2,608.054,583.8427)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3661"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.044468e-2,-0.131378,-8.289778e-2,4.57641e-2,608.054,583.8427)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4075"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4077"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4081"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4083"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4085"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4087"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4089"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.658741,0.14727,0.158825,0.425808,693.7206,415.3364)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4091"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.889997,0,0,1.073801,738.2729,233.5941)"
+ x1="296.59113"
+ y1="486.34430"
+ x2="274.23395"
+ y2="438.15631" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.68354,0,0,1.398134,738.2729,233.5941)"
+ x1="281.33209"
+ y1="368.06802"
+ x2="263.86984"
+ y2="358.06830" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4095"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.028081,0,0,0.929577,738.2729,233.5941)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4201"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-5.044468e-2,-0.131378,-8.289778e-2,4.57641e-2,612.0477,671.504)"
+ x1="244.13411"
+ y1="588.20197"
+ x2="205.89403"
+ y2="536.39093" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4305">
+ <rect
+ style="opacity:1;fill:white;fill-opacity:1;stroke:black;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4303"
+ width="150.72697"
+ height="129.88176"
+ x="121.86436"
+ y="706.0108" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient3126"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,335.14782,705.06963)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3128"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient3130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3132"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient3134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3136"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,335.14782,705.06963)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3180"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,335.14782,705.10346)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,335.14782,705.10346)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4331"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4347"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,387.4816,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,387.4816,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4359"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4394"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,439.81534,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,439.81534,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4418"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,492.14914,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4441"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,492.14914,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4443"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4445"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4447"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,387.4816,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4534"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4536"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,387.4816,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,387.4816,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4558"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,387.4816,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,335.14782,705.10346)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4581"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,335.14782,705.10346)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,439.81534,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4612"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4614"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4616"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4620"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,439.81534,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4629"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,439.81534,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4636"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,439.81534,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,492.14914,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4654"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4657"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4659"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4661"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,492.14914,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4672"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,492.14914,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4679"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,492.14914,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,492.14914,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4790"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4792"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,492.14914,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient14252"
+ id="linearGradient4955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.121185,0,0,0.118446,492.14914,706.7317)"
+ x1="430.17068"
+ y1="224.03020"
+ x2="305.61548"
+ y2="222.67409" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10491"
+ id="linearGradient4959"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="355.46143"
+ y1="208.43527"
+ x2="305.45908"
+ y2="209.47983" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient4961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.898229,1.113302)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11116"
+ id="linearGradient4963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.972343,1.028444)"
+ x1="371.22302"
+ y1="211.30777"
+ x2="274.47937"
+ y2="216.53050" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4965"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,492.14914,706.7317)"
+ x1="280.17413"
+ y1="348.70358"
+ x2="243.94989"
+ y2="344.28131" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.4945766"
+ inkscape:cx="565.083"
+ inkscape:cy="319.45857"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="931"
+ inkscape:window-height="591"
+ inkscape:window-x="343"
+ inkscape:window-y="12"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata7956">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g6457"
+ transform="translate(-107.48,462.164)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/flapdown.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 194.02291,88.029106 C 194.02291,88.029106 191.92728,71.488637 202.18088,71.33895 C 212.43447,71.189262 213.48228,77.9252 213.48228,77.9252 C 213.48228,77.9252 215.27853,87.654887 214.53009,89.825356 C 213.78166,91.995825 193.72353,91.846137 193.72353,91.846137 L 194.02291,88.029106 z "
+ id="path3622"
+ style="fill:url(#linearGradient2582);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path2979"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient13630);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116286,0,0,0.12021,159.2214,54.97146)" />
+ <path
+ transform="matrix(0.129005,0,0,0.129005,155.8215,53.54526)"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path3601"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient10494);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3620"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient13005);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116286,0,0,0.12021,167.2841,55.21335)" />
+ <path
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path3621"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient11119);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.129005,0,0,0.129005,163.8036,53.46463)" />
+ <path
+ d="M 218.04775,97.160044 C 218.04775,97.160044 223.28681,110.40739 219.844,114.74832 C 216.40119,119.08926 213.18291,124.40317 213.18291,124.40317 C 213.18291,124.40317 182.12275,127.32207 187.58634,116.39489 C 193.04994,105.4677 197.98962,113.17661 197.98962,113.17661 L 202.03119,105.09348 L 187.58634,114.67348 C 187.58634,114.67348 188.18509,102.62364 190.43041,97.459419 C 192.67572,92.2952 210.18916,96.037387 210.18916,96.037387 L 218.04775,97.160044 z "
+ id="path4251"
+ style="fill:url(#linearGradient2575);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 214.30556,89.076919 C 214.30556,89.076919 214.08103,91.920981 215.95212,91.771294 C 217.82322,91.621606 233.09134,92.968794 235.33666,97.309731 C 237.58197,101.65067 236.90838,102.32426 236.90838,102.32426 C 236.90838,102.32426 217.82322,98.582075 217.59869,96.636137 C 217.37416,94.6902 211.68603,93.941762 211.68603,93.941762 L 214.30556,89.076919 z "
+ id="path4249"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.0299375pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 192.22666,93.417856 C 192.22666,93.417856 189.60712,98.357544 190.13103,100.45317 C 190.65494,102.54879 188.55931,114.74832 188.55931,114.74832 L 211.38666,115.34707 L 218.49681,96.336762 L 213.93134,90.723481 L 212.58416,88.328481 L 205.17462,91.69645 L 193.72353,91.995825"
+ id="path9248"
+ style="fill:url(#linearGradient2571);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.11975,0,0,0.11975,158.7715,55.71311)"
+ id="g26097">
+ <path
+ d="M 208.75,493.61218 C 216.875,474.23718 223.125,470.48718 223.125,470.48718 L 238.125,474.86218 L 261.875,539.86218 L 207.5,519.86218 L 204.375,494.23718"
+ id="path7993"
+ style="fill:url(#linearGradient25475);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 201.25,536.73718 C 201.25,536.73718 173.125,511.73718 182.5,496.73718 C 191.875,481.73718 201.25,536.73718 201.25,536.73718 z "
+ id="path4874"
+ style="fill:url(#linearGradient18625);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 232.5,530.48718 C 232.5,530.48718 197.5,461.73718 241.25,470.48718 C 285,479.23718 320,564.86218 293.75,572.98718 C 267.5,581.11218 208.125,559.23718 201.25,535.48718 C 194.375,511.73718 165,480.48718 191.875,469.23718 C 218.75,457.98718 226.875,469.86218 226.875,469.86218"
+ id="path4873"
+ style="fill:url(#linearGradient18000);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ d="M 194.49185,88.178794 C 194.49185,88.178794 194.71638,91.022856 192.84529,90.873169 C 190.97419,90.723481 175.70607,92.070669 173.46076,96.411606 C 171.21544,100.75254 171.88904,101.42614 171.88904,101.42614 C 171.88904,101.42614 190.97419,97.68395 191.19872,95.738012 C 191.42326,93.792075 197.11138,93.043637 197.11138,93.043637 L 194.49185,88.178794 z "
+ id="path9244"
+ style="fill:url(#linearGradient2564);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 203.37838,119.68801 C 203.37838,119.68801 223.96041,119.08926 212.58416,93.193325 C 201.20791,67.297388 193.72353,96.860669 193.72353,96.860669 C 193.72353,96.860669 185.71525,118.93957 203.37838,119.68801 z "
+ id="path1108"
+ style="fill:url(#linearGradient2561);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.0299375pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 196.34306,84.735981 C 196.34306,84.735981 200.38462,81.966762 203.15384,82.415825 C 205.92306,82.864887 209.74009,83.613325 210.18916,84.361762 C 210.63822,85.1102 212.88353,88.253637 208.84197,89.525981 C 204.80041,90.798325 198.36384,91.621606 196.56759,88.328481 C 194.77134,85.035356 197.16634,84.062387 197.16634,84.062387"
+ id="path2357"
+ style="fill:url(#linearGradient2558);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.0299375pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 196.94181,86.457387 C 196.94181,86.457387 202.40541,89.076919 209.44072,86.607075"
+ id="path2353"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.43700001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 200.45947,83.613325 C 200.71137,83.637724 201.11437,83.435563 201.35759,83.31395"
+ id="path11120"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.44999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 203.75259,83.388794 C 203.79995,83.340007 204.21901,83.584582 204.42619,83.688169"
+ id="path11121"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.44999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 222.96519,115.53359 C 221.99222,113.21343 221.24378,112.76437 221.24378,112.76437 L 219.44753,113.28828 L 216.60347,121.07203 L 223.11487,118.67703 L 223.48909,115.60843"
+ id="path3630"
+ style="fill:url(#linearGradient2552);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 223.86331,120.69781 C 223.86331,120.69781 227.23128,117.70406 226.10862,115.90781 C 224.98597,114.11156 223.86331,120.69781 223.86331,120.69781 z "
+ id="path3631"
+ style="fill:url(#linearGradient2549);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.0299375pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 220.12113,119.94937 C 220.12113,119.94937 224.31238,111.71656 219.07331,112.76437 C 213.83425,113.81218 209.643,124.06578 212.78644,125.03874 C 215.92987,126.01171 223.04003,123.39218 223.86331,120.54812 C 224.68659,117.70406 228.20425,113.96187 224.98597,112.61468 C 221.76769,111.26749 220.79472,112.68953 220.79472,112.68953"
+ id="path3632"
+ style="fill:url(#linearGradient2546);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.0299375pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <g
+ id="g7905"
+ transform="matrix(0.308586,0,0,0.306644,-59.52397,-113.4369)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/intact.png">
+ <path
+ sodipodi:nodetypes="cssscccsscssssccsc"
+ id="path2445"
+ d="M 456.21875,588.5625 C 410.17772,588.5625 371.91939,604.42438 343.84019,641.21525 C 320.37378,671.96221 303.09375,719.55698 303.09375,763.53125 C 303.09375,763.64058 303.0936,763.74044 303.09375,763.84375 C 303.09425,764.18468 303.09134,764.51419 303.09375,764.875 L 303.15625,764.875 C 303.69402,769.77692 308.18796,774.307 315.84375,778.40625 C 317.5947,747.89474 329.40042,724.25 343.71875,724.25 C 359.24255,724.24998 371.84375,752.04014 371.84375,786.25 C 371.84375,788.8739 371.76887,791.4303 371.625,793.96875 C 377.30471,794.8752 383.22198,795.72329 389.375,796.46875 C 409.68946,798.92992 431.5196,801.34375 455.6875,801.34375 C 498.58336,801.34375 534.23713,792.82305 561.96875,785.8125 C 588.69138,779.05698 608.28124,774.0012 608.28125,763.84375 C 608.28125,763.73953 608.28471,763.63527 608.28125,763.53125 L 609.34375,763.53125 C 609.34375,722.63525 585.59704,671.45563 565,641.65625 C 536.9487,601.0722 504.95327,588.5625 456.21875,588.5625 z "
+ style="opacity:1;fill:url(#linearGradient3352);fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect3354"
+ d="M 305.17672,731.07805 C 337.25815,721.32884 305.57383,731.07805 339.07785,721.05449 C 357.19583,722.1038 372.96179,730.46608 373.15827,793.8207 C 340.65671,806.91539 373.23427,793.73466 331.45466,810.63093 C 330.84557,758.08699 329.59912,741.5527 305.17672,731.07805 z "
+ style="fill:#0df2f2;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:open="true"
+ transform="matrix(1,0,0,-1.64,1.041587,2103.185)"
+ sodipodi:end="2.9812358"
+ sodipodi:start="0"
+ d="M 321.85025,789.36157 A 19.269352,39.059494 0 0 1 283.55877,795.59822"
+ sodipodi:ry="39.059494"
+ sodipodi:rx="19.269352"
+ sodipodi:cy="789.36157"
+ sodipodi:cx="302.5809"
+ id="path4240"
+ style="opacity:1;fill:#067373;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccsccsc"
+ id="path4234"
+ d="M 304.64804,731.54736 C 290.85121,732.11701 280.65704,759.16253 280.65704,797.49311 L 293.37438,800.58594 C 294.18142,775.7571 295.06419,749.88325 305.13055,749.88324 C 315.19692,749.88324 319.68454,783.3092 320.49159,808.13806 L 332.93843,810.24174 C 332.93843,793.35244 332.27776,765.2331 326.47486,752.0221 C 320.83477,739.18177 313.16226,731.54736 304.64804,731.54736 z "
+ style="fill:#0ccdcd;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g7864">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 604.97707,731.7485 C 559.86559,769.60991 428.76038,782.09612 372.97521,764.77654 C 372.77382,765.98488 333.50267,784.91559 333.50267,784.91559 L 319.00256,782.49891"
+ id="path6899"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 593.6992,698.72046 C 555.43501,731.14433 435.50832,747.32369 360.08622,730.94294 C 360.63269,731.59246 325.44705,746.24861 325.44705,746.24861 L 313.36363,759.13761"
+ id="path6901"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 580.81021,667.30354 C 567.11566,700.33158 369.75297,715.43587 323.83594,684.22034"
+ id="path6905"
+ sodipodi:nodetypes="cs" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 309.33581,715.63726 C 317.39143,723.69288 326.25261,724.49844 326.25261,724.49844"
+ id="path6907"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,641.52555 C 546.17105,667.30353 376.19746,682.60923 334.30823,657.6368"
+ id="path6909"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 541.33767,616.55314 C 522.00418,641.52556 396.33651,651.99786 356.86398,627.02544"
+ id="path6911"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 513.94856,598.83077 C 504.28182,614.94202 420.50338,618.16426 386.66977,606.88639"
+ id="path6913"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 431.78124,590.77515 C 435.00349,605.27527 454.33697,614.13645 454.33697,614.13645"
+ id="path6915" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 480.92052,590.77515 C 463.19816,606.08083 439.0313,601.24746 439.0313,601.24746"
+ id="path6917" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 290.80789,740.60968 C 299.66907,751.08199 300.47463,751.88755 300.47463,751.88755"
+ id="path6919" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 281.14114,774.44329 C 290.00232,776.85997 294.8357,780.88778 294.8357,780.88778"
+ id="path6921" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,753.49868 C 570.3379,765.58211 571.94903,782.49891 571.94903,782.49891"
+ id="path6923" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 495.42064,768.80435 C 499.44845,785.72116 499.44845,796.99902 499.44845,796.99902"
+ id="path6925" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 425.33674,799.41571 C 426.1423,778.4711 429.36455,771.22104 429.36455,771.22104"
+ id="path6927" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 401.16988,735.77631 C 393.91982,759.13761 395.53095,768.80435 395.53095,768.80435"
+ id="path6929" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 462.39259,736.58187 C 466.42041,763.97098 466.42041,771.22104 466.42041,771.22104"
+ id="path6931" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 522.00418,726.91513 C 531.67093,746.24862 533.28205,761.5543 533.28205,761.5543"
+ id="path6933" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 583.2269,705.97052 C 596.11589,728.52625 597.72701,737.38744 597.72701,737.38744"
+ id="path6935" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 542.9488,687.44259 C 555.83779,701.94271 558.25447,716.44282 558.25447,716.44282"
+ id="path6937" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 489.7817,696.30377 C 497.03176,714.8317 499.44845,730.94294 499.44845,730.94294"
+ id="path6939" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 437.42017,700.33158 C 431.78124,723.69288 433.39236,737.38744 433.39236,737.38744"
+ id="path6941" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 373.78077,699.52602 C 367.33628,722.08176 368.14184,731.7485 368.14184,731.7485"
+ id="path6943" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 334.30824,690.66484 C 323.03037,705.97052 316.58587,720.47063 316.58587,720.47063"
+ id="path6945" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 364.91959,664.88685 C 351.22504,685.02591 351.22504,693.88709 351.22504,693.88709"
+ id="path6947" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 410.83663,670.52579 C 405.19769,689.05372 406.00325,699.52602 406.00325,699.52602"
+ id="path6949" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 463.19816,668.91466 C 466.42041,689.85928 467.22597,698.72046 467.22597,698.72046"
+ id="path6951" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 505.89294,664.08129 C 513.143,677.77585 517.97637,693.08153 517.97637,693.08153"
+ id="path6953" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 553.4211,647.97005 C 567.11566,663.27573 571.14347,676.16472 571.14347,676.16472"
+ id="path6955" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 516.36525,630.24769 C 525.22643,639.10887 533.28205,656.02567 533.28205,656.02567"
+ id="path6957" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 478.50384,638.30331 C 485.75389,653.60899 488.17058,665.69242 488.17058,665.69242"
+ id="path6959" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 438.22573,640.71999 C 435.00349,659.24792 435.00349,668.91466 435.00349,668.91466"
+ id="path6961" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 398.7532,639.91443 C 391.50314,655.22011 390.69758,669.72023 390.69758,669.72023"
+ id="path6963" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 360.89178,629.44213 C 348.00279,645.55337 341.55829,660.05348 341.55829,660.05348"
+ id="path6965" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 394.72539,609.30308 C 384.25308,618.16426 377.80858,635.08106 377.80858,635.08106"
+ id="path6967" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 426.94787,613.33089 C 418.89225,627.02544 418.08668,640.71999 418.08668,640.71999"
+ id="path6969" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 460.78147,613.33089 C 463.19816,634.2755 464.00372,639.10887 464.00372,639.10887"
+ id="path6971" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 488.97614,609.30308 C 497.83732,622.99763 500.25401,633.46994 500.25401,633.46994"
+ id="path6973" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 511.53188,601.24746 C 525.22643,612.52532 534.89318,622.19207 534.89318,622.19207"
+ id="path6975" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 346.39167,738.99856 C 358.4751,750.27643 358.4751,772.83216 358.4751,772.83216"
+ id="path6977"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+ <g
+ id="g6480"
+ transform="translate(-107.48,462.164)">
+ <path
+ d="M 269.82529,88.009463 C 269.82529,88.009463 267.74956,71.46027 277.9058,71.310503 C 288.06204,71.160738 289.0999,77.900228 289.0999,77.900228 C 289.0999,77.900228 290.8791,87.635046 290.13776,89.806659 C 289.39643,91.978275 269.52876,91.828508 269.52876,91.828508 L 269.82529,88.009463 z "
+ id="path2163"
+ style="fill:url(#linearGradient4391);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path2165"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4393);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116285,0,0,0.120211,234.4638,55.20206)" />
+ <path
+ transform="matrix(0.129004,0,0,0.129006,231.064,53.77584)"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path2167"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4399);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path2169"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4395);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116285,0,0,0.120211,242.5266,55.44395)" />
+ <path
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path2171"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4397);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.129004,0,0,0.129006,239.0461,53.69521)" />
+ <path
+ d="M 293.62202,97.145216 C 293.62202,97.145216 298.81134,110.39955 295.40122,114.74278 C 291.99109,119.086 288.80337,124.40271 288.80337,124.40271 C 288.80337,124.40271 258.03812,127.32316 263.44984,116.3902 C 268.86156,105.45726 273.75435,113.17023 273.75435,113.17023 L 277.75753,105.08284 L 263.44984,114.66789 C 263.44984,114.66789 264.0429,102.61169 266.2669,97.444748 C 268.49089,92.277807 285.83804,96.021967 285.83804,96.021967 L 293.62202,97.145216 z "
+ id="path2173"
+ style="fill:url(#linearGradient4384);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 289.91536,89.057827 C 289.91536,89.057827 289.69297,91.90339 291.5463,91.753625 C 293.39962,91.603858 308.66611,86.129438 310.89011,90.472665 C 313.1141,94.815892 312.73358,96.46446 312.73358,96.46446 C 312.73358,96.46446 293.39962,98.567998 293.17722,96.621034 C 292.95482,94.674071 287.32071,93.925239 287.32071,93.925239 L 289.91536,89.057827 z "
+ id="path2175"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02980289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 268.04609,93.401054 C 268.04609,93.401054 265.45143,98.343348 265.97037,100.44008 C 266.4893,102.53681 264.41357,114.74278 264.41357,114.74278 L 287.02417,115.34184 L 294.06682,96.321502 L 289.5447,90.705258 L 288.2103,88.308995 L 280.87113,91.67874 L 269.52876,91.978275"
+ id="path2177"
+ style="fill:url(#linearGradient4380);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.118613,0,0,0.119813,234.9086,55.67642)"
+ id="g2179">
+ <path
+ d="M 208.75,493.61218 C 216.875,474.23718 223.125,470.48718 223.125,470.48718 L 238.125,474.86218 L 261.875,539.86218 L 207.5,519.86218 L 204.375,494.23718"
+ id="path2181"
+ style="fill:url(#linearGradient2276);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 201.25,536.73718 C 201.25,536.73718 173.125,511.73718 182.5,496.73718 C 191.875,481.73718 201.25,536.73718 201.25,536.73718 z "
+ id="path2183"
+ style="fill:url(#linearGradient2278);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 232.5,530.48718 C 232.5,530.48718 197.5,461.73718 241.25,470.48718 C 285,479.23718 320,564.86218 293.75,572.98718 C 267.5,581.11218 208.125,559.23718 201.25,535.48718 C 194.375,511.73718 165,480.48718 191.875,469.23718 C 218.75,457.98718 226.875,469.86218 226.875,469.86218"
+ id="path2185"
+ style="fill:url(#linearGradient2280);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 270.28978,88.159231 C 270.28978,88.159231 270.51218,91.004791 268.65885,90.855026 C 266.80552,90.705258 251.39569,86.205457 249.1717,90.548684 C 246.94771,94.891911 247.6149,95.565861 247.6149,95.565861 C 247.6149,95.565861 266.80552,97.669398 267.02792,95.722435 C 267.25032,93.775471 272.88444,93.026639 272.88444,93.026639 L 270.28978,88.159231 z "
+ id="path2187"
+ style="fill:url(#linearGradient4373);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 279.09193,119.68507 C 279.09193,119.68507 299.47854,119.086 288.2103,93.176407 C 276.94207,67.266811 269.52876,96.845684 269.52876,96.845684 C 269.52876,96.845684 261.59651,118.93624 279.09193,119.68507 z "
+ id="path2189"
+ style="fill:url(#linearGradient4370);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02980289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 272.12341,84.7146 C 272.12341,84.7146 276.12661,81.943923 278.86953,82.393222 C 281.61245,82.842519 285.39324,83.591354 285.83804,84.340186 C 286.28284,85.089018 288.50684,88.234113 284.50365,89.507127 C 280.50046,90.780144 274.12501,91.603858 272.34581,88.308995 C 270.56662,85.014132 272.93888,84.040651 272.93888,84.040651"
+ id="path2191"
+ style="fill:url(#linearGradient4367);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02980289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 272.71648,86.436914 C 272.71648,86.436914 278.1282,89.057827 285.09671,86.586681"
+ id="path2193"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.43700001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 276.20074,83.591354 C 276.45025,83.615764 276.84942,83.413497 277.09033,83.291819"
+ id="path2195"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 279.46259,83.366704 C 279.5095,83.317892 279.92459,83.562596 280.12979,83.666236"
+ id="path2197"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 298.49279,115.52846 C 297.52906,113.20708 296.78773,112.75778 296.78773,112.75778 L 295.00853,113.28196 L 292.19148,121.06982 L 298.64106,118.67356 L 299.01172,115.60335"
+ id="path2199"
+ style="fill:url(#linearGradient4361);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 299.38239,120.6954 C 299.38239,120.6954 302.71838,117.70008 301.60638,115.90288 C 300.49439,114.10568 299.38239,120.6954 299.38239,120.6954 z "
+ id="path2201"
+ style="fill:url(#linearGradient4358);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02980289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 295.67573,119.94657 C 295.67573,119.94657 299.82719,111.70942 294.63787,112.75778 C 289.44855,113.80615 285.2971,124.06515 288.41069,125.03863 C 291.52428,126.01212 298.56692,123.3912 299.38239,120.54564 C 300.19785,117.70008 303.68211,113.95591 300.49439,112.60802 C 297.30666,111.26012 296.34293,112.6829 296.34293,112.6829"
+ id="path2203"
+ style="fill:url(#linearGradient4355);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02980289pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <g
+ id="g6526"
+ transform="translate(-107.48,462.164)">
+ <path
+ d="M 413.00773,94.044858 C 413.00773,94.044858 410.81566,78.129632 421.54115,77.985603 C 432.26664,77.841573 433.36268,84.322887 433.36268,84.322887 C 433.36268,84.322887 435.2416,93.684785 434.45872,95.773208 C 433.67583,97.861631 412.69458,97.717602 412.69458,97.717602 L 413.00773,94.044858 z "
+ id="path9958"
+ style="fill:url(#linearGradient4681);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 438.13827,98.221704 C 438.13827,98.221704 443.61844,110.96829 440.01719,115.14514 C 436.41593,119.32198 433.04953,124.43502 433.04953,124.43502 C 433.04953,124.43502 400.5599,127.24359 406.27494,116.72946 C 411.98999,106.21532 417.15701,113.63283 417.15701,113.63283 L 421.38458,105.85525 L 406.27494,115.07312 C 406.27494,115.07312 406.90125,103.47877 409.24989,98.509763 C 411.59854,93.540755 429.918,97.141485 429.918,97.141485 L 438.13827,98.221704 z "
+ id="path9968"
+ style="fill:url(#linearGradient4678);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 411.12881,94.620974 C 411.12881,94.620974 408.38872,99.373938 408.93674,101.39035 C 409.48476,103.40676 407.29269,115.14514 407.29269,115.14514 L 431.17061,115.72125 L 438.608,97.429544 L 433.83241,92.028449 L 432.42322,89.723982 L 424.67268,92.964639 L 412.69458,93.252697"
+ id="path9970"
+ style="fill:url(#linearGradient4675);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.125261,0,0,0.115223,376.1339,58.3415)"
+ id="g9972">
+ <path
+ d="M 208.75,493.61218 C 216.875,474.23718 223.125,470.48718 223.125,470.48718 L 238.125,474.86218 L 261.875,539.86218 L 207.5,519.86218 L 204.375,494.23718"
+ id="path9974"
+ style="fill:url(#linearGradient11227);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 201.25,536.73718 C 201.25,536.73718 173.125,511.73718 182.5,496.73718 C 191.875,481.73718 201.25,536.73718 201.25,536.73718 z "
+ id="path9976"
+ style="fill:url(#linearGradient11229);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 232.5,530.48718 C 232.5,530.48718 197.5,461.73718 241.25,470.48718 C 285,479.23718 320,564.86218 293.75,572.98718 C 267.5,581.11218 208.125,559.23718 201.25,535.48718 C 194.375,511.73718 165,480.48718 191.875,469.23718 C 218.75,457.98718 226.875,469.86218 226.875,469.86218"
+ id="path9978"
+ style="fill:url(#linearGradient11231);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ sodipodi:nodetypes="cssscscc"
+ d="M 413.49826,89.579953 C 413.49826,89.579953 415.57416,94.030824 412.02644,93.324712 C 409.22533,92.767197 422.5137,79.010211 416.5652,77.08542 C 413.75608,76.176459 413.60785,76.479156 411.13873,76.497885 C 405.32678,76.540949 408.64438,103.93966 408.64438,103.93966 C 408.64438,103.93966 412.98386,90.095939 411.43144,96.738205 C 410.37167,101.27263 416.23835,94.260901 416.23835,94.260901 L 413.49826,89.579953 z "
+ id="path9980"
+ style="fill:url(#linearGradient4668);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 422.79367,119.89997 C 422.79367,119.89997 444.3264,119.43714 432.42467,99.420256 C 420.52294,79.403372 412.69285,102.25502 412.69285,102.25502 C 412.69285,102.25502 404.31466,119.32144 422.79367,119.89997 z "
+ id="path9982"
+ style="fill:url(#linearGradient4665);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02692176pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 415.43467,90.876215 C 415.43467,90.876215 419.66223,88.211675 422.5589,88.643763 C 425.45557,89.07585 429.44827,89.795996 429.918,90.516142 C 430.38773,91.236288 432.73638,94.260901 428.50881,95.48515 C 424.28124,96.709398 417.54845,97.501558 415.66953,94.332916 C 413.79062,91.164274 416.29584,90.228084 416.29584,90.228084"
+ id="path9984"
+ style="fill:url(#linearGradient4662);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.03003437pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 430.6189,93.330451 C 430.6189,93.330451 424.25212,93.197934 416.05379,93.322881"
+ id="path9986"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.40900001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 419.74052,89.795996 C 420.00402,89.819474 420.42556,89.624953 420.67998,89.507938"
+ id="path9988"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.44999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 423.18521,89.579953 C 423.23474,89.533014 423.6731,89.76834 423.8898,89.868011"
+ id="path9990"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.44999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 443.28203,115.90071 C 442.26428,113.66826 441.4814,113.23617 441.4814,113.23617 L 439.60248,113.74028 L 436.62753,121.22979 L 443.43861,118.92533 L 443.83005,115.97273"
+ id="path9992"
+ style="fill:url(#linearGradient4656);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 444.22149,120.86972 C 444.22149,120.86972 447.74446,117.98914 446.57014,116.26079 C 445.39581,114.53244 444.22149,120.86972 444.22149,120.86972 z "
+ id="path9994"
+ style="fill:url(#linearGradient4653);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.03003437pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 440.30708,120.14957 C 440.30708,120.14957 444.69122,112.22797 439.21104,113.23617 C 433.73086,114.24438 429.34672,124.11038 432.63483,125.04657 C 435.92294,125.98276 443.36032,123.46225 444.22149,120.72569 C 445.08266,117.98914 448.76221,114.38841 445.39581,113.09214 C 442.02942,111.79588 441.01167,113.16416 441.01167,113.16416"
+ id="path9996"
+ style="fill:url(#linearGradient4650);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.03003437pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cssscscc"
+ d="M 433.40004,90.065037 C 433.40004,90.065037 431.32415,94.515909 434.87186,93.809796 C 437.67297,93.252281 424.38461,79.495295 430.3331,77.570504 C 433.14221,76.661542 433.29044,76.96424 435.75957,76.982969 C 441.57152,77.026033 438.25392,104.42475 438.25392,104.42475 C 438.25392,104.42475 433.91444,90.581024 435.46685,97.223289 C 436.52663,101.75771 430.65996,94.745986 430.65996,94.745986 L 433.40004,90.065037 z "
+ id="path3030"
+ style="fill:url(#linearGradient4647);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10131"
+ d="M 416.08755,86.16795 C 416.55677,86.104785 418.10472,86.161567 418.87306,86.353653 C 419.65138,86.548234 420.09906,86.186433 420.91577,85.982252 C 421.05006,85.948682 421.16337,86.106049 421.28717,86.16795"
+ style="fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.43196881;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ id="path10133"
+ d="M 424.25839,86.353653 C 424.61401,86.264749 426.41576,86.382314 427.0439,86.539351 C 427.90895,86.755616 428.51092,86.544 429.27231,86.353653 C 429.45247,86.308615 429.64371,86.353653 429.82942,86.353653"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.43196881;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.539961,0,0,0.539961,107.4527,25.2682)"
+ id="g11030">
+ <path
+ id="path11041"
+ d="M 592.21875,113.34375 C 592.7159,113.59671 595.18814,113.30791 593.8375,113.3125 C 593.45803,113.33489 592.04659,113.26886 592.21875,113.34375 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11046"
+ d="M 591.34375,113.28125 C 592.61694,113.59036 593.96161,113.65017 595.21875,113.21875 C 593.78125,113.21875 592.34375,113.21875 590.90625,113.21875 C 591.05208,113.23958 591.19792,113.26042 591.34375,113.28125 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11051"
+ d="M 587.09375,113 C 586.14828,113.01072 586.77487,113.35411 587.41875,113.21875 C 589.18501,113.12963 590.94039,113.38203 592.6684,113.69924 C 593.85491,113.86487 594.99192,113.43965 596.13125,113.21875 C 596.9301,113.35659 597.17374,112.93247 596.25,113 C 593.27924,113.06345 590.29666,113.04098 587.32552,112.98637 C 587.24826,112.99091 587.17101,112.99546 587.09375,113 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11056"
+ d="M 587.09375,113 C 586.14828,113.01072 586.77487,113.35411 587.41875,113.21875 C 589.18501,113.12963 590.94039,113.38203 592.6684,113.69924 C 593.85491,113.86487 594.99192,113.43965 596.13125,113.21875 C 596.9301,113.35659 597.17374,112.93247 596.25,113 C 593.27924,113.06345 590.29666,113.04098 587.32552,112.98637 C 587.24826,112.99091 587.17101,112.99546 587.09375,113 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11061"
+ d="M 587.09375,112.90625 C 585.24059,113.23481 587.75819,113.4329 588.51875,113.3125 C 590.96861,113.27469 593.44466,114.38118 595.83549,113.35637 C 597.19483,113.51681 597.42534,112.76389 596.02076,112.93453 C 593.04573,112.94727 590.06553,112.9388 587.09375,112.90625 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11066"
+ d="M 587.09375,112.78125 C 584.67465,113.35113 588.08187,113.60104 589.09375,113.4375 C 591.42542,113.59348 593.69708,114.40018 596,113.4375 C 598.7176,113.3996 596.04451,112.40348 594.76875,112.8125 C 592.21025,112.83164 589.64872,112.79577 587.09375,112.78125 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11071"
+ d="M 587.09375,112.6875 C 584.1354,113.38914 588.27689,113.70683 589.5235,113.5659 C 592.29143,114.20016 595.02846,114.10156 597.71875,113.1875 C 595.24152,112.01163 592.22144,113.08039 589.5375,112.71875 C 588.72235,112.74701 587.90709,112.59909 587.09375,112.6875 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11076"
+ d="M 587.09375,112.59375 C 583.60539,113.45918 588.31655,113.78696 589.84375,113.6875 C 592.54613,114.35932 595.35811,114.15503 597.9375,113.1875 C 594.78338,111.74214 590.99224,113.10661 587.59375,112.5625 L 587.09472,112.59369 L 587.09375,112.59375 z "
+ style="opacity:0.09090899;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#989898;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ </g>
+ <g
+ transform="matrix(0.539961,0,0,0.539961,107.4527,25.2682)"
+ id="g11081">
+ <path
+ id="path11092"
+ d="M 577.03125,113 C 578.70588,113.11528 577.75271,112.86704 577.03125,113 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11097"
+ d="M 580.03125,112.6875 C 580.52972,112.80723 581.1773,112.54343 580.4358,112.56108 C 580.30095,112.60322 580.1661,112.64536 580.03125,112.6875 z M 576.15625,112.90625 C 577.03639,113.14129 577.98479,113.26237 578.84375,112.875 C 577.875,112.875 576.90625,112.875 575.9375,112.875 C 576.01042,112.88542 576.08333,112.89583 576.15625,112.90625 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11102"
+ d="M 579.96875,112.5 C 578.89012,112.8869 577.70285,112.59888 576.575,112.6875 C 574.91423,112.73081 573.25223,112.60872 571.59375,112.6875 C 571.1538,113.0092 572.56263,112.82927 572.89375,112.875 C 574.39374,112.81976 575.88525,113.04699 577.35,113.3125 C 578.36436,113.4658 579.22827,112.70684 580.2375,112.875 C 580.61092,112.81033 582.10075,113.05489 581.1955,112.63605 C 580.81425,112.26911 580.4384,112.29773 579.96875,112.5 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11107"
+ d="M 579.96875,112.5 C 578.89012,112.8869 577.70285,112.59888 576.575,112.6875 C 574.91423,112.73081 573.25223,112.60872 571.59375,112.6875 C 571.1538,113.0092 572.56263,112.82927 572.89375,112.875 C 574.39374,112.81976 575.88525,113.04699 577.35,113.3125 C 578.36436,113.4658 579.22827,112.70684 580.2375,112.875 C 580.61092,112.81033 582.10075,113.05489 581.1955,112.63605 C 580.81425,112.26911 580.4384,112.29773 579.96875,112.5 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11112"
+ d="M 579.9375,112.40625 C 577.95358,112.84147 575.8136,112.47815 573.76892,112.58542 C 573.19426,112.56076 570.65623,112.41496 571.59375,112.96875 C 573.65692,112.81574 575.69324,113.18413 577.71875,113.40625 C 578.95193,113.22261 580.12775,112.76962 581.41875,112.96875 C 582.47539,113.1949 580.92404,112.22574 580.5,112.25 C 580.31027,112.2808 580.1252,112.35972 579.9375,112.40625 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11117"
+ d="M 580.4375,112.15625 C 577.49166,112.97278 574.25614,112.05025 571.29964,112.61333 C 571.02731,113.54123 574.16342,112.85441 575.28543,113.20608 C 576.7502,113.51867 578.24925,113.67099 579.70625,113.09375 C 581.24852,113.09902 583.19138,113.32989 580.9375,112.21875 C 580.85235,112.06686 580.57711,112.10912 580.4375,112.15625 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11124"
+ d="M 580.40625,112.0625 C 577.30372,113.09438 573.72276,111.56697 570.71875,112.8125 C 572.94596,113.45072 575.47087,113.16004 577.71875,113.625 C 579.26748,113.22517 580.95613,113.06543 582.65625,113.1875 C 581.89766,112.92896 581.2082,111.93791 580.40625,112.0625 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ id="path11129"
+ d="M 580.375,111.96875 C 577.21072,113.02794 573.54141,111.39678 570.5,112.8125 C 572.88124,113.51261 575.53475,113.36682 578.03125,113.71875 C 579.19606,112.75327 584.6983,114.02452 581.74501,112.50951 C 581.23886,112.32779 580.9446,111.75558 580.375,111.96875 z "
+ style="opacity:0.09090899;fill:white;fill-opacity:0.75;fill-rule:evenodd;stroke:#9a9a9a;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ </g>
+ </g>
+ <g
+ id="g6503"
+ transform="translate(-107.48,462.164)">
+ <path
+ d="M 346.00986,88.009507 C 346.00986,88.009507 343.91332,71.460328 354.17137,71.310562 C 364.42943,71.160795 365.4777,77.900279 365.4777,77.900279 C 365.4777,77.900279 367.27472,87.635088 366.52596,89.806701 C 365.7772,91.978313 345.71035,91.828548 345.71035,91.828548 L 346.00986,88.009507 z "
+ id="path11249"
+ style="fill:url(#linearGradient4514);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path11251"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4520);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116286,0,0,0.120207,310.7383,55.2028)" />
+ <path
+ transform="matrix(0.129004,0,0,0.129003,308.5131,53.77661)"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path11253"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4522);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path11255"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4516);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.116286,0,0,0.120207,318.801,55.44468)" />
+ <path
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path11257"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient4518);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.129004,0,0,0.129003,314.8593,53.69599)" />
+ <path
+ d="M 370.04514,97.145254 C 370.04514,97.145254 375.28649,110.39957 371.84218,114.74279 C 368.39787,119.08602 365.17819,124.40272 365.17819,124.40272 C 365.17819,124.40272 334.10453,127.32317 339.5705,116.39022 C 345.03646,105.45728 349.9783,113.17025 349.9783,113.17025 L 354.02162,105.08287 L 339.5705,114.66791 C 339.5705,114.66791 340.1695,102.61172 342.41579,97.444788 C 344.66208,92.277847 362.18313,96.022003 362.18313,96.022003 L 370.04514,97.145254 z "
+ id="path11259"
+ style="fill:url(#linearGradient4507);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 366.30133,89.057874 C 366.30133,89.057874 366.0767,91.903433 367.94861,91.753663 C 369.82052,91.603899 385.09529,92.951794 387.34157,97.295018 C 389.58786,101.63824 388.91398,102.31219 388.91398,102.31219 C 388.91398,102.31219 369.82052,98.568034 369.59589,96.621071 C 369.37126,94.674108 363.68066,93.925275 363.68066,93.925275 L 366.30133,89.057874 z "
+ id="path11261"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 344.21282,93.401092 C 344.21282,93.401092 341.59215,98.343384 342.11629,100.44011 C 342.64042,102.53684 340.54389,114.74279 340.54389,114.74279 L 363.38116,115.34186 L 370.49441,96.321537 L 365.92695,90.705303 L 364.57918,88.309041 L 357.16642,91.678784 L 345.71035,91.978313"
+ id="path11263"
+ style="fill:url(#linearGradient4503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.119802,0,0,0.119813,310.7431,55.67649)"
+ id="g11265">
+ <path
+ d="M 208.75,493.61218 C 216.875,474.23718 223.125,470.48718 223.125,470.48718 L 238.125,474.86218 L 261.875,539.86218 L 207.5,519.86218 L 204.375,494.23718"
+ id="path11267"
+ style="fill:url(#linearGradient11406);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 201.25,536.73718 C 201.25,536.73718 173.125,511.73718 182.5,496.73718 C 191.875,481.73718 201.25,536.73718 201.25,536.73718 z "
+ id="path11269"
+ style="fill:url(#linearGradient11408);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 232.5,530.48718 C 232.5,530.48718 197.5,461.73718 241.25,470.48718 C 285,479.23718 320,564.86218 293.75,572.98718 C 267.5,581.11218 208.125,559.23718 201.25,535.48718 C 194.375,511.73718 165,480.48718 191.875,469.23718 C 218.75,457.98718 226.875,469.86218 226.875,469.86218"
+ id="path11271"
+ style="fill:url(#linearGradient11410);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.25pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <path
+ d="M 346.479,88.159272 C 346.479,88.159272 346.70363,91.004831 344.83172,90.855067 C 342.95982,90.705303 327.68505,92.053197 325.43876,96.396422 C 323.19248,100.73965 323.86636,101.41359 323.86636,101.41359 C 323.86636,101.41359 342.95982,97.669437 343.18444,95.722474 C 343.40907,93.775511 349.09968,93.026679 349.09968,93.026679 L 346.479,88.159272 z "
+ id="path11273"
+ style="fill:url(#linearGradient4496);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 355.36939,119.68509 C 355.36939,119.68509 375.96038,119.08602 364.57918,93.176443 C 353.19798,67.266871 345.71035,96.84572 345.71035,96.84572 C 345.71035,96.84572 337.69859,118.93625 355.36939,119.68509 z "
+ id="path11275"
+ style="fill:url(#linearGradient4493);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 348.33102,84.71465 C 348.33102,84.71465 352.37434,81.943969 355.14477,82.393268 C 357.91519,82.842566 361.73388,83.591398 362.18313,84.340231 C 362.63239,85.089063 364.87868,88.234156 360.83536,89.507172 C 356.79204,90.780182 350.35268,91.603899 348.55565,88.309041 C 346.75862,85.014178 349.15466,84.040697 349.15466,84.040697"
+ id="path11277"
+ style="fill:url(#linearGradient4490);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 348.9354,87.358552 C 348.9354,87.358552 354.39668,84.133954 361.42901,87.17428"
+ id="path11279"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 352.44922,83.591398 C 352.70123,83.615814 353.1044,83.413547 353.34773,83.29187"
+ id="path11281"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 355.74377,83.366749 C 355.79115,83.317939 356.2104,83.56264 356.41766,83.666283"
+ id="path11283"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 374.96471,115.52847 C 373.99132,113.20709 373.24256,112.75779 373.24256,112.75779 L 371.44552,113.28197 L 368.60023,121.06982 L 375.11446,118.67356 L 375.48884,115.60335"
+ id="path11285"
+ style="fill:url(#linearGradient4484);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 375.86323,120.6954 C 375.86323,120.6954 379.23266,117.70008 378.10951,115.90288 C 376.98637,114.10569 375.86323,120.6954 375.86323,120.6954 z "
+ id="path11287"
+ style="fill:url(#linearGradient4481);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 372.11941,119.94658 C 372.11941,119.94658 376.31249,111.70943 371.07114,112.75779 C 365.8298,113.80615 361.63673,124.06515 364.78153,125.03863 C 367.92634,126.01211 375.03959,123.3912 375.86323,120.54564 C 376.68686,117.70008 380.20605,113.95592 376.98637,112.60802 C 373.76669,111.26013 372.7933,112.68291 372.7933,112.68291"
+ id="path11289"
+ style="fill:url(#linearGradient4478);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <g
+ id="g1905"
+ transform="matrix(0.341005,0,0,0.341005,43.01253,278.2936)"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/steam1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 207.5914,422.75319 C -55.464688,337.64434 461.00774,546.10239 200.49792,420.54128 C -60.011888,294.98017 379.09284,637.44336 195.67998,416.39022 C 12.267116,195.33708 319.3028,666.2446 193.38919,411.88558 C 67.475578,157.52656 183.03708,701.49422 192.13851,407.75429 C 201.23994,114.01436 125.56752,676.59162 193.3952,402.939 C 261.22288,129.28638 22.186197,628.66523 196.20215,398.43745 C 370.2181,168.20966 -21.491607,571.39869 199.42316,393.07215 C 420.33792,214.74562 -44.973146,500.67536 203.0404,391.4509 C 451.05395,282.22644 -75.552888,409.38352 209.07573,388.53208 C 493.70435,367.68063 -59.508532,300.21199 214.64542,390.40351 C 488.79937,480.59503 -34.561156,247.8578 218.41046,390.30916 C 471.38207,532.76052 43.246079,167.01933 223.22492,393.80344 C 403.20376,620.58755 121.88261,147.28943 226.39381,399.24645 C 330.90501,651.20347 189.1013,134.65932 227.7693,404.01107 C 266.4373,673.36282 276.4708,143.80171 225.01246,409.62107 C 173.55412,675.44043 383.65772,192.29536 223.94005,415.40148 C 64.222376,638.50761 437.74838,237.26417 220.98178,418.9209 C 4.2151861,600.57763 465.82656,310.60134 216.04412,420.28068 C -33.738314,529.96002 492.86614,392.49775 212.66744,421.72173 C -67.531252,450.94571 470.64749,507.86204 207.5914,422.75319 z "
+ inkscape:randomized="0.1"
+ inkscape:rounded="53.7"
+ inkscape:flatsided="true"
+ sodipodi:arg2="1.9728546"
+ sodipodi:arg1="1.815775"
+ sodipodi:r2="16.454752"
+ sodipodi:r1="16.659863"
+ sodipodi:cy="405.86456"
+ sodipodi:cx="210.11172"
+ sodipodi:sides="20"
+ id="path1899"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 230.25423,407.86269 A 30.304577,32.324883 0 1 1 230.22801,407.46073 L 200.01021,409.90515 z"
+ sodipodi:ry="32.324883"
+ sodipodi:rx="30.304577"
+ sodipodi:cy="409.90515"
+ sodipodi:cx="200.01021"
+ id="path1901"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ sodipodi:type="star"
+ style="opacity:0.3;fill:aqua;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path12759"
+ sodipodi:sides="17"
+ sodipodi:cx="133.42902"
+ sodipodi:cy="655.85144"
+ sodipodi:r1="83.440025"
+ sodipodi:r2="70.924019"
+ sodipodi:arg1="0.19739556"
+ sodipodi:arg2="0.38219513"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.3"
+ d="M 205.38822,690.25677 C 201.04511,702.47966 212.40263,662.6214 204.8944,670.64435 C 197.38617,678.66731 187.25777,665.15751 184.3637,675.9809 C 181.46963,686.80429 197.82413,678.91221 188.07909,687.93234 C 178.33405,696.95247 211.22279,738.23407 200.39421,742.72541 C 189.56562,747.21674 178.48646,715.62879 166.11481,719.25926 C 153.74317,722.88972 184.11132,721.65802 171.03478,726.95283 C 157.95824,732.24764 144.85586,748.50166 132.14076,745.12476 C 119.42566,741.74786 160.14572,722.60972 147.62449,722.13303 C 135.10327,721.65634 150.62543,743.15649 137.59012,739.03759 C 124.5548,734.91869 100.19101,743.54873 91.755775,733.51135 C 83.320537,723.47396 107.78815,738.36251 95.638862,735.50332 C 83.489576,732.64412 70.916448,748.49483 64.807198,735.76228 C 58.697948,723.02974 96.55776,692.41175 93.67346,678.78149 C 90.78916,665.15123 30.317726,698.89648 31.593405,685.32743 C 32.869085,671.75838 73.359006,659.73555 69.420579,649.02227 C 65.482152,638.309 23.149986,660.36827 27.125334,647.49719 C 31.100681,634.6261 47.071214,647.06532 46.423676,634.52534 C 45.776137,621.98535 31.568648,637.91612 35.393461,627.25277 C 39.218274,616.58943 56.96843,619.71971 64.629594,607.84237 C 72.290757,595.96504 60.139338,585.73166 72.026466,580.85335 C 83.913594,575.97504 96.656085,577.34322 109.96178,574.67419 C 123.26747,572.00515 64.189318,592.58763 75.507018,589.64549 C 86.824719,586.70335 88.646313,584.23283 99.907317,576.3345 C 111.16832,568.43618 110.33,563.55219 122.45851,562.94456 C 134.58702,562.33693 107.59469,584.4558 119.45896,584.82868 C 131.32324,585.20155 121.27125,589.97066 133.5183,594.003 C 145.76535,598.03534 156.92282,602.65349 169.08219,608.90539 C 181.24156,615.15729 157.38896,566.70099 164.06125,578.66154 C 170.73353,590.62208 158.37999,601.9884 167.45228,610.97247 C 176.52458,619.95654 220.47642,613.30711 225.25512,626.36097 C 230.03383,639.41483 191.45688,633.88829 199.93427,644.93319 C 208.41166,655.9781 233.804,645.49225 233.12192,656.53994 C 232.43984,667.58763 199.72165,642.18881 203.18905,652.52377 C 206.65646,662.85873 209.73134,678.03388 205.38822,690.25677 z "
+ transform="matrix(0.703848,0,0,0.162182,-4.564011,83.06055)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/melted1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <g
+ id="g1882"
+ transform="matrix(0.103654,0,0,0.103654,173.2499,377.0512)"
+ style="fill:#ececec"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/steam2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 367.67841,368.11159 C 1205.858,1210.6046 -277.73714,-691.84023 377.92147,378.53493 C 1033.5801,1448.9101 110.34882,-782.22684 389.01862,398.24248 C 667.68842,1578.7118 589.93589,-799.81934 391.862,431.5957 C 193.78812,1663.0107 910.6801,-640.60675 372.67433,447.53561 C -165.33143,1535.678 1289.8151,-368.58889 367.84051,464.52553 C -554.13414,1297.64 1477.5394,29.717178 343.83844,481.81249 C -789.86255,933.9078 1500.6372,424.70387 319.65012,486.84886 C -861.33693,548.99386 1520.7728,680.25837 305.48048,484.96005 C -909.81184,289.66174 1355.9091,996.24953 281.91049,480.44189 C -792.08814,-35.365745 1138.2774,1245.4862 255.0091,468.0722 C -628.2592,-309.34178 663.91299,1584.3857 249.28084,448.42165 C -165.35131,-687.54241 384.04728,1664.5083 242.22404,415.04798 C 100.40079,-834.41231 -130.49016,1555.5656 246.17952,396.7438 C 622.8492,-762.078 -278.81463,1475.0046 246.95918,376.70099 C 772.733,-721.60267 -639.21224,1149.1108 272.11999,359.5958 C 1183.4522,-429.91922 -895.20294,746.29387 282.57895,341.64596 C 1460.3608,-63.001945 -948.15322,501.34655 303.56811,336.27689 C 1555.2894,171.20722 -916.25037,129.0559 334.48024,340.77438 C 1585.2109,552.49286 -682.88174,-218.19338 343.72152,350.86085 C 1370.3248,919.91508 -470.5012,-474.38144 367.67841,368.11159 z "
+ inkscape:randomized="0.1"
+ inkscape:rounded="53.7"
+ inkscape:flatsided="true"
+ sodipodi:arg2="-0.57282003"
+ sodipodi:arg1="-0.72989966"
+ sodipodi:r2="71.94632"
+ sodipodi:r1="72.84314"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="314.28571"
+ sodipodi:sides="20"
+ id="path1872"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 445.43168,406.19286 A 141.42857,142.85715 0 1 1 445.30932,404.41642 L 304.28571,415.21933 z"
+ sodipodi:ry="142.85715"
+ sodipodi:rx="141.42857"
+ sodipodi:cy="415.21933"
+ sodipodi:cx="304.28571"
+ id="path1878"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 491.35722,661.80495 A 35.714287,31.428572 0 1 1 491.32632,661.41413 L 455.71429,663.79077 z"
+ sodipodi:ry="31.428572"
+ sodipodi:rx="35.714287"
+ sodipodi:cy="663.79077"
+ sodipodi:cx="455.71429"
+ id="path1880"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g1893"
+ transform="matrix(0.188424,0,0,0.188424,271.4954,350.8901)"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/steam3.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 229.68917,351.45796 C -318.78615,968.66172 901.95289,-148.52333 223.54576,358.24966 C -454.86136,865.02264 1019.6004,308.57859 206.48625,363.31731 C -606.62788,418.05602 982.36008,557.09495 193.86265,362.50899 C -594.63477,167.92304 929.41144,676.16657 175.27122,358.42261 C -578.869,40.678647 780.83867,938.3106 167.35134,354.47897 C -446.136,-229.35266 584.11723,1028.4098 159.83711,342.60138 C -264.44302,-343.20706 333.94417,1145.006 152.15709,330.02512 C -29.629996,-484.95577 68.618121,1141.4825 150.32479,310.66029 C 232.03146,-520.16197 -158.22762,1097.7647 155.10733,302.18186 C 468.44227,-493.40101 -300.98129,938.46011 166.123,284.85148 C 633.22729,-368.75716 -555.06237,676.44204 170.2265,279.81076 C 895.51537,-116.82052 -620.27623,466.72666 185.46963,272.22847 C 991.21549,77.730285 -630.78231,204.66945 198.09323,273.03679 C 1026.9688,341.40412 -490.02878,-69.023587 221.4299,273.41943 C 932.88858,615.86244 -313.90033,-312.04419 234.17538,277.34748 C 782.2511,866.73914 -191.90628,-357.92446 243.66624,295.45903 C 679.23875,948.84253 86.706128,-532.2307 249.36979,302.87879 C 412.03345,1137.9883 349.35507,-469.52272 241.99544,325.65767 C 134.63582,1120.8381 611.84524,-357.6925 246.94398,334.13609 C -117.95727,1025.9647 778.16449,-265.7458 229.68917,351.45796 z "
+ inkscape:randomized="0.1"
+ inkscape:rounded="53.7"
+ inkscape:flatsided="true"
+ sodipodi:arg2="0.88372197"
+ sodipodi:arg1="0.72664234"
+ sodipodi:r2="48.056362"
+ sodipodi:r1="48.655392"
+ sodipodi:cy="316.97113"
+ sodipodi:cx="197.9899"
+ sodipodi:sides="20"
+ id="path1887"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 286.74202,305.93173 A 70.710678,78.791901 0 1 1 286.68085,304.95195 L 216.17264,310.91022 z"
+ sodipodi:ry="78.791901"
+ sodipodi:rx="70.710678"
+ sodipodi:cy="310.91022"
+ sodipodi:cx="216.17264"
+ id="path1889"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="633.11023"
+ y="402.09525"
+ id="text12770"><tspan
+ sodipodi:role="line"
+ id="tspan12772"
+ x="633.11023"
+ y="402.09525">(steam clouds)</tspan></text>
+ <g
+ id="g2357"
+ transform="matrix(0.308586,0,0,0.306644,100.6021,-122.1329)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/ihalf.png"
+ clip-path="url(#clipPath2456)">
+ <path
+ sodipodi:nodetypes="cssscccsscssssccsc"
+ id="path2359"
+ d="M 456.21875,588.5625 C 410.17772,588.5625 371.91939,604.42438 343.84019,641.21525 C 320.37378,671.96221 303.09375,719.55698 303.09375,763.53125 C 303.09375,763.64058 303.0936,763.74044 303.09375,763.84375 C 303.09425,764.18468 303.09134,764.51419 303.09375,764.875 L 303.15625,764.875 C 303.69402,769.77692 308.18796,774.307 315.84375,778.40625 C 317.5947,747.89474 329.40042,724.25 343.71875,724.25 C 359.24255,724.24998 371.84375,752.04014 371.84375,786.25 C 371.84375,788.8739 371.76887,791.4303 371.625,793.96875 C 377.30471,794.8752 383.22198,795.72329 389.375,796.46875 C 409.68946,798.92992 431.5196,801.34375 455.6875,801.34375 C 498.58336,801.34375 534.23713,792.82305 561.96875,785.8125 C 588.69138,779.05698 608.28124,774.0012 608.28125,763.84375 C 608.28125,763.73953 608.28471,763.63527 608.28125,763.53125 L 609.34375,763.53125 C 609.34375,722.63525 585.59704,671.45563 565,641.65625 C 536.9487,601.0722 504.95327,588.5625 456.21875,588.5625 z "
+ style="opacity:1;fill:url(#linearGradient2448);fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2361"
+ d="M 305.17672,731.07805 C 337.25815,721.32884 305.57383,731.07805 339.07785,721.05449 C 357.19583,722.1038 372.96179,730.46608 373.15827,793.8207 C 340.65671,806.91539 373.23427,793.73466 331.45466,810.63093 C 330.84557,758.08699 329.59912,741.5527 305.17672,731.07805 z "
+ style="fill:#0df2f2;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:open="true"
+ transform="matrix(1,0,0,-1.64,1.041587,2103.185)"
+ sodipodi:end="2.9812358"
+ sodipodi:start="0"
+ d="M 321.85025,789.36157 A 19.269352,39.059494 0 0 1 283.55877,795.59822"
+ sodipodi:ry="39.059494"
+ sodipodi:rx="19.269352"
+ sodipodi:cy="789.36157"
+ sodipodi:cx="302.5809"
+ id="path2363"
+ style="opacity:1;fill:#067373;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccsccsc"
+ id="path2365"
+ d="M 304.64804,731.54736 C 290.85121,732.11701 280.65704,759.16253 280.65704,797.49311 L 293.37438,800.58594 C 294.18142,775.7571 295.06419,749.88325 305.13055,749.88324 C 315.19692,749.88324 319.68454,783.3092 320.49159,808.13806 L 332.93843,810.24174 C 332.93843,793.35244 332.27776,765.2331 326.47486,752.0221 C 320.83477,739.18177 313.16226,731.54736 304.64804,731.54736 z "
+ style="fill:#0ccdcd;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g2367">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 604.97707,731.7485 C 559.86559,769.60991 428.76038,782.09612 372.97521,764.77654 C 372.77382,765.98488 333.50267,784.91559 333.50267,784.91559 L 319.00256,782.49891"
+ id="path2369"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 593.6992,698.72046 C 555.43501,731.14433 435.50832,747.32369 360.08622,730.94294 C 360.63269,731.59246 325.44705,746.24861 325.44705,746.24861 L 313.36363,759.13761"
+ id="path2371"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 580.81021,667.30354 C 567.11566,700.33158 369.75297,715.43587 323.83594,684.22034"
+ id="path2373"
+ sodipodi:nodetypes="cs" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 309.33581,715.63726 C 317.39143,723.69288 326.25261,724.49844 326.25261,724.49844"
+ id="path2375"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,641.52555 C 546.17105,667.30353 376.19746,682.60923 334.30823,657.6368"
+ id="path2377"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 541.33767,616.55314 C 522.00418,641.52556 396.33651,651.99786 356.86398,627.02544"
+ id="path2379"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 513.94856,598.83077 C 504.28182,614.94202 420.50338,618.16426 386.66977,606.88639"
+ id="path2381"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 431.78124,590.77515 C 435.00349,605.27527 454.33697,614.13645 454.33697,614.13645"
+ id="path2383" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 480.92052,590.77515 C 463.19816,606.08083 439.0313,601.24746 439.0313,601.24746"
+ id="path2385" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 290.80789,740.60968 C 299.66907,751.08199 300.47463,751.88755 300.47463,751.88755"
+ id="path2387" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 281.14114,774.44329 C 290.00232,776.85997 294.8357,780.88778 294.8357,780.88778"
+ id="path2389" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,753.49868 C 570.3379,765.58211 571.94903,782.49891 571.94903,782.49891"
+ id="path2391" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 495.42064,768.80435 C 499.44845,785.72116 499.44845,796.99902 499.44845,796.99902"
+ id="path2393" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 425.33674,799.41571 C 426.1423,778.4711 429.36455,771.22104 429.36455,771.22104"
+ id="path2395" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 401.16988,735.77631 C 393.91982,759.13761 395.53095,768.80435 395.53095,768.80435"
+ id="path2397" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 462.39259,736.58187 C 466.42041,763.97098 466.42041,771.22104 466.42041,771.22104"
+ id="path2399" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 522.00418,726.91513 C 531.67093,746.24862 533.28205,761.5543 533.28205,761.5543"
+ id="path2401" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 583.2269,705.97052 C 596.11589,728.52625 597.72701,737.38744 597.72701,737.38744"
+ id="path2403" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 542.9488,687.44259 C 555.83779,701.94271 558.25447,716.44282 558.25447,716.44282"
+ id="path2405" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 489.7817,696.30377 C 497.03176,714.8317 499.44845,730.94294 499.44845,730.94294"
+ id="path2407" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 437.42017,700.33158 C 431.78124,723.69288 433.39236,737.38744 433.39236,737.38744"
+ id="path2409" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 373.78077,699.52602 C 367.33628,722.08176 368.14184,731.7485 368.14184,731.7485"
+ id="path2411" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 334.30824,690.66484 C 323.03037,705.97052 316.58587,720.47063 316.58587,720.47063"
+ id="path2413" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 364.91959,664.88685 C 351.22504,685.02591 351.22504,693.88709 351.22504,693.88709"
+ id="path2415" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 410.83663,670.52579 C 405.19769,689.05372 406.00325,699.52602 406.00325,699.52602"
+ id="path2417" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 463.19816,668.91466 C 466.42041,689.85928 467.22597,698.72046 467.22597,698.72046"
+ id="path2419" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 505.89294,664.08129 C 513.143,677.77585 517.97637,693.08153 517.97637,693.08153"
+ id="path2421" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 553.4211,647.97005 C 567.11566,663.27573 571.14347,676.16472 571.14347,676.16472"
+ id="path2423" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 516.36525,630.24769 C 525.22643,639.10887 533.28205,656.02567 533.28205,656.02567"
+ id="path2425" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 478.50384,638.30331 C 485.75389,653.60899 488.17058,665.69242 488.17058,665.69242"
+ id="path2427" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 438.22573,640.71999 C 435.00349,659.24792 435.00349,668.91466 435.00349,668.91466"
+ id="path2429" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 398.7532,639.91443 C 391.50314,655.22011 390.69758,669.72023 390.69758,669.72023"
+ id="path2431" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 360.89178,629.44213 C 348.00279,645.55337 341.55829,660.05348 341.55829,660.05348"
+ id="path2433" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 394.72539,609.30308 C 384.25308,618.16426 377.80858,635.08106 377.80858,635.08106"
+ id="path2435" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 426.94787,613.33089 C 418.89225,627.02544 418.08668,640.71999 418.08668,640.71999"
+ id="path2437" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 460.78147,613.33089 C 463.19816,634.2755 464.00372,639.10887 464.00372,639.10887"
+ id="path2439" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 488.97614,609.30308 C 497.83732,622.99763 500.25401,633.46994 500.25401,633.46994"
+ id="path2441" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 511.53188,601.24746 C 525.22643,612.52532 534.89318,622.19207 534.89318,622.19207"
+ id="path2443" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 346.39167,738.99856 C 358.4751,750.27643 358.4751,772.83216 358.4751,772.83216"
+ id="path2446"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+ <path
+ sodipodi:type="star"
+ style="opacity:0.3;fill:aqua;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2459"
+ sodipodi:sides="14"
+ sodipodi:cx="133.42902"
+ sodipodi:cy="655.85144"
+ sodipodi:r1="83.440025"
+ sodipodi:r2="70.924019"
+ sodipodi:arg1="0.19739556"
+ sodipodi:arg2="0.42179504"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.3"
+ d="M 205.38822,690.25677 C 200.50178,704.00874 215.60747,647.79822 212.79578,661.731 C 209.98408,675.66378 191.85583,688.00669 187.31987,702.48872 C 182.78391,716.97075 165.59486,694.82798 157.00544,708.11173 C 148.41601,721.39549 180.63478,722.21945 169.99335,728.18734 C 159.35191,734.15522 184.10011,724.05074 171.67451,727.37133 C 159.2489,730.69193 154.9914,747.96579 140.67476,746.61537 C 126.35812,745.26495 107.89469,747.72488 95.212497,749.92286 C 82.530307,752.12084 101.52243,745.17297 89.471164,736.55086 C 77.419895,727.92874 118.39406,701.35343 109.64362,693.35824 C 100.89319,685.36304 85.814093,709.00922 74.361063,701.89592 C 62.908033,694.78263 66.82295,687.99211 66.729461,674.03688 C 66.635972,660.08165 63.791886,707.38589 57.827497,695.9193 C 51.863108,684.45271 74.078695,664.36205 75.297388,651.96418 C 76.516082,639.56632 72.549713,637.58468 74.119792,625.88292 C 75.689872,614.18116 41.336996,622.14829 49.519153,613.65529 C 57.701309,605.16229 34.43929,597.01549 44.823042,586.69466 C 55.206794,576.37383 89.291431,601.78218 102.66211,598.55581 C 116.03278,595.32944 89.361071,586.88954 102.54236,583.59615 C 115.72365,580.30276 130.24286,616.50047 140.75677,607.94724 C 151.27068,599.39401 133.21489,565.89629 144.17956,561.35077 C 155.14424,556.80525 153.71668,583.70521 167.15476,585.39571 C 180.59285,587.08621 158.96009,591.69978 172.89529,593.22439 C 186.8305,594.749 145.51937,579.24097 152.72364,591.89632 C 159.92791,604.55168 198.66161,600.29279 210.54478,610.39516 C 222.42796,620.49753 190.2892,599.96437 195.6378,611.21768 C 200.9864,622.47098 225.95363,622.70668 224.37863,637.78477 C 222.80363,652.86286 199.01868,623.37742 194.53941,636.71161 C 190.06013,650.04579 210.27466,676.5048 205.38822,690.25677 z "
+ transform="matrix(0.563275,0,0,0.118149,228.2079,178.0241)"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/melted.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ clip-path="url(#clipPath2463)" />
+ <g
+ id="g7886"
+ transform="matrix(0.188424,0,0,0.188424,379.4671,349.8171)"
+ style="opacity:0.67"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/steam4.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 229.68917,351.45796 C -347.39639,1000.857 948.11005,-67.593009 223.19691,362.26783 C -501.71622,792.12867 1062.6763,176.12841 204.93798,368.15155 C -652.80039,560.17469 1048.7113,482.87642 190.26864,367.74723 C -668.17406,252.61804 919.79972,750.84318 178.31376,360.26749 C -563.1722,-30.308206 800.36935,932.87297 165.14301,352.46052 C -470.08332,-227.95193 612.50841,1112.4554 151.95558,339.4449 C -308.59725,-433.56558 163.31779,1177.7816 144.7375,322.02723 C 126.15722,-533.72719 -157.58415,1148.7883 146.67758,307.50102 C 450.93932,-533.78625 -316.08796,978.68948 160.73518,289.80019 C 637.55832,-399.0891 -431.00922,869.07829 170.65685,280.81501 C 772.32292,-307.44828 -594.9023,565.41039 181.69971,267.69109 C 958.30173,-30.028204 -620.63976,218.62697 198.75243,264.0342 C 1018.1446,309.44144 -621.89018,80.727337 214.86203,266.64195 C 1051.6142,452.55657 -482.28037,-258.05996 229.72589,275.38922 C 941.73215,808.83839 -224.69178,-425.9772 236.06585,291.65659 C 696.82349,1009.2904 68.925211,-570.12038 241.99855,308.0273 C 415.07189,1186.175 310.51359,-564.24533 249.44869,319.35896 C 188.38379,1202.9633 475.5095,-507.60175 240.54314,338.00539 C 5.5767751,1183.6125 806.77473,-297.94113 229.68917,351.45796 z "
+ inkscape:randomized="0.1"
+ inkscape:rounded="53.7"
+ inkscape:flatsided="true"
+ sodipodi:arg2="0.89198932"
+ sodipodi:arg1="0.72664234"
+ sodipodi:r2="48.056362"
+ sodipodi:r1="48.655392"
+ sodipodi:cy="316.97113"
+ sodipodi:cx="197.9899"
+ sodipodi:sides="19"
+ id="path7888"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 286.74202,305.93173 A 70.710678,78.791901 0 1 1 286.68085,304.95195 L 216.17264,310.91022 z"
+ sodipodi:ry="78.791901"
+ sodipodi:rx="70.710678"
+ sodipodi:cy="310.91022"
+ sodipodi:cx="216.17264"
+ id="path7890"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g7892"
+ transform="matrix(0.188424,0,0,0.188424,505.4671,345.8171)"
+ style="opacity:0.33"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/steam5.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <path
+ d="M 229.68917,351.45796 C -379.13919,1036.5775 940.5214,-157.37233 222.18166,360.52942 C -496.15808,878.43117 1071.0281,264.74804 204.678,361.111 C -661.67215,457.47395 1080.5597,591.97855 192.26041,361.40786 C -696.03886,130.83716 934.49821,904.78247 175.96894,360.76118 C -582.56033,-183.26011 694.22107,1029.1702 156.78312,344.35251 C -380.65483,-340.46521 483.68977,1154.1351 156.36868,335.1282 C -170.95242,-483.87873 97.824482,1242.2934 151.4313,317.75693 C 205.03812,-606.77954 -228.21842,1150.5658 156.14837,303.41706 C 540.51516,-543.73167 -352.38044,1010.3818 166.123,284.85148 C 684.62644,-440.67885 -570.47131,752.5244 175.97165,274.13255 C 922.4146,-204.25929 -679.66858,304.03541 189.7791,265.6981 C 1059.2268,227.36079 -618.74304,-24.449604 206.04312,266.40172 C 1030.8293,557.25304 -510.60055,-256.06275 228.059,272.05967 C 966.71855,800.18209 -320.17656,-428.54583 236.62479,283.20466 C 793.42614,994.95515 -162.58592,-549.50207 245.31828,300.41758 C 653.22249,1150.3372 363.8073,-573.64669 250.25566,317.78885 C 136.70402,1209.2244 563.10294,-543.33071 245.53875,333.20619 C -72.025443,1209.7431 838.51754,-333.66157 229.68917,351.45796 z "
+ inkscape:randomized="0.1"
+ inkscape:rounded="53.7"
+ inkscape:flatsided="true"
+ sodipodi:arg2="0.90117527"
+ sodipodi:arg1="0.72664234"
+ sodipodi:r2="48.056362"
+ sodipodi:r1="48.655392"
+ sodipodi:cy="316.97113"
+ sodipodi:cx="197.9899"
+ sodipodi:sides="18"
+ id="path7894"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:end="12.490678"
+ sodipodi:start="6.2199579"
+ d="M 286.74202,305.93173 A 70.710678,78.791901 0 1 1 286.68085,304.95195 L 216.17264,310.91022 z"
+ sodipodi:ry="78.791901"
+ sodipodi:rx="70.710678"
+ sodipodi:cy="310.91022"
+ sodipodi:cx="216.17264"
+ id="path7896"
+ style="opacity:1;fill:#ececec;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <path
+ style="opacity:1;fill:white;fill-opacity:1;stroke:black;stroke-width:0.30410621;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 639.09792,202.55318 C 639.09792,214.39121 632.96845,217.82031 621.94339,210.28725 C 630.28382,236.31254 592.00742,237.66528 577.05136,217.11242 C 571.45692,236.96591 535.49623,224.18929 528.87203,207.07565 C 522.39339,221.14852 492.88038,202.63626 492.64568,189.31751 C 492.21588,164.92708 509.00992,163.91694 524.19269,175.40553 C 554.94325,150.83452 561.67824,162.84617 574.25647,179.39076 C 594.31111,170.12579 600.09901,168.13203 615.79463,187.53948 C 632.24949,175.18511 638.64767,188.13691 639.09792,202.55318 z "
+ id="path2647"
+ sodipodi:nodetypes="ccccscccc"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/cloud.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ d="M 525.58151,236.15388 L 524.74167,237.55649 L 524.30011,236.57813 L 523.35637,237.01103 L 524.10097,238.63875 L 522.75897,240.88986 L 522.26545,239.69504 L 522.82823,239.08897 L 522.06631,238.37901 L 521.8239,238.63875 L 521.65939,238.24048 L 520.69834,238.6301 L 520.82821,238.95044 L 520.6031,238.91581 L 520.42993,239.94613 L 521.30441,240.08465 L 522.0923,242.00676 L 521.23514,243.444 L 521.11393,243.14097 L 520.14422,243.51326 L 520.55981,244.57821 L 519.64205,246.1107 L 518.95806,244.91587 L 519.64205,243.75569 L 518.75027,243.22755 L 518.36064,243.88556 L 517.55545,242.48295 L 518.90612,240.25781 L 519.99703,240.19721 L 519.93642,239.15824 L 519.55547,239.17555 L 519.93642,238.55217 L 519.04464,238.01537 L 518.62905,238.69936 L 518.43857,238.37035 L 517.53812,238.88984 L 518.00567,239.72102 L 516.95804,241.45264 L 515.41689,238.76862 L 516.14417,237.09761 L 515.20044,236.68202 L 514.77619,237.66038 L 514.04026,236.38765 C 513.74011,236.5608 513.43995,236.73397 513.13981,236.90713 L 513.95368,238.3184 L 512.88006,238.23182 L 512.80214,239.26213 L 514.58572,239.40932 L 515.89309,241.67775 L 514.61169,241.53056 L 514.35194,240.73402 L 513.36492,241.05436 L 513.47748,241.40068 L 513.04458,241.34874 L 512.92335,242.37905 L 513.26969,242.42234 L 513.1225,242.60417 L 513.9277,243.25352 L 514.48182,242.56087 L 516.54245,242.8033 L 517.37362,244.2492 L 517.05327,244.20591 L 516.91475,245.23623 L 518.03164,245.39207 L 518.97538,247.03712 L 517.50349,247.01979 L 516.84548,245.8423 L 515.93638,246.34446 L 516.30002,247.00249 L 514.68961,246.99382 L 513.4515,244.70809 L 513.95368,243.72972 L 513.02725,243.25352 L 512.8541,243.59119 L 512.50776,242.95049 L 511.59001,243.444 L 511.97962,244.15396 L 511.59001,244.15396 L 511.58136,245.19294 L 512.5424,245.2016 L 513.50346,246.98516 L 510.40385,246.95919 L 509.33025,245.48731 L 508.49041,246.09338 L 509.11379,246.95053 L 507.65058,246.94187 L 507.64192,247.98085 L 509.2783,247.98951 L 508.65491,248.87263 L 509.50341,249.47004 L 510.53372,248.00682 L 513.15713,248.02414 L 512.3779,249.05445 L 511.56403,248.87263 L 511.33892,249.88563 L 511.68525,249.96356 L 511.42551,250.30988 L 512.24802,250.94192 L 512.45582,250.66486 L 512.5424,250.88131 L 513.52076,250.50901 L 513.20042,249.68649 L 514.45584,248.03279 L 516.12686,248.05011 L 515.92772,248.30119 L 516.74158,248.95056 L 517.44289,248.05877 L 518.79356,248.06743 L 517.99702,249.48735 L 516.64635,249.48735 L 516.64635,250.52633 L 517.40826,250.52633 L 516.61172,251.9376 L 514.00562,251.91163 L 513.39956,251.00252 L 512.53374,251.57397 L 512.74154,251.89431 L 512.01425,251.88566 L 512.0056,252.92463 L 512.8108,252.93329 L 512.62032,253.27095 L 513.52076,253.78177 L 513.99697,252.94194 L 516.03162,252.96792 L 514.50779,255.66925 L 512.68959,255.8857 L 512.81947,256.91601 L 513.87575,256.78614 L 513.15713,258.06754 L 514.05757,258.57837 L 514.86278,257.15843 L 515.32165,258.11949 L 516.25673,257.66927 L 515.4775,256.05885 L 516.75891,253.78177 L 517.28705,254.95928 L 516.73292,255.58266 L 517.51216,256.26666 L 517.74593,255.99825 L 517.92775,256.40518 L 518.88013,255.98093 L 518.7416,255.66059 L 518.96671,255.69522 L 519.1139,254.6649 L 518.23944,254.53504 L 517.39961,252.64756 L 518.22212,251.18434 L 518.35199,251.48737 L 519.31304,251.08911 L 518.87148,250.04148 L 519.71131,248.56094 L 520.51652,249.95489 L 519.91045,251.01984 L 520.8109,251.53067 L 521.12258,250.99386 L 521.93645,252.40515 L 520.69834,254.50906 L 519.60742,254.58698 L 519.67668,255.6173 L 520.06629,255.59133 L 519.68534,256.23203 L 520.58578,256.75152 L 520.99271,256.05885 L 521.19185,256.38787 L 522.08364,255.85972 L 521.59879,255.02855 L 522.53386,253.44411 L 524.10963,256.17141 L 523.4949,257.62598 L 524.45596,258.03291 L 524.76765,257.29697 L 525.29579,258.21473 L 526.19624,257.68659 L 525.43432,256.36189 L 526.7417,256.45714 L 526.81962,255.41816 L 524.86289,255.28829 C 524.84562,255.28656 524.82828,255.28829 524.81094,255.28829 L 523.4949,253.01986 L 524.97544,253.17571 L 525.23519,253.97226 L 526.22221,253.63459 L 526.10965,253.29693 L 526.54256,253.34021 L 526.65511,252.3099 L 526.30013,252.27526 L 526.44732,252.08478 L 525.6248,251.44409 L 525.07934,252.1454 L 522.8542,251.91163 L 522.02303,250.47438 L 522.49056,250.53499 L 522.62044,249.50467 L 521.36501,249.34017 L 520.58578,247.98951 L 522.12693,247.95487 L 522.81957,249.1064 L 523.71136,248.57825 L 523.32175,247.92024 L 524.94081,247.8856 L 526.24819,250.13672 L 525.77199,251.12375 L 526.70706,251.57397 L 526.87156,251.21897 L 527.24386,251.85967 L 528.14431,251.34019 L 527.73737,250.63889 L 528.11833,250.63023 L 528.10102,249.59125 L 527.13997,249.60857 L 526.12697,247.85963 L 529.21792,247.79037 L 530.3348,249.23627 L 531.15733,248.60423 L 530.50797,247.75574 L 531.97119,247.72111 L 531.94522,246.68213 L 530.32615,246.71676 L 530.9149,245.83364 L 530.04043,245.2622 L 529.06207,246.7514 L 526.43,246.81201 L 527.18326,245.76438 L 528.00577,245.92022 L 528.19625,244.89856 L 527.84127,244.8293 L 528.10102,244.47431 L 527.25252,243.86825 L 527.04473,244.15396 L 526.95815,243.93751 L 525.9971,244.33579 L 526.34342,245.14965 L 525.13995,246.84664 L 523.46027,246.88993 L 523.65941,246.62153 L 522.82823,245.99814 L 522.14424,246.9159 L 520.34336,246.95919 L 521.42562,245.14965 L 522.76763,245.17562 L 522.7936,244.13665 L 522.04034,244.11933 L 522.87153,242.73404 L 525.46895,242.82928 L 526.04905,243.74703 L 526.93218,243.19291 L 526.73304,242.87256 L 527.46032,242.89853 L 527.49495,241.85957 L 526.68109,241.83359 L 526.88023,241.50458 L 525.9971,240.95913 L 525.50359,241.79031 L 523.4776,241.71238 L 525.06203,239.05434 L 526.88023,238.88118 L 526.78499,237.84221 L 525.72004,237.9461 L 526.4733,236.69068 L 525.58151,236.15388 z "
+ id="path3750"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:url(#linearGradient3752);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.34632424;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/snow1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ d="M 564.12474,239.80236 L 563.33462,240.58462 L 563.20891,239.86551 L 562.51407,239.99137 L 562.72979,241.18946 L 561.46559,242.44592 L 561.34219,241.57544 L 561.81528,241.27118 L 561.4332,240.6748 L 561.22963,240.80499 L 561.1885,240.51483 L 560.48956,240.60925 L 560.52104,240.84222 L 560.37858,240.7814 L 560.09053,241.43095 L 560.64326,241.66986 L 560.8378,243.06918 L 560.03043,243.87134 L 560.00174,243.65123 L 559.30003,243.73278 L 559.39401,244.50455 L 558.53064,245.35921 L 558.28176,244.45657 L 558.92826,243.8077 L 558.42991,243.30919 L 558.06213,243.67692 L 557.76847,242.61691 L 559.034,241.379 L 559.76295,241.52327 L 559.89843,240.82856 L 559.64453,240.77564 L 560.00075,240.42927 L 559.50388,239.92505 L 559.11459,240.3055 L 559.04466,240.05658 L 558.36373,240.2468 L 558.53141,240.87333 L 557.54885,241.83726 L 556.9867,239.80879 L 557.74798,238.83071 L 557.19639,238.39758 L 556.75171,238.9705 L 556.48176,238.00774 C 556.25478,238.07115 556.0278,238.13455 555.80082,238.19796 L 556.09873,239.26514 L 555.40604,239.02682 L 555.18075,239.69245 L 556.33094,240.09056 L 556.80925,241.80576 L 555.9899,241.49243 L 555.95326,240.92381 L 555.24891,240.96821 L 555.26459,241.21538 L 554.98816,241.10806 L 554.73434,241.76637 L 554.9552,241.85337 L 554.82753,241.94831 L 555.24837,242.51206 L 555.73037,242.1493 L 557.04701,242.65693 L 557.35047,243.74984 L 557.14674,243.66723 L 556.88151,244.32263 L 557.59102,244.61388 L 557.93501,245.85698 L 556.96825,245.59706 L 556.73355,244.71021 L 556.04983,244.88756 L 556.1783,245.38246 L 555.11881,245.10486 L 554.68906,243.38994 L 555.18508,242.83017 L 554.65514,242.36003 L 554.48405,242.55326 L 554.36407,242.07268 L 553.67611,242.24286 L 553.81293,242.77636 L 553.55624,242.71058 L 553.37512,243.39361 L 554.00681,243.56158 L 554.33883,244.89888 L 552.30115,244.35843 L 551.84236,243.20747 L 551.18674,243.46496 L 551.45272,244.13492 L 550.49019,243.88216 L 550.30905,244.56519 L 551.38567,244.84718 L 550.82587,245.32374 L 551.284,245.86058 L 552.20983,245.07055 L 553.93524,245.52489 L 553.24792,246.07211 L 552.74243,245.81491 L 552.42309,246.44428 L 552.63809,246.55409 L 552.40851,246.7384 L 552.84368,247.29367 L 553.02735,247.14623 L 553.04784,247.30344 L 553.75525,247.22336 L 553.68309,246.62738 L 554.78938,245.74987 L 555.88735,246.04342 L 555.71376,246.17521 L 556.1403,246.74043 L 556.7529,246.27131 L 557.64127,246.50507 L 556.87676,247.30604 L 555.98692,247.078 L 555.81151,247.76249 L 556.31347,247.89113 L 555.55041,248.68641 L 553.83787,248.22928 L 553.59208,247.52802 L 552.92519,247.75831 L 553.00801,248.00445 L 552.53032,247.87594 L 552.3492,248.55897 L 552.87821,248.70062 L 552.69572,248.89092 L 553.20269,249.37949 L 553.65822,248.9066 L 554.99428,249.26724 L 553.53426,250.78962 L 552.29988,250.62524 L 552.21147,251.32595 L 552.9293,251.41874 L 552.23951,252.14161 L 552.74648,252.63018 L 553.51671,251.83066 L 553.65675,252.54128 L 554.34881,252.40256 L 554.10735,251.21003 L 555.33601,249.92622 L 555.48515,250.79114 L 555.01483,251.10828 L 555.41271,251.69047 L 555.61204,251.55311 L 555.66311,251.8519 L 556.36219,251.73319 L 556.32502,251.49876 L 556.46747,251.55959 L 556.73841,250.90564 L 556.18422,250.67244 L 555.94961,249.28716 L 556.73854,248.46206 L 556.77294,248.68361 L 557.47333,248.58349 L 557.35931,247.81875 L 558.16258,246.98515 L 558.45771,248.03946 L 557.87861,248.63873 L 558.38559,249.12731 L 558.68156,248.82627 L 558.97946,249.89345 L 557.80857,251.07049 L 557.07668,250.93764 L 556.94837,251.62812 L 557.20944,251.67678 L 556.85028,252.03457 L 557.35578,252.52884 L 557.74083,252.14122 L 557.81647,252.3916 L 558.49316,252.19421 L 558.31407,251.56477 L 559.19763,250.6788 L 559.77528,252.74164 L 559.12471,253.59613 L 559.68915,254.02648 L 560.01876,253.59426 L 560.21175,254.28806 L 560.89414,254.09214 L 560.61585,253.09079 L 561.46109,253.37426 L 561.68783,252.70294 L 560.42065,252.28699 C 560.40956,252.28294 560.39785,252.28115 560.38642,252.27823 L 559.9024,250.56156 L 560.85149,250.91421 L 560.88812,251.48284 L 561.59539,251.42703 L 561.57825,251.18557 L 561.85615,251.28718 L 562.10426,250.6274 L 561.87625,250.54465 L 562.00537,250.44401 L 561.57166,249.88304 L 561.0939,250.25297 L 559.66742,249.72328 L 559.36249,248.63606 L 559.66029,248.75492 L 559.9198,248.09807 L 559.12049,247.77773 L 558.83516,246.75633 L 559.85634,246.99371 L 560.11824,247.86931 L 560.79492,247.67192 L 560.64934,247.17264 L 561.72186,247.42318 L 562.20309,249.12698 L 561.72272,249.69684 L 562.26274,250.15133 L 562.43105,249.94524 L 562.56815,250.4302 L 563.24908,250.23998 L 563.09939,249.70925 L 563.35184,249.76787 L 563.51585,249.08045 L 562.87978,248.9296 L 562.50769,247.60634 L 564.55574,248.08259 L 565.04744,249.22373 L 565.69603,248.94621 L 565.41149,248.27757 L 566.38132,248.50182 L 566.53963,247.81295 L 565.46712,247.56239 L 566.00411,247.07999 L 565.52448,246.55588 L 564.62849,247.37178 L 562.88422,246.96732 L 563.55735,246.4043 L 564.07292,246.64586 L 564.37091,246.00493 L 564.14873,245.89936 L 564.37979,245.70935 L 563.92312,245.16682 L 563.73799,245.31996 L 563.71749,245.16274 L 563.0171,245.26287 L 563.10785,245.85751 L 562.02847,246.77232 L 560.91456,246.51725 L 561.09108,246.37404 L 560.64874,245.82301 L 560.04317,246.31216 L 558.84942,246.03662 L 559.86795,245.02719 L 560.74769,245.27089 L 560.94022,244.5908 L 560.44689,244.4522 L 561.22837,243.6799 L 562.92351,244.18119 L 563.15073,244.88377 L 563.8261,244.66781 L 563.749,244.42313 L 564.22375,244.56304 L 564.42198,243.88439 L 563.89019,243.72988 L 564.07694,243.54674 L 563.58721,243.03828 L 563.12174,243.50255 L 561.80016,243.10914 L 563.29278,241.62552 L 564.51986,241.81841 L 564.63254,241.11785 L 563.91341,241.00649 L 564.62162,240.30659 L 564.12474,239.80236 z "
+ id="path2657"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:url(#linearGradient2659);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.23553599;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/snow2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ d="M 593.13472,243.32817 L 592.80246,243.88308 L 592.62776,243.49601 L 592.25439,243.66729 L 592.54898,244.31126 L 592.01804,245.20187 L 591.82279,244.72916 L 592.04544,244.48938 L 591.744,244.2085 L 591.6481,244.31126 L 591.58301,244.15369 L 591.20279,244.30784 L 591.25417,244.43458 L 591.16511,244.42088 L 591.09659,244.8285 L 591.44256,244.88331 L 591.75428,245.64375 L 591.41517,246.21237 L 591.36721,246.09248 L 590.98356,246.23977 L 591.14798,246.66111 L 590.78489,247.2674 L 590.51428,246.79469 L 590.78489,246.33569 L 590.43207,246.12674 L 590.27793,246.38706 L 589.95937,245.83214 L 590.49373,244.95182 L 590.92533,244.92783 L 590.90135,244.51679 L 590.75063,244.52364 L 590.90135,244.27701 L 590.54853,244.06463 L 590.38411,244.33524 L 590.30875,244.20507 L 589.95251,244.4106 L 590.13748,244.73944 L 589.723,245.42452 L 589.11329,244.36264 L 589.40102,243.70154 L 589.02764,243.53712 L 588.8598,243.92419 L 588.56864,243.42066 C 588.44989,243.48916 588.33115,243.55767 588.21239,243.62618 L 588.53439,244.18453 L 588.10964,244.15027 L 588.07881,244.55789 L 588.78445,244.61613 L 589.30169,245.51358 L 588.79472,245.45535 L 588.69195,245.14022 L 588.30146,245.26696 L 588.34599,245.40397 L 588.17472,245.38341 L 588.12677,245.79104 L 588.26378,245.80817 L 588.20555,245.8801 L 588.52412,246.13701 L 588.74333,245.86298 L 589.55859,245.95889 L 589.88743,246.53093 L 589.76069,246.51381 L 589.70589,246.92144 L 590.14776,246.98309 L 590.52113,247.63392 L 589.93881,247.62707 L 589.67848,247.16121 L 589.31881,247.35989 L 589.46268,247.62022 L 588.82555,247.61679 L 588.33571,246.71249 L 588.53439,246.32541 L 588.16787,246.13701 L 588.09936,246.27061 L 587.96234,246.01713 L 587.59925,246.21237 L 587.75339,246.49325 L 587.59925,246.49325 L 587.59582,246.9043 L 587.97605,246.90773 L 588.35627,247.61336 L 587.12997,247.60309 L 586.70522,247.02077 L 586.37295,247.26055 L 586.61958,247.59966 L 586.04069,247.59624 L 586.03726,248.00729 L 586.68466,248.01071 L 586.43803,248.36011 L 586.77372,248.59646 L 587.18135,248.01756 L 588.21925,248.02442 L 587.91096,248.43204 L 587.58897,248.36011 L 587.49991,248.76088 L 587.63692,248.79171 L 587.53417,248.92873 L 587.85958,249.17878 L 587.94179,249.06917 L 587.97605,249.15481 L 588.36311,249.00751 L 588.23638,248.6821 L 588.73307,248.02784 L 589.39417,248.0347 L 589.31538,248.13403 L 589.63737,248.39094 L 589.91483,248.03811 L 590.44919,248.04154 L 590.13406,248.60331 L 589.59969,248.60331 L 589.59969,249.01436 L 589.90113,249.01436 L 589.58599,249.57271 L 588.55494,249.56243 L 588.31516,249.20276 L 587.97262,249.42884 L 588.05483,249.55558 L 587.76709,249.55216 L 587.76367,249.96321 L 588.08223,249.96662 L 588.00687,250.10023 L 588.36311,250.30232 L 588.55151,249.97005 L 589.35649,249.98033 L 588.75361,251.04906 L 588.03427,251.1347 L 588.08566,251.54232 L 588.50356,251.49094 L 588.21925,251.9979 L 588.5755,252.20001 L 588.89406,251.63822 L 589.0756,252.01845 L 589.44555,251.84033 L 589.13726,251.2032 L 589.64422,250.30232 L 589.85317,250.76818 L 589.63395,251.0148 L 589.94223,251.28542 L 590.03472,251.17922 L 590.10666,251.34022 L 590.48345,251.17238 L 590.42864,251.04564 L 590.5177,251.05933 L 590.57594,250.65171 L 590.22997,250.60033 L 589.89771,249.85359 L 590.22312,249.2747 L 590.2745,249.39458 L 590.65473,249.23701 L 590.48003,248.82253 L 590.81229,248.23678 L 591.13086,248.78828 L 590.89108,249.20961 L 591.24732,249.41171 L 591.37063,249.19933 L 591.69262,249.75767 L 591.20279,250.59006 L 590.77118,250.62088 L 590.79859,251.02851 L 590.95274,251.01823 L 590.80202,251.27172 L 591.15825,251.47724 L 591.31925,251.2032 L 591.39804,251.33338 L 591.75085,251.12442 L 591.55904,250.79558 L 591.92897,250.16873 L 592.5524,251.24773 L 592.3092,251.82321 L 592.68942,251.98419 L 592.81274,251.69304 L 593.02168,252.05614 L 593.37793,251.84718 L 593.07649,251.3231 L 593.59373,251.36077 L 593.62456,250.94972 L 592.85042,250.89834 C 592.84358,250.89766 592.83672,250.89834 592.82987,250.89834 L 592.3092,250.00089 L 592.89494,250.06254 L 592.99771,250.37768 L 593.38821,250.24408 L 593.34367,250.1105 L 593.51495,250.12762 L 593.55947,249.72 L 593.41903,249.7063 L 593.47727,249.63093 L 593.15185,249.37746 L 592.93605,249.65492 L 592.05572,249.56243 L 591.72688,248.99381 L 591.91185,249.01779 L 591.96323,248.61016 L 591.46655,248.54508 L 591.15825,248.01071 L 591.76798,247.99701 L 592.04201,248.4526 L 592.39483,248.24365 L 592.24069,247.98331 L 592.88125,247.96961 L 593.39848,248.86022 L 593.21008,249.25072 L 593.58002,249.42884 L 593.64511,249.2884 L 593.79241,249.54188 L 594.14864,249.33635 L 593.98765,249.05889 L 594.13837,249.05547 L 594.13152,248.64441 L 593.75129,248.65127 L 593.35052,247.95933 L 594.57339,247.93193 L 595.01528,248.50397 L 595.34069,248.25392 L 595.08378,247.91822 L 595.66269,247.90453 L 595.65241,247.49348 L 595.01185,247.50718 L 595.24478,247.15778 L 594.89881,246.93171 L 594.51175,247.52088 L 593.47041,247.54486 L 593.76842,247.13038 L 594.09385,247.19204 L 594.1692,246.78784 L 594.02875,246.76044 L 594.13152,246.61999 L 593.79583,246.38021 L 593.71362,246.49325 L 593.67936,246.40761 L 593.29915,246.56519 L 593.43616,246.88718 L 592.96003,247.55856 L 592.2955,247.57569 L 592.37429,247.4695 L 592.04544,247.22287 L 591.77484,247.58597 L 591.06235,247.60309 L 591.49053,246.88718 L 592.02146,246.89746 L 592.03174,246.4864 L 591.73373,246.47955 L 592.06257,245.93148 L 593.0902,245.96916 L 593.3197,246.33226 L 593.66909,246.11303 L 593.5903,245.98629 L 593.87804,245.99657 L 593.89174,245.58551 L 593.56975,245.57524 L 593.64853,245.44507 L 593.29915,245.22928 L 593.10389,245.55811 L 592.30235,245.52729 L 592.9292,244.47568 L 593.64853,244.40718 L 593.61086,243.99613 L 593.18953,244.03723 L 593.48755,243.54055 L 593.13472,243.32817 z "
+ id="path2661"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
+ style="fill:url(#linearGradient2663);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13701668;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/snow3.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ sodipodi:type="star"
+ style="opacity:0.2;fill:aqua;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2665"
+ sodipodi:sides="17"
+ sodipodi:cx="133.42902"
+ sodipodi:cy="655.85144"
+ sodipodi:r1="83.440025"
+ sodipodi:r2="71.758423"
+ sodipodi:arg1="0.19739556"
+ sodipodi:arg2="0.38219513"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.3"
+ d="M 205.38822,690.25677 C 201.15452,702.17173 184.89465,695.96885 182.60904,706.97173 C 180.32344,717.97461 187.18486,665.43018 184.3637,675.9809 C 181.54254,686.53162 207.29788,705.00283 200.73507,712.9256 C 194.17227,720.84836 210.94998,738.34722 200.39421,742.72541 C 189.83843,747.10359 153.68939,713.97836 142.61909,714.02239 C 131.54879,714.06643 183.78189,721.79141 171.03478,726.95283 C 158.28767,732.11425 163.97625,728.11033 153.80585,730.38801 C 143.63546,732.6657 159.83027,722.59771 147.62449,722.13303 C 135.41871,721.66835 139.57438,744.13631 129.33705,735.29348 C 119.09973,726.45066 99.978506,743.29586 91.755775,733.51135 C 83.533044,723.72683 86.357641,702.84505 76.514667,698.18276 C 66.671693,693.52048 70.762539,748.17406 64.807198,735.76228 C 58.851857,723.35051 95.234562,693.70736 93.51093,682.15685 C 91.787298,670.60635 30.349864,698.55464 31.593405,685.32743 C 32.836947,672.10022 52.345891,660.24211 48.78139,650.25759 C 45.216889,640.27308 23.250136,660.04401 27.125334,647.49719 C 31.000531,634.95036 35.327671,635.4029 39.271658,623.32193 C 43.215645,611.24096 31.665005,637.64748 35.393461,627.25277 C 39.121916,616.85807 44.500477,644.71325 49.503244,632.52865 C 54.50601,620.34405 60.438808,585.60876 72.026466,580.85335 C 83.614124,576.09794 83.374065,593.09652 92.03513,586.51316 C 100.69619,579.9298 64.474443,592.51351 75.507018,589.64549 C 86.539594,586.77747 90.339806,572.37855 100.86826,564.86963 C 111.39671,557.36071 110.63555,563.53688 122.45851,562.94456 C 134.28147,562.35224 119.66349,580.64858 130.60458,583.66562 C 141.54566,586.68266 121.57978,590.07225 133.5183,594.003 C 145.45681,597.93376 147.60899,566.21372 155.66858,575.17237 C 163.72816,584.13102 157.55706,567.00231 164.06125,578.66154 C 170.56543,590.32076 168.2507,604.17379 173.18471,616.53177 C 178.11873,628.88974 220.5968,613.63597 225.25512,626.36097 C 229.91344,639.08597 214.34795,640.03103 221.77273,648.12729 C 229.19752,656.22354 233.78682,645.77057 233.12192,656.53994 C 232.45703,667.30931 210.41301,655.07692 208.84309,668.61013 C 207.27317,682.14334 209.62192,678.34181 205.38822,690.25677 z "
+ transform="matrix(0.536938,0,0,0.123722,176.9519,109.8337)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/melted2.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <path
+ sodipodi:type="star"
+ style="opacity:0.15;fill:aqua;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2669"
+ sodipodi:sides="17"
+ sodipodi:cx="133.42902"
+ sodipodi:cy="655.85144"
+ sodipodi:r1="83.440025"
+ sodipodi:r2="83.440025"
+ sodipodi:arg1="0.19739556"
+ sodipodi:arg2="0.38219513"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.65"
+ inkscape:randomized="0.3"
+ d="M 205.38822,690.25677 C 201.85469,700.20124 226.76366,698.18319 226.9738,708.0658 C 227.18394,717.94841 186.7183,667.17505 184.3637,675.9809 C 182.0091,684.78676 199.83601,694.62071 190.33999,698.85788 C 180.84398,703.09505 209.20428,739.07128 200.39421,742.72541 C 191.58413,746.37953 164.78723,739.55603 156.58437,745.27696 C 148.38151,750.9979 181.67379,722.645 171.03478,726.95283 C 160.39578,731.26066 157.92318,731.6845 147.37909,731.27455 C 136.83499,730.86461 157.81169,722.52086 147.62449,722.13303 C 137.43729,721.7452 98.826425,743.59699 89.778621,742.45888 C 80.730818,741.32076 98.61864,741.67771 91.755775,733.51135 C 84.89291,725.34499 73.720218,719.28232 68.08167,710.52184 C 62.443122,701.76137 69.777651,746.12141 64.807198,735.76228 C 59.836745,725.40315 47.97156,723.07048 44.53095,713.59722 C 41.09034,704.12395 30.555519,696.36714 31.593405,685.32743 C 32.631291,674.28772 33.63659,680.91219 29.244533,673.23531 C 24.852476,665.55842 23.891012,657.96903 27.125334,647.49719 C 30.359655,637.02534 72.984419,634.34483 74.119792,625.88292 C 75.255166,617.42102 32.281613,635.92841 35.393461,627.25277 C 38.505308,618.57713 51.865798,632.39554 55.249551,622.16704 C 58.633304,611.93853 62.355162,584.82232 72.026466,580.85335 C 81.69777,576.88438 75.16466,566.91011 84.460115,565.24073 C 93.75557,563.57136 66.298998,592.0392 75.507018,589.64549 C 84.715039,587.25178 91.188283,569.34592 98.75129,562.94135 C 106.3143,556.53677 112.59082,563.43892 122.45851,562.94456 C 132.3262,562.4502 134.44183,597.15701 144.75089,593.57928 C 155.05994,590.00154 123.55416,590.72231 133.5183,594.003 C 143.48244,597.28369 141.70578,579.46875 150.50487,583.41935 C 159.30395,587.36994 158.63271,568.9305 164.06125,578.66154 C 169.48978,588.39257 192.42832,590.26487 197.56006,599.55629 C 202.69181,608.84771 221.36719,615.74042 225.25512,626.36097 C 229.14305,636.98152 230.08932,636.71885 230.72233,645.6662 C 231.35534,654.61355 233.67686,647.5516 233.12192,656.53994 C 232.56699,665.52828 209.59098,654.90174 207.7165,664.7939 C 205.84201,674.68606 208.92176,680.31229 205.38822,690.25677 z "
+ transform="matrix(0.233353,0,0,5.376948e-2,337.8902,154.8682)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/igloos/melted3.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <g
+ id="g2671"
+ transform="matrix(0.308586,0,0,0.306644,241.3029,-122.5818)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/intact.png"
+ clip-path="url(#clipPath2857)">
+ <path
+ sodipodi:nodetypes="cssscccsscssssccsc"
+ id="path2673"
+ d="M 456.21875,588.5625 C 410.17772,588.5625 371.91939,604.42438 343.84019,641.21525 C 320.37378,671.96221 303.09375,719.55698 303.09375,763.53125 C 303.09375,763.64058 303.0936,763.74044 303.09375,763.84375 C 303.09425,764.18468 303.09134,764.51419 303.09375,764.875 L 303.15625,764.875 C 303.69402,769.77692 308.18796,774.307 315.84375,778.40625 C 317.5947,747.89474 329.40042,724.25 343.71875,724.25 C 359.24255,724.24998 371.84375,752.04014 371.84375,786.25 C 371.84375,788.8739 371.76887,791.4303 371.625,793.96875 C 377.30471,794.8752 383.22198,795.72329 389.375,796.46875 C 409.68946,798.92992 431.5196,801.34375 455.6875,801.34375 C 498.58336,801.34375 534.23713,792.82305 561.96875,785.8125 C 588.69138,779.05698 608.28124,774.0012 608.28125,763.84375 C 608.28125,763.73953 608.28471,763.63527 608.28125,763.53125 L 609.34375,763.53125 C 609.34375,722.63525 585.59704,671.45563 565,641.65625 C 536.9487,601.0722 504.95327,588.5625 456.21875,588.5625 z "
+ style="opacity:1;fill:url(#linearGradient2761);fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2675"
+ d="M 305.17672,731.07805 C 337.25815,721.32884 305.57383,731.07805 339.07785,721.05449 C 357.19583,722.1038 372.96179,730.46608 373.15827,793.8207 C 340.65671,806.91539 373.23427,793.73466 331.45466,810.63093 C 330.84557,758.08699 329.59912,741.5527 305.17672,731.07805 z "
+ style="fill:#0df2f2;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:open="true"
+ transform="matrix(1,0,0,-1.64,1.041587,2103.185)"
+ sodipodi:end="2.9812358"
+ sodipodi:start="0"
+ d="M 321.85025,789.36157 A 19.269352,39.059494 0 0 1 283.55877,795.59822"
+ sodipodi:ry="39.059494"
+ sodipodi:rx="19.269352"
+ sodipodi:cy="789.36157"
+ sodipodi:cx="302.5809"
+ id="path2677"
+ style="opacity:1;fill:#067373;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccsccsc"
+ id="path2679"
+ d="M 304.64804,731.54736 C 290.85121,732.11701 280.65704,759.16253 280.65704,797.49311 L 293.37438,800.58594 C 294.18142,775.7571 295.06419,749.88325 305.13055,749.88324 C 315.19692,749.88324 319.68454,783.3092 320.49159,808.13806 L 332.93843,810.24174 C 332.93843,793.35244 332.27776,765.2331 326.47486,752.0221 C 320.83477,739.18177 313.16226,731.54736 304.64804,731.54736 z "
+ style="fill:#0ccdcd;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g2681">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 604.97707,731.7485 C 559.86559,769.60991 428.76038,782.09612 372.97521,764.77654 C 372.77382,765.98488 333.50267,784.91559 333.50267,784.91559 L 319.00256,782.49891"
+ id="path2683"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 593.6992,698.72046 C 555.43501,731.14433 435.50832,747.32369 360.08622,730.94294 C 360.63269,731.59246 325.44705,746.24861 325.44705,746.24861 L 313.36363,759.13761"
+ id="path2685"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 580.81021,667.30354 C 567.11566,700.33158 369.75297,715.43587 323.83594,684.22034"
+ id="path2687"
+ sodipodi:nodetypes="cs" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 309.33581,715.63726 C 317.39143,723.69288 326.25261,724.49844 326.25261,724.49844"
+ id="path2689"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,641.52555 C 546.17105,667.30353 376.19746,682.60923 334.30823,657.6368"
+ id="path2691"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 541.33767,616.55314 C 522.00418,641.52556 396.33651,651.99786 356.86398,627.02544"
+ id="path2693"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 513.94856,598.83077 C 504.28182,614.94202 420.50338,618.16426 386.66977,606.88639"
+ id="path2695"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 431.78124,590.77515 C 435.00349,605.27527 454.33697,614.13645 454.33697,614.13645"
+ id="path2697" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 480.92052,590.77515 C 463.19816,606.08083 439.0313,601.24746 439.0313,601.24746"
+ id="path2699" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 290.80789,740.60968 C 299.66907,751.08199 300.47463,751.88755 300.47463,751.88755"
+ id="path2701" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 281.14114,774.44329 C 290.00232,776.85997 294.8357,780.88778 294.8357,780.88778"
+ id="path2703" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,753.49868 C 570.3379,765.58211 571.94903,782.49891 571.94903,782.49891"
+ id="path2705" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 495.42064,768.80435 C 499.44845,785.72116 499.44845,796.99902 499.44845,796.99902"
+ id="path2707" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 425.33674,799.41571 C 426.1423,778.4711 429.36455,771.22104 429.36455,771.22104"
+ id="path2709" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 401.16988,735.77631 C 393.91982,759.13761 395.53095,768.80435 395.53095,768.80435"
+ id="path2711" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 462.39259,736.58187 C 466.42041,763.97098 466.42041,771.22104 466.42041,771.22104"
+ id="path2713" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 522.00418,726.91513 C 531.67093,746.24862 533.28205,761.5543 533.28205,761.5543"
+ id="path2715" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 583.2269,705.97052 C 596.11589,728.52625 597.72701,737.38744 597.72701,737.38744"
+ id="path2717" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 542.9488,687.44259 C 555.83779,701.94271 558.25447,716.44282 558.25447,716.44282"
+ id="path2719" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 489.7817,696.30377 C 497.03176,714.8317 499.44845,730.94294 499.44845,730.94294"
+ id="path2721" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 437.42017,700.33158 C 431.78124,723.69288 433.39236,737.38744 433.39236,737.38744"
+ id="path2723" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 373.78077,699.52602 C 367.33628,722.08176 368.14184,731.7485 368.14184,731.7485"
+ id="path2725" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 334.30824,690.66484 C 323.03037,705.97052 316.58587,720.47063 316.58587,720.47063"
+ id="path2727" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 364.91959,664.88685 C 351.22504,685.02591 351.22504,693.88709 351.22504,693.88709"
+ id="path2729" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 410.83663,670.52579 C 405.19769,689.05372 406.00325,699.52602 406.00325,699.52602"
+ id="path2731" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 463.19816,668.91466 C 466.42041,689.85928 467.22597,698.72046 467.22597,698.72046"
+ id="path2733" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 505.89294,664.08129 C 513.143,677.77585 517.97637,693.08153 517.97637,693.08153"
+ id="path2735" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 553.4211,647.97005 C 567.11566,663.27573 571.14347,676.16472 571.14347,676.16472"
+ id="path2737" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 516.36525,630.24769 C 525.22643,639.10887 533.28205,656.02567 533.28205,656.02567"
+ id="path2739" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 478.50384,638.30331 C 485.75389,653.60899 488.17058,665.69242 488.17058,665.69242"
+ id="path2741" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 438.22573,640.71999 C 435.00349,659.24792 435.00349,668.91466 435.00349,668.91466"
+ id="path2743" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 398.7532,639.91443 C 391.50314,655.22011 390.69758,669.72023 390.69758,669.72023"
+ id="path2745" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 360.89178,629.44213 C 348.00279,645.55337 341.55829,660.05348 341.55829,660.05348"
+ id="path2747" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 394.72539,609.30308 C 384.25308,618.16426 377.80858,635.08106 377.80858,635.08106"
+ id="path2749" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 426.94787,613.33089 C 418.89225,627.02544 418.08668,640.71999 418.08668,640.71999"
+ id="path2751" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 460.78147,613.33089 C 463.19816,634.2755 464.00372,639.10887 464.00372,639.10887"
+ id="path2753" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 488.97614,609.30308 C 497.83732,622.99763 500.25401,633.46994 500.25401,633.46994"
+ id="path2755" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 511.53188,601.24746 C 525.22643,612.52532 534.89318,622.19207 534.89318,622.19207"
+ id="path2757" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 346.39167,738.99856 C 358.4751,750.27643 358.4751,772.83216 358.4751,772.83216"
+ id="path2759"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+ <g
+ id="g2763"
+ transform="matrix(0.308586,0,0,0.306644,392.1533,-127.881)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ inkscape:export-filename="/home/tim/src/tuxmath-61/trunk/data/images/igloos/intact.png"
+ clip-path="url(#clipPath2862)">
+ <path
+ sodipodi:nodetypes="cssscccsscssssccsc"
+ id="path2765"
+ d="M 456.21875,588.5625 C 410.17772,588.5625 371.91939,604.42438 343.84019,641.21525 C 320.37378,671.96221 303.09375,719.55698 303.09375,763.53125 C 303.09375,763.64058 303.0936,763.74044 303.09375,763.84375 C 303.09425,764.18468 303.09134,764.51419 303.09375,764.875 L 303.15625,764.875 C 303.69402,769.77692 308.18796,774.307 315.84375,778.40625 C 317.5947,747.89474 329.40042,724.25 343.71875,724.25 C 359.24255,724.24998 371.84375,752.04014 371.84375,786.25 C 371.84375,788.8739 371.76887,791.4303 371.625,793.96875 C 377.30471,794.8752 383.22198,795.72329 389.375,796.46875 C 409.68946,798.92992 431.5196,801.34375 455.6875,801.34375 C 498.58336,801.34375 534.23713,792.82305 561.96875,785.8125 C 588.69138,779.05698 608.28124,774.0012 608.28125,763.84375 C 608.28125,763.73953 608.28471,763.63527 608.28125,763.53125 L 609.34375,763.53125 C 609.34375,722.63525 585.59704,671.45563 565,641.65625 C 536.9487,601.0722 504.95327,588.5625 456.21875,588.5625 z "
+ style="opacity:1;fill:url(#linearGradient2853);fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path2767"
+ d="M 305.17672,731.07805 C 337.25815,721.32884 305.57383,731.07805 339.07785,721.05449 C 357.19583,722.1038 372.96179,730.46608 373.15827,793.8207 C 340.65671,806.91539 373.23427,793.73466 331.45466,810.63093 C 330.84557,758.08699 329.59912,741.5527 305.17672,731.07805 z "
+ style="fill:#0df2f2;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:open="true"
+ transform="matrix(1,0,0,-1.64,1.041587,2103.185)"
+ sodipodi:end="2.9812358"
+ sodipodi:start="0"
+ d="M 321.85025,789.36157 A 19.269352,39.059494 0 0 1 283.55877,795.59822"
+ sodipodi:ry="39.059494"
+ sodipodi:rx="19.269352"
+ sodipodi:cy="789.36157"
+ sodipodi:cx="302.5809"
+ id="path2769"
+ style="opacity:1;fill:#067373;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cccsccsc"
+ id="path2771"
+ d="M 304.64804,731.54736 C 290.85121,732.11701 280.65704,759.16253 280.65704,797.49311 L 293.37438,800.58594 C 294.18142,775.7571 295.06419,749.88325 305.13055,749.88324 C 315.19692,749.88324 319.68454,783.3092 320.49159,808.13806 L 332.93843,810.24174 C 332.93843,793.35244 332.27776,765.2331 326.47486,752.0221 C 320.83477,739.18177 313.16226,731.54736 304.64804,731.54736 z "
+ style="fill:#0ccdcd;fill-opacity:1;stroke:none;stroke-width:1000;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ id="g2773">
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 604.97707,731.7485 C 559.86559,769.60991 428.76038,782.09612 372.97521,764.77654 C 372.77382,765.98488 333.50267,784.91559 333.50267,784.91559 L 319.00256,782.49891"
+ id="path2775"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 593.6992,698.72046 C 555.43501,731.14433 435.50832,747.32369 360.08622,730.94294 C 360.63269,731.59246 325.44705,746.24861 325.44705,746.24861 L 313.36363,759.13761"
+ id="path2777"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 580.81021,667.30354 C 567.11566,700.33158 369.75297,715.43587 323.83594,684.22034"
+ id="path2779"
+ sodipodi:nodetypes="cs" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 309.33581,715.63726 C 317.39143,723.69288 326.25261,724.49844 326.25261,724.49844"
+ id="path2781"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,641.52555 C 546.17105,667.30353 376.19746,682.60923 334.30823,657.6368"
+ id="path2783"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 541.33767,616.55314 C 522.00418,641.52556 396.33651,651.99786 356.86398,627.02544"
+ id="path2785"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 513.94856,598.83077 C 504.28182,614.94202 420.50338,618.16426 386.66977,606.88639"
+ id="path2787"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 431.78124,590.77515 C 435.00349,605.27527 454.33697,614.13645 454.33697,614.13645"
+ id="path2789" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 480.92052,590.77515 C 463.19816,606.08083 439.0313,601.24746 439.0313,601.24746"
+ id="path2791" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 290.80789,740.60968 C 299.66907,751.08199 300.47463,751.88755 300.47463,751.88755"
+ id="path2793" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 281.14114,774.44329 C 290.00232,776.85997 294.8357,780.88778 294.8357,780.88778"
+ id="path2795" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 563.89341,753.49868 C 570.3379,765.58211 571.94903,782.49891 571.94903,782.49891"
+ id="path2797" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 495.42064,768.80435 C 499.44845,785.72116 499.44845,796.99902 499.44845,796.99902"
+ id="path2799" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 425.33674,799.41571 C 426.1423,778.4711 429.36455,771.22104 429.36455,771.22104"
+ id="path2801" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 401.16988,735.77631 C 393.91982,759.13761 395.53095,768.80435 395.53095,768.80435"
+ id="path2803" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 462.39259,736.58187 C 466.42041,763.97098 466.42041,771.22104 466.42041,771.22104"
+ id="path2805" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 522.00418,726.91513 C 531.67093,746.24862 533.28205,761.5543 533.28205,761.5543"
+ id="path2807" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 583.2269,705.97052 C 596.11589,728.52625 597.72701,737.38744 597.72701,737.38744"
+ id="path2809" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 542.9488,687.44259 C 555.83779,701.94271 558.25447,716.44282 558.25447,716.44282"
+ id="path2811" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 489.7817,696.30377 C 497.03176,714.8317 499.44845,730.94294 499.44845,730.94294"
+ id="path2813" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 437.42017,700.33158 C 431.78124,723.69288 433.39236,737.38744 433.39236,737.38744"
+ id="path2815" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 373.78077,699.52602 C 367.33628,722.08176 368.14184,731.7485 368.14184,731.7485"
+ id="path2817" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 334.30824,690.66484 C 323.03037,705.97052 316.58587,720.47063 316.58587,720.47063"
+ id="path2819" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 364.91959,664.88685 C 351.22504,685.02591 351.22504,693.88709 351.22504,693.88709"
+ id="path2821" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 410.83663,670.52579 C 405.19769,689.05372 406.00325,699.52602 406.00325,699.52602"
+ id="path2823" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 463.19816,668.91466 C 466.42041,689.85928 467.22597,698.72046 467.22597,698.72046"
+ id="path2825" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 505.89294,664.08129 C 513.143,677.77585 517.97637,693.08153 517.97637,693.08153"
+ id="path2827" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 553.4211,647.97005 C 567.11566,663.27573 571.14347,676.16472 571.14347,676.16472"
+ id="path2829" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 516.36525,630.24769 C 525.22643,639.10887 533.28205,656.02567 533.28205,656.02567"
+ id="path2831" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 478.50384,638.30331 C 485.75389,653.60899 488.17058,665.69242 488.17058,665.69242"
+ id="path2833" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 438.22573,640.71999 C 435.00349,659.24792 435.00349,668.91466 435.00349,668.91466"
+ id="path2835" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 398.7532,639.91443 C 391.50314,655.22011 390.69758,669.72023 390.69758,669.72023"
+ id="path2837" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 360.89178,629.44213 C 348.00279,645.55337 341.55829,660.05348 341.55829,660.05348"
+ id="path2839" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 394.72539,609.30308 C 384.25308,618.16426 377.80858,635.08106 377.80858,635.08106"
+ id="path2841" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 426.94787,613.33089 C 418.89225,627.02544 418.08668,640.71999 418.08668,640.71999"
+ id="path2843" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 460.78147,613.33089 C 463.19816,634.2755 464.00372,639.10887 464.00372,639.10887"
+ id="path2845" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 488.97614,609.30308 C 497.83732,622.99763 500.25401,633.46994 500.25401,633.46994"
+ id="path2847" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 511.53188,601.24746 C 525.22643,612.52532 534.89318,622.19207 534.89318,622.19207"
+ id="path2849" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 346.39167,738.99856 C 358.4751,750.27643 358.4751,772.83216 358.4751,772.83216"
+ id="path2851"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+ <g
+ id="g12058"
+ transform="matrix(0.243355,0,0,0.243355,334.2901,506.9078)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/sitting-down.png"
+ inkscape:export-xdpi="89.847542"
+ inkscape:export-ydpi="89.847542">
+ <path
+ d="M 95.594341,118.16037 C 95.594341,118.16037 86.450029,45.985626 131.19184,45.332459 C 175.93365,44.679297 180.5058,74.071726 180.5058,74.071726 C 180.5058,74.071726 188.34379,116.52745 185.07796,125.99835 C 181.81214,135.46924 94.288012,134.81608 94.288012,134.81608 L 95.594341,118.16037 z "
+ id="path3097"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3099"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8062);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.471016,0,0,0.486906,-44.45495,-17.07444)" />
+ <path
+ transform="matrix(0.522532,0,0,0.522532,-58.22604,-22.85128)"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path3101"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8064);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3103"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8066);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.471016,0,0,0.486906,-11.7967,-16.09468)" />
+ <path
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path3105"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8068);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.522532,0,0,0.522532,-25.89438,-23.17786)" />
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 183.77251,125.40817 C 183.77251,125.40817 183.07648,120.64056 189.92218,125.13758 C 196.76788,129.6346 245.74747,175.17752 241.85188,196.14432 C 237.95629,217.1111 233.83167,217.62665 233.83167,217.62665 C 233.83167,217.62665 178.12103,153.60884 182.56076,146.30485 C 187.0005,139.00086 169.41368,121.18471 169.41368,121.18471 L 183.77251,125.40817 z "
+ id="path3107"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 87.756363,141.67431 C 87.756363,141.67431 76.325973,163.22876 78.61205,172.37307 C 80.898127,181.51738 71.753814,234.75033 71.753814,234.75033 L 171.36149,237.363 L 202.38683,154.41103 L 182.4653,129.91734 L 176.58682,119.4667 L 144.25514,134.16291 L 94.288012,135.46924"
+ id="path3109"
+ style="fill:url(#linearGradient9395);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 103.03515,130.46062 C 103.03515,130.46062 103.01925,128.39514 95.913231,132.46837 C 88.807206,136.5416 37.153688,179.02775 39.769515,200.19233 C 42.385343,221.35691 46.47107,222.12185 46.47107,222.12185 C 46.47107,222.12185 105.96455,161.60341 101.97632,154.04342 C 97.98809,146.48343 116.62384,129.76755 116.62384,129.76755 L 103.03515,130.46062 z "
+ id="path3111"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csczzscc"
+ d="M 200.42734,158.00344 C 200.42734,158.00344 208.12472,210.87124 204.34788,234.75033 C 202.124,248.81084 196.70463,252.82136 183.1376,268.0187 C 155.83228,278.66123 113.70486,279.38737 96.080057,268.43015 C 78.455257,257.47292 76.963586,249.15107 72.430901,232.45469 C 67.823908,215.48459 70.120905,181.84397 79.918379,159.30977 C 89.715859,136.77557 166.13617,153.1047 166.13617,153.1047 L 200.42734,158.00344 z "
+ id="path3113"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.534511,0,0,0.534511,185.1311,-163.9194)"
+ id="g5034">
+ <path
+ transform="translate(10,4)"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -160.39166,760.75064 C -142.08862,750.34252 -115.21378,787.41952 -116.95478,818.81079 C -119.0201,856.04985 -119.69797,862.03155 -138.00101,872.43967 C -156.30405,882.84779 -180.75484,866.27661 -182.35402,835.45044 C -183.96338,804.42815 -178.97844,771.9676 -161.01175,761.1142"
+ id="path3167"
+ sodipodi:nodetypes="csssc" />
+ <path
+ transform="matrix(1.034022,0,0,1.432408,-220.7731,-475.4827)"
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 88.015108,926.60877 C 98.987002,926.69896 111.74636,930.84265 113.79771,940.54792 C 115.84907,950.2532 112.50833,960.40347 101.91183,962.27368 C 80.718833,966.01409 40.798231,959.92476 40.809889,947.70153 C 40.827649,928.44127 66.063526,926.42833 88.015108,926.60877 z "
+ id="path3193"
+ sodipodi:nodetypes="csssz" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8072);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3187"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-218.0382,-70.20629)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8074);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5024"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-199.0643,-68.21124)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8076);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5028"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(1.116581,0,0,1.116581,-178.8597,-180.2023)" />
+ </g>
+ <g
+ transform="matrix(-0.534511,0,0,0.534511,93.45931,-166.0023)"
+ id="g5041">
+ <path
+ transform="translate(10,4)"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -160.39166,760.75064 C -142.08862,750.34252 -115.21378,787.41952 -116.95478,818.81079 C -119.0201,856.04985 -119.69797,862.03155 -138.00101,872.43967 C -156.30405,882.84779 -180.75484,866.27661 -182.35402,835.45044 C -183.96338,804.42815 -178.97844,771.9676 -161.01175,761.1142"
+ id="path5043"
+ sodipodi:nodetypes="csssc" />
+ <path
+ transform="matrix(1.034022,0,0,1.432408,-220.7731,-475.4827)"
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 88.015108,926.60877 C 98.987002,926.69896 111.74636,930.84265 113.79771,940.54792 C 115.84907,950.2532 112.50833,960.40347 101.91183,962.27368 C 80.718833,966.01409 40.798231,959.92476 40.809889,947.70153 C 40.827649,928.44127 66.063526,926.42833 88.015108,926.60877 z "
+ id="path5045"
+ sodipodi:nodetypes="csssz" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8078);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5047"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-218.0382,-70.20629)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8080);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5049"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-199.0643,-68.21124)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8082);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5051"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(1.116581,0,0,1.116581,-178.8597,-180.2023)" />
+ </g>
+ <path
+ d="M 136.41716,256.30478 C 136.41716,256.30478 226.22736,253.69213 176.58682,140.69456 C 126.94627,27.697006 94.288012,156.69711 94.288012,156.69711 C 94.288012,156.69711 59.343682,253.03896 136.41716,256.30478 z "
+ id="path3127"
+ style="fill:url(#linearGradient9378);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 105.7184,103.79074 C 105.7184,103.79074 123.35386,91.707184 135.43741,93.666674 C 147.52097,95.62617 164.17668,98.891995 166.13617,102.15783 C 168.09567,105.42365 177.89314,119.14012 160.25769,124.69202 C 142.62223,130.24392 114.53613,133.83633 106.69815,119.4667 C 98.860166,105.09706 109.31081,100.85149 109.31081,100.85149"
+ id="path3129"
+ style="fill:url(#linearGradient9375);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 108.33106,111.30213 C 108.33106,111.30213 132.17159,122.73252 162.87035,111.9553"
+ id="path3131"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 123.68044,98.891995 C 124.77963,98.998464 126.53811,98.116329 127.59943,97.585666"
+ id="path3133"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 138.05007,97.912247 C 138.25671,97.699373 140.08531,98.766578 140.98932,99.218581"
+ id="path3135"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g12118"
+ transform="matrix(0.243566,0,0,0.243423,334.8474,507.3111)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/standing-up.png"
+ inkscape:export-xdpi="89.82251"
+ inkscape:export-ydpi="89.82251">
+ <path
+ d="M 337.23067,120.46513 C 337.23067,120.46513 328.08636,48.29039 372.82817,47.637222 C 417.56998,46.984061 422.14213,76.376489 422.14213,76.376489 C 422.14213,76.376489 429.98012,118.83222 426.71429,128.30311 C 423.44847,137.774 335.92434,137.12084 335.92434,137.12084 L 337.23067,120.46513 z "
+ id="path5095"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path5097"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8008);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.471016,0,0,0.486906,197.1814,-14.76968)" />
+ <path
+ transform="matrix(0.522532,0,0,0.522532,183.4103,-20.54651)"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path5099"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8010);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path5101"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8012);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.471016,0,0,0.486906,229.8396,-13.78992)" />
+ <path
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ id="path5103"
+ sodipodi:cx="336.25"
+ sodipodi:cy="217.04968"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="16.25"
+ sodipodi:ry="17.1875"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="color:black;fill:url(#linearGradient8014);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.522532,0,0,0.522532,215.742,-20.8731)" />
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 425.40884,127.71293 C 425.40884,127.71293 424.71282,122.94532 431.55851,127.44234 C 438.40421,131.93936 487.3838,177.48228 483.48821,198.44908 C 479.59262,219.41589 475.468,219.93143 475.468,219.93143 C 475.468,219.93143 419.75736,155.9136 424.1971,148.60962 C 428.63683,141.30562 411.05001,123.48947 411.05001,123.48947 L 425.40884,127.71293 z "
+ id="path5105"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 329.39269,143.97907 C 329.39269,143.97907 317.9623,165.53352 320.24838,174.67784 C 322.53446,183.82214 313.39015,237.05508 313.39015,237.05508 L 412.99783,239.66777 L 444.02316,156.7158 L 424.10163,132.2221 L 418.22315,121.77146 L 385.89147,136.46768 L 335.92434,137.774"
+ id="path5107"
+ style="fill:url(#linearGradient12110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csscscc"
+ d="M 344.67148,132.76538 C 344.67148,132.76538 344.65558,130.69991 337.54956,134.77314 C 330.44354,138.84636 278.79002,181.33251 281.40585,202.49709 C 284.02167,223.66167 288.1074,224.42661 288.1074,224.42661 C 288.1074,224.42661 347.60089,163.90818 343.61265,156.34818 C 339.62442,148.78819 358.26017,132.07231 358.26017,132.07231 L 344.67148,132.76538 z "
+ id="path5109"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="csczzscc"
+ d="M 442.06367,160.3082 C 442.06367,160.3082 449.76105,213.176 445.98421,237.05508 C 443.76033,251.1156 438.34096,255.12615 424.77393,270.32347 C 397.46861,280.96601 355.34119,281.69214 337.71639,270.73494 C 320.09159,259.77767 318.59992,251.45582 314.06723,234.75946 C 309.46024,217.78938 311.75724,184.14873 321.55471,161.61453 C 331.35219,139.08034 407.7725,155.40946 407.7725,155.40946 L 442.06367,160.3082 z "
+ id="path5111"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.534511,0,0,0.534511,426.7674,-161.6147)"
+ id="g5113">
+ <path
+ transform="translate(10,4)"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -160.39166,760.75064 C -142.08862,750.34252 -115.21378,787.41952 -116.95478,818.81079 C -119.0201,856.04985 -119.69797,862.03155 -138.00101,872.43967 C -156.30405,882.84779 -180.75484,866.27661 -182.35402,835.45044 C -183.96338,804.42815 -178.97844,771.9676 -161.01175,761.1142"
+ id="path5115"
+ sodipodi:nodetypes="csssc" />
+ <path
+ transform="matrix(1.034022,0,0,1.432408,-220.7731,-475.4827)"
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 88.015108,926.60877 C 98.987002,926.69896 111.74636,930.84265 113.79771,940.54792 C 115.84907,950.2532 112.50833,960.40347 101.91183,962.27368 C 80.718833,966.01409 40.798231,959.92476 40.809889,947.70153 C 40.827649,928.44127 66.063526,926.42833 88.015108,926.60877 z "
+ id="path5117"
+ sodipodi:nodetypes="csssz" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8018);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5119"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-218.0382,-70.20629)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8020);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5121"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-199.0643,-68.21124)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8022);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5123"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(1.116581,0,0,1.116581,-178.8597,-180.2023)" />
+ </g>
+ <g
+ transform="matrix(-0.534511,0,0,0.534511,335.0956,-163.6975)"
+ id="g5125">
+ <path
+ transform="translate(10,4)"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M -160.39166,760.75064 C -142.08862,750.34252 -115.21378,787.41952 -116.95478,818.81079 C -119.0201,856.04985 -119.69797,862.03155 -138.00101,872.43967 C -156.30405,882.84779 -180.75484,866.27661 -182.35402,835.45044 C -183.96338,804.42815 -178.97844,771.9676 -161.01175,761.1142"
+ id="path5127"
+ sodipodi:nodetypes="csssc" />
+ <path
+ transform="matrix(1.034022,0,0,1.432408,-220.7731,-475.4827)"
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 88.015108,926.60877 C 98.987002,926.69896 111.74636,930.84265 113.79771,940.54792 C 115.84907,950.2532 112.50833,960.40347 101.91183,962.27368 C 80.718833,966.01409 40.798231,959.92476 40.809889,947.70153 C 40.827649,928.44127 66.063526,926.42833 88.015108,926.60877 z "
+ id="path5129"
+ sodipodi:nodetypes="csssz" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8024);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5131"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-218.0382,-70.20629)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8026);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5133"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="translate(-199.0643,-68.21124)" />
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient8028);fill-opacity:1;stroke:black;stroke-width:0.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path5135"
+ sodipodi:cx="50.65308"
+ sodipodi:cy="957.50281"
+ sodipodi:rx="19.340267"
+ sodipodi:ry="23.024126"
+ d="M 44.46619,935.68854 A 19.340267,23.024126 0 1 1 44.12351,935.83056"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(1.116581,0,0,1.116581,-178.8597,-180.2023)" />
+ </g>
+ <path
+ d="M 378.05349,258.60955 C 378.05349,258.60955 467.86369,255.99692 418.22315,142.99932 C 368.5826,30.00177 335.92434,159.00187 335.92434,159.00187 C 335.92434,159.00187 300.98001,255.34374 378.05349,258.60955 z "
+ id="path5137"
+ style="fill:url(#linearGradient12093);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 347.35473,106.0955 C 347.35473,106.0955 364.99019,94.011947 377.07374,95.971438 C 389.1573,97.930934 405.81301,101.19676 407.7725,104.46259 C 409.732,107.72841 419.52948,121.44488 401.89402,126.99678 C 384.25856,132.54868 356.17246,136.14109 348.33448,121.77146 C 340.4965,107.40183 350.94714,103.15625 350.94714,103.15625"
+ id="path5139"
+ style="fill:url(#linearGradient12090);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.13063302pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 351.00186,118.20309 C 351.00186,118.20309 374.3661,107.61065 404.45157,117.59779"
+ id="path5141"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 365.31677,101.19676 C 366.41596,101.30323 368.17444,100.42109 369.23576,99.89043"
+ id="path5143"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 379.68641,100.21701 C 379.89304,100.00414 381.72164,101.07134 382.62565,101.52334"
+ id="path5145"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g3738"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-off3.png"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751">
+ <path
+ transform="matrix(0.101197,3.96446e-2,-2.52659e-2,0.120843,536.8444,469.7605)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:ry="65"
+ sodipodi:rx="29.285715"
+ sodipodi:cy="714.50507"
+ sodipodi:cx="326.42856"
+ id="path2756"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccssssss"
+ d="M 555.46517,576.34784 C 553.71421,574.7979 550.50187,573.59172 548.63027,573.06174 C 547.55122,574.08657 546.42298,575.41236 545.59611,577.83196 C 545.46157,578.22565 545.35198,578.51853 546.05777,579.06994 C 548.11033,580.67354 553.04356,584.86723 554.41608,585.27388 C 556.98543,586.03511 557.55183,583.89256 557.94252,582.45588 C 558.22357,581.42237 557.94605,579.99154 557.62529,579.29929 C 557.30453,578.60702 557.16092,577.84893 555.46517,576.34784 z "
+ id="path3350"
+ style="fill:url(#linearGradient3685);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02872224pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path1957"
+ d="M 560.32719,519.74611 C 558.35874,519.76183 556.29692,520.08118 554.30331,520.62545 C 547.66625,522.43741 548.72306,534.05261 550.16189,542.2062 C 547.42615,549.43231 548.82857,550.51183 547.04137,558.10334 C 543.56538,572.86831 555.47614,574.4537 563.37808,574.59031 C 570.15886,574.70754 579.51758,569.23607 571.97249,550.62278 C 570.82436,547.7904 570.03657,545.09814 568.50617,543.06388 C 569.2253,541.98386 569.88354,540.58446 570.76945,538.98771 C 572.47591,535.91201 571.66246,530.69332 570.86898,526.88915 C 570.32216,524.26754 568.94434,522.98485 567.07441,521.84947 C 565.20448,520.71409 562.84244,519.72602 560.32719,519.74611 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ d="M 568.17451,542.66664 C 568.17451,542.66664 568.07323,545.88833 568.91718,545.71877 C 569.76112,545.5492 576.64769,547.07527 577.66043,551.99259 C 578.67316,556.90991 578.36934,557.67293 578.36934,557.67293 C 578.36934,557.67293 569.76112,553.43387 569.65985,551.22955 C 569.55858,549.02524 566.99299,548.17743 566.99299,548.17743 L 568.17451,542.66664 z "
+ id="path3650"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02139916pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(9.825854e-2,-1.578848e-2,2.263815e-2,0.141164,510.3334,476.1249)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path1967"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path1985"
+ d="M 569.10475,536.21435 C 569.95631,535.69587 572.21534,535.75517 572.22596,535.72917 C 573.27815,535.8424 576.38177,536.22332 577.01988,536.44917 C 578.29611,536.90085 578.792,537.69475 578.69884,539.29893 C 578.49929,542.2076 577.32505,542.54573 575.65783,542.70197 C 570.87625,543.15005 571.79284,542.81129 567.58808,542.46719 C 567.16782,539.3438 566.81014,540.13994 569.10475,536.21435 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.188822,0,0,0.112467,478.4767,485.953)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path1965"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.332296,0,0,0.145012,409.2173,472.9935)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path1969"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path2760"
+ d="M 577.77319,537.68492 L 577.18555,538.0325"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.32095954;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2762"
+ d="M 571.22901,541.10727 C 575.87671,539.02177 578.62794,539.9041 578.62794,539.9041"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.32095954;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 556.12811,540.97174 C 556.12811,540.97174 557.40563,544.17384 555.89249,544.49431 C 554.37934,544.81478 543.0282,550.37517 542.96548,555.94325 C 542.90277,561.51134 543.68782,562.10655 543.68782,562.10655 C 543.68782,562.10655 557.07859,552.79602 556.49857,550.50565 C 555.91856,548.21528 560.05181,545.86106 560.05181,545.86106 L 556.12811,540.97174 z "
+ id="path3652"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.19705109;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="540.41443"
+ x="550.6106"
+ height="12.336032"
+ width="11.055295"
+ id="rect4543"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="matrix(0.951523,0.307577,-0.307577,0.951523,204.6833,-145.0222)"
+ id="g3634">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3358"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(8.814751e-2,0.106847,-0.106823,8.82819e-2,598.9079,459.5489)" />
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect6315"
+ width="5.7994967"
+ height="11.428954"
+ x="718.9682"
+ y="336.28204"
+ transform="matrix(0.938975,0.343985,-0.343985,0.938975,0,0)" />
+ </g>
+ <g
+ transform="matrix(7.197754e-2,8.908681e-2,-8.651746e-2,9.701031e-2,598.0103,462.9922)"
+ id="g2730">
+ <path
+ style="fill:url(#linearGradient3661);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="path2718"
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497" />
+ <path
+ style="fill:url(#linearGradient3663);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2720"
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z " />
+ <path
+ style="fill:url(#linearGradient3665);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2722"
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624" />
+ </g>
+ </g>
+ <g
+ id="g3716"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-off1.png"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751">
+ <g
+ transform="matrix(0.203822,5.925592e-2,-5.925592e-2,0.203822,396.131,402.3428)"
+ id="g2172">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path1987"
+ sodipodi:cx="326.42856"
+ sodipodi:cy="714.50507"
+ sodipodi:rx="29.285715"
+ sodipodi:ry="65"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.468896,-0.228669,0.344261,0.481733,192.9453,392.4015)" />
+ <path
+ style="fill:url(#linearGradient3688);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.1378147pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path1989"
+ d="M 621.18925,659.80434 C 612.60503,667.03053 604.62421,681.43801 600.794,689.95351 C 604.89723,695.79753 610.39367,702.08657 621.29118,707.71274 C 623.06428,708.62814 624.37669,709.35429 627.48891,706.38996 C 636.53969,697.7692 659.90365,677.28809 662.79783,671.05593 C 668.21571,659.38938 658.44943,655.19471 651.90835,652.33029 C 647.20284,650.26969 640.21972,650.58257 636.71002,651.61955 C 633.20033,652.6565 629.50286,652.80597 621.18925,659.80434 z "
+ sodipodi:nodetypes="ccssssss" />
+ </g>
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path1991"
+ d="M 473.53423,519.74615 C 471.52844,519.76216 469.42752,520.08725 467.3961,520.6413 C 460.63315,522.48582 461.71001,534.30972 463.17613,542.60982 C 460.3885,549.96578 461.81752,551.06469 459.99641,558.79261 C 456.4545,573.82289 468.61689,576.23384 476.64299,575.57584 C 484.72529,574.91323 493.0886,570.12539 485.40041,551.17764 C 484.23051,548.29437 483.42776,545.55373 481.86834,543.48292 C 482.60112,542.38349 483.27184,540.95895 484.17455,539.33351 C 485.91337,536.20254 485.08449,530.89007 484.27597,527.01755 C 483.71878,524.34883 482.31482,523.04309 480.40942,521.88731 C 478.50402,520.73153 476.09718,519.7257 473.53423,519.74615 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ d="M 467.83402,543.07854 C 467.83402,543.07854 467.93721,546.35812 467.07726,546.18551 C 466.21731,546.0129 459.20012,547.56638 458.16818,552.57206 C 457.13624,557.57774 457.44582,558.35448 457.44582,558.35448 C 457.44582,558.35448 466.21731,554.03924 466.32051,551.79531 C 466.4237,549.55139 469.03795,548.68834 469.03795,548.68834 L 467.83402,543.07854 z "
+ id="path1993"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02179435pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(0.100122,-1.607217e-2,2.306745e-2,0.143701,422.5922,475.3411)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path1995"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path1997"
+ d="M 482.47828,536.51031 C 483.34599,535.98251 485.64787,536.04288 485.65868,536.0164 C 486.73083,536.13168 489.89331,536.51944 490.54353,536.74934 C 491.84396,537.20914 492.34926,538.01731 492.25434,539.65032 C 492.051,542.61125 490.85449,542.95545 489.15565,543.1145 C 484.28338,543.57064 485.21735,543.22579 480.93284,542.8755 C 480.5046,539.69598 480.14014,540.50644 482.47828,536.51031 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.192404,0,0,0.114488,390.1313,485.3458)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path1999"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.338599,0,0,0.147617,319.5582,472.1535)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path2001"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path2013"
+ d="M 491.31113,538.0073 L 490.71234,538.36113"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2015"
+ d="M 484.64283,541.49115 C 489.37868,539.36818 492.18209,540.26636 492.18209,540.26636"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 471.8306,542.18772 C 471.8306,542.18772 470.99245,545.59567 472.56458,545.70638 C 474.13671,545.81709 486.37498,549.83007 487.22263,555.43544 C 488.07027,561.04082 487.36188,561.75117 487.36188,561.75117 C 487.36188,561.75117 472.53706,554.24331 472.79976,551.85256 C 473.06244,549.46182 468.55975,547.66832 468.55975,547.66832 L 471.8306,542.18772 z "
+ id="path2017"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.20069018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="540.78589"
+ x="463.6333"
+ height="12.557693"
+ width="11.264981"
+ id="rect2019"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="matrix(1.569469e-2,0.21168,-0.21168,1.569469e-2,561.7924,433.2409)"
+ id="g2097">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2003"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.573772,0.335733,-0.335733,0.573772,576.538,-74.62652)" />
+ <g
+ id="g2005"
+ transform="matrix(0.471556,0.282432,-0.22979,0.579583,578.1783,-57.64035)">
+ <path
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497"
+ id="path2007"
+ style="fill:url(#linearGradient3690);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z "
+ id="path2009"
+ style="fill:url(#linearGradient3692);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624"
+ id="path2011"
+ style="fill:url(#linearGradient3694);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2021"
+ width="27.840729"
+ height="54.811432"
+ x="569.48468"
+ y="456.71613" />
+ </g>
+ </g>
+ <g
+ id="g3224"
+ transform="matrix(0.244118,0,0,0.244928,441.4254,425.7338)"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-off2.png"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751">
+ <g
+ transform="matrix(0.71027,0.501317,-0.501317,0.71027,209.9558,-173.9609)"
+ id="g2202">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2204"
+ sodipodi:cx="326.42856"
+ sodipodi:cy="714.50507"
+ sodipodi:rx="29.285715"
+ sodipodi:ry="65"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.468896,-0.228669,0.344261,0.481733,192.9453,392.4015)" />
+ <path
+ style="fill:url(#linearGradient9174);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.1378147pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2206"
+ d="M 621.18925,659.80434 C 612.60503,667.03053 604.62421,681.43801 600.794,689.95351 C 604.89723,695.79753 610.39367,702.08657 621.29118,707.71274 C 623.06428,708.62814 624.37669,709.35429 627.48891,706.38996 C 636.53969,697.7692 659.90365,677.28809 662.79783,671.05593 C 668.21571,659.38938 658.44943,655.19471 651.90835,652.33029 C 647.20284,650.26969 640.21972,650.58257 636.71002,651.61955 C 633.20033,652.6565 629.50286,652.80597 621.18925,659.80434 z "
+ sodipodi:nodetypes="ccssssss" />
+ </g>
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path2208"
+ d="M 313.10259,383.83654 C 304.88736,383.90209 296.2825,385.23359 287.96227,387.50284 C 260.26287,395.05754 264.67343,443.48541 270.67831,477.4806 C 259.26083,507.60883 265.11375,512.10969 257.65496,543.7614 C 243.14813,605.32177 292.96235,615.19642 325.83529,612.50142 C 358.93844,609.78755 393.19256,590.17771 361.70358,512.57229 C 356.91193,500.76312 353.62411,489.53813 347.23707,481.0566 C 350.23835,476.55361 352.98547,470.71901 356.68275,464.0616 C 363.80456,451.2379 360.40966,429.47933 357.09814,413.61842 C 354.81603,402.688 349.06575,397.33999 341.26171,392.60618 C 333.45766,387.87238 323.59982,383.75278 313.10259,383.83654 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.410077,-6.582774e-2,9.447868e-2,0.588564,104.4565,201.9641)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path2212"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path2214"
+ d="M 349.73524,452.49848 C 353.28917,450.33674 362.71711,450.58399 362.7614,450.47556 C 367.15264,450.94768 380.10543,452.53588 382.76856,453.47748 C 388.09482,455.36071 390.16441,458.67078 389.77561,465.35919 C 388.94279,477.48646 384.04215,478.89621 377.08414,479.54762 C 357.12848,481.41587 360.95381,480.00344 343.40548,478.56876 C 341.65154,465.54623 340.15879,468.86564 349.73524,452.49848 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.788039,0,0,0.468916,-28.49555,242.9411)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path2216"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(1.38682,0,0,0.604605,-317.5459,188.9084)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path2218"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path2220"
+ d="M 385.91245,458.62977 L 383.45996,460.07897"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2222"
+ d="M 358.60071,472.89877 C 377.99761,464.2036 389.47969,467.88233 389.47969,467.88233"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1.29999995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(0.386049,0.778953,-0.778953,0.386049,457.6024,-76.20271)"
+ id="g2228">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2230"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.573772,0.335733,-0.335733,0.573772,576.538,-74.62652)" />
+ <g
+ id="g2232"
+ transform="matrix(0.471556,0.282432,-0.22979,0.579583,578.1783,-57.64035)">
+ <path
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497"
+ id="path2234"
+ style="fill:url(#linearGradient9176);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z "
+ id="path2236"
+ style="fill:url(#linearGradient9178);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624"
+ id="path2238"
+ style="fill:url(#linearGradient9180);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2240"
+ width="27.840729"
+ height="54.811432"
+ x="569.48468"
+ y="456.71613" />
+ </g>
+ <path
+ d="M 322.38649,471.43917 C 322.38649,471.43917 311.15141,480.40501 315.97692,484.69239 C 320.80242,488.97979 350.49327,532.58157 339.23874,552.89094 C 327.98423,573.20032 323.91042,573.73569 323.91042,573.73569 C 323.91042,573.73569 294.55746,512.3291 301.38345,505.2266 C 308.2094,498.12409 298.07772,481.05324 298.07772,481.05324 L 322.38649,471.43917 z "
+ id="path2224"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.82197827;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ transform="matrix(0.97333,0.229411,-0.229411,0.97333,0,0)"
+ y="369.87466"
+ x="387.47827"
+ height="51.433315"
+ width="46.138672"
+ id="rect2226"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4119"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-on1.png">
+ <g
+ transform="matrix(0.203822,5.925592e-2,-5.925592e-2,0.203822,400.1247,490.0041)"
+ id="g3993">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3995"
+ sodipodi:cx="326.42856"
+ sodipodi:cy="714.50507"
+ sodipodi:rx="29.285715"
+ sodipodi:ry="65"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.468896,-0.228669,0.344261,0.481733,192.9453,392.4015)" />
+ <path
+ style="fill:url(#linearGradient4081);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.1378147pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3997"
+ d="M 621.18925,659.80434 C 612.60503,667.03053 604.62421,681.43801 600.794,689.95351 C 604.89723,695.79753 610.39367,702.08657 621.29118,707.71274 C 623.06428,708.62814 624.37669,709.35429 627.48891,706.38996 C 636.53969,697.7692 659.90365,677.28809 662.79783,671.05593 C 668.21571,659.38938 658.44943,655.19471 651.90835,652.33029 C 647.20284,650.26969 640.21972,650.58257 636.71002,651.61955 C 633.20033,652.6565 629.50286,652.80597 621.18925,659.80434 z "
+ sodipodi:nodetypes="ccssssss" />
+ </g>
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path3999"
+ d="M 477.52794,607.40748 C 475.52215,607.42349 473.42123,607.74858 471.38981,608.30263 C 464.62686,610.14715 465.70372,621.97105 467.16984,630.27115 C 464.38221,637.62711 465.81123,638.72602 463.99012,646.45394 C 460.44821,661.48422 472.6106,663.89517 480.6367,663.23717 C 488.719,662.57456 497.08231,657.78672 489.39412,638.83897 C 488.22422,635.9557 487.42147,633.21506 485.86205,631.14425 C 486.59483,630.04482 487.26555,628.62028 488.16826,626.99484 C 489.90708,623.86387 489.0782,618.5514 488.26968,614.67888 C 487.71249,612.01016 486.30853,610.70442 484.40313,609.54864 C 482.49773,608.39286 480.09089,607.38703 477.52794,607.40748 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ d="M 471.82773,630.73987 C 471.82773,630.73987 471.93092,634.01945 471.07097,633.84684 C 470.21102,633.67423 463.19383,635.22771 462.16189,640.23339 C 461.12995,645.23907 461.43953,646.01581 461.43953,646.01581 C 461.43953,646.01581 470.21102,641.70057 470.31422,639.45664 C 470.41741,637.21272 473.03166,636.34967 473.03166,636.34967 L 471.82773,630.73987 z "
+ id="path4001"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02179435pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(0.100122,-1.607217e-2,2.306745e-2,0.143701,426.5859,563.0024)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path4003"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path4005"
+ d="M 486.47199,624.17164 C 487.3397,623.64384 489.64158,623.70421 489.65239,623.67773 C 490.72454,623.79301 493.88702,624.18077 494.53724,624.41067 C 495.83767,624.87047 496.34297,625.67864 496.24805,627.31165 C 496.04471,630.27258 494.8482,630.61678 493.14936,630.77583 C 488.27709,631.23197 489.21106,630.88712 484.92655,630.53683 C 484.49831,627.35731 484.13385,628.16777 486.47199,624.17164 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.192404,0,0,0.114488,394.125,573.0071)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path4007"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.338599,0,0,0.147617,323.5519,559.8148)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path4009"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path4011"
+ d="M 495.30484,625.66863 L 494.70605,626.02246"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 475.82431,629.84905 C 475.82431,629.84905 474.98616,633.257 476.55829,633.36771 C 478.13042,633.47842 490.36869,637.4914 491.21634,643.09677 C 492.06398,648.70215 491.35559,649.4125 491.35559,649.4125 C 491.35559,649.4125 476.53077,641.90464 476.79347,639.51389 C 477.05615,637.12315 472.55346,635.32965 472.55346,635.32965 L 475.82431,629.84905 z "
+ id="path4015"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.20069018;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="628.4472"
+ x="467.62701"
+ height="12.557693"
+ width="11.264981"
+ id="rect4017"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="matrix(1.569469e-2,0.21168,-0.21168,1.569469e-2,565.7861,520.9022)"
+ id="g4019">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4021"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.573772,0.335733,-0.335733,0.573772,576.538,-74.62652)" />
+ <g
+ id="g4023"
+ transform="matrix(0.471556,0.282432,-0.22979,0.579583,578.1783,-57.64035)">
+ <path
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497"
+ id="path4025"
+ style="fill:url(#linearGradient4083);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z "
+ id="path4027"
+ style="fill:url(#linearGradient4085);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624"
+ id="path4029"
+ style="fill:url(#linearGradient4087);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4031"
+ width="27.840729"
+ height="54.811432"
+ x="569.48468"
+ y="456.71613" />
+ </g>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4117"
+ d="M 489.52008,627.2874 C 493.81431,629.80244 496.17605,628.05033 496.17605,628.05033"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340399;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4162"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-on2.png">
+ <g
+ transform="matrix(0.17339,0.122787,-0.122381,0.173965,496.6731,470.7872)"
+ id="g4035">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4037"
+ sodipodi:cx="326.42856"
+ sodipodi:cy="714.50507"
+ sodipodi:rx="29.285715"
+ sodipodi:ry="65"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.468896,-0.228669,0.344261,0.481733,192.9453,392.4015)" />
+ <path
+ style="fill:url(#linearGradient4089);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.1378147pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4039"
+ d="M 621.18925,659.80434 C 612.60503,667.03053 604.62421,681.43801 600.794,689.95351 C 604.89723,695.79753 610.39367,702.08657 621.29118,707.71274 C 623.06428,708.62814 624.37669,709.35429 627.48891,706.38996 C 636.53969,697.7692 659.90365,677.28809 662.79783,671.05593 C 668.21571,659.38938 658.44943,655.19471 651.90835,652.33029 C 647.20284,650.26969 640.21972,650.58257 636.71002,651.61955 C 633.20033,652.6565 629.50286,652.80597 621.18925,659.80434 z "
+ sodipodi:nodetypes="ccssssss" />
+ </g>
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path4041"
+ d="M 521.85308,607.40742 C 519.84759,607.42347 517.74699,607.74959 515.71587,608.3054 C 508.95395,610.15575 510.03065,622.01709 511.49655,630.34347 C 508.70934,637.72272 510.13814,638.8251 508.31731,646.57749 C 504.77594,661.65535 516.93648,664.07393 524.96136,663.41385 C 533.04243,662.74915 541.40448,657.94615 533.71745,638.93841 C 532.54773,636.04601 531.74511,633.2967 530.18592,631.21933 C 530.91859,630.11642 531.58921,628.68737 532.49178,627.05678 C 534.23034,623.9159 533.40159,618.58661 532.59318,614.70183 C 532.03608,612.02467 530.63233,610.71479 528.72723,609.55535 C 526.82212,608.39591 524.41564,607.3869 521.85308,607.40742 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.100107,-1.612306e-2,2.306395e-2,0.144156,470.9188,562.8618)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path4043"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path4045"
+ d="M 530.79577,624.22465 C 531.66335,623.69518 533.96488,623.75574 533.97569,623.72918 C 535.04767,623.84481 538.20968,624.23381 538.8598,624.46443 C 540.16003,624.92569 540.66526,625.73642 540.57034,627.3746 C 540.36704,630.3449 539.1707,630.69019 537.47213,630.84974 C 532.60059,631.30733 533.53442,630.96138 529.25056,630.60999 C 528.82239,627.42041 528.45798,628.23342 530.79577,624.22465 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.192375,0,0,0.114851,438.4628,572.8982)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path4047"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.338548,0,0,0.148085,367.9004,559.6641)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path4049"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path4051"
+ d="M 539.62728,625.72637 L 539.02858,626.08132"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31787944;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <g
+ transform="matrix(9.424151e-2,0.190787,-0.190156,9.455421e-2,557.1281,494.7309)"
+ id="g4055">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4057"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(0.573772,0.335733,-0.335733,0.573772,576.538,-74.62652)" />
+ <g
+ id="g4059"
+ transform="matrix(0.471556,0.282432,-0.22979,0.579583,578.1783,-57.64035)">
+ <path
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497"
+ id="path4061"
+ style="fill:url(#linearGradient4091);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" />
+ <path
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z "
+ id="path4063"
+ style="fill:url(#linearGradient4093);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624"
+ id="path4065"
+ style="fill:url(#linearGradient4095);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4067"
+ width="27.840729"
+ height="54.811432"
+ x="569.48468"
+ y="456.71613" />
+ </g>
+ <path
+ d="M 524.11945,628.86375 C 524.11945,628.86375 521.37676,631.05974 522.55475,632.10984 C 523.73275,633.15994 530.98082,643.83924 528.23338,648.81357 C 525.48595,653.78791 524.49146,653.91904 524.49146,653.91904 C 524.49146,653.91904 517.32588,638.87884 518.99223,637.13924 C 520.65856,635.39964 518.18524,631.21851 518.18524,631.21851 L 524.11945,628.86375 z "
+ id="path4069"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.20099232;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ transform="matrix(0.973159,0.230132,-0.228692,0.973499,0,0)"
+ y="487.68744"
+ x="645.63171"
+ height="12.595285"
+ width="11.265238"
+ id="rect4071"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4160"
+ d="M 533.23958,627.8139 C 537.53381,630.32894 539.89555,628.57683 539.89555,628.57683"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340399;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4206"
+ inkscape:export-xdpi="90.342751"
+ inkscape:export-ydpi="90.342751"
+ inkscape:export-filename="/home/tim/src/tuxmath/trunk/data/images/penguins/walk-on3.png">
+ <path
+ transform="matrix(0.101197,3.96446e-2,-2.52659e-2,0.120843,540.8381,557.4218)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 317.06015,652.92066 A 29.285715,65 0 1 1 316.54125,653.32159"
+ sodipodi:ry="65"
+ sodipodi:rx="29.285715"
+ sodipodi:cy="714.50507"
+ sodipodi:cx="326.42856"
+ id="path3953"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccssssss"
+ d="M 559.45888,664.00917 C 557.70792,662.45923 554.49558,661.25305 552.62398,660.72307 C 551.54493,661.7479 550.41669,663.07369 549.58982,665.49329 C 549.45528,665.88698 549.34569,666.17986 550.05148,666.73127 C 552.10404,668.33487 557.03727,672.52856 558.40979,672.93521 C 560.97914,673.69644 561.54554,671.55389 561.93623,670.11721 C 562.21728,669.0837 561.93976,667.65287 561.619,666.96062 C 561.29824,666.26835 561.15463,665.51026 559.45888,664.00917 z "
+ id="path3955"
+ style="fill:url(#linearGradient4201);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02872224pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cscssscsssc"
+ id="path3957"
+ d="M 564.3209,607.40744 C 562.35245,607.42316 560.29063,607.74251 558.29702,608.28678 C 551.65996,610.09874 552.71677,621.71394 554.1556,629.86753 C 551.41986,637.09364 552.82228,638.17316 551.03508,645.76467 C 547.55909,660.52964 559.46985,662.11503 567.37179,662.25164 C 574.15257,662.36887 583.51129,656.8974 575.9662,638.28411 C 574.81807,635.45173 574.03028,632.75947 572.49988,630.72521 C 573.21901,629.64519 573.87725,628.24579 574.76316,626.64904 C 576.46962,623.57334 575.65617,618.35465 574.86269,614.55048 C 574.31587,611.92887 572.93805,610.64618 571.06812,609.5108 C 569.19819,608.37542 566.83615,607.38735 564.3209,607.40744 z "
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ d="M 572.16822,630.32797 C 572.16822,630.32797 572.06694,633.54966 572.91089,633.3801 C 573.75483,633.21053 580.6414,634.7366 581.65414,639.65392 C 582.66687,644.57124 582.36305,645.33426 582.36305,645.33426 C 582.36305,645.33426 573.75483,641.0952 573.65356,638.89088 C 573.55229,636.68657 570.9867,635.83876 570.9867,635.83876 L 572.16822,630.32797 z "
+ id="path3959"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.02139916pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="matrix(9.825854e-2,-1.578848e-2,2.263815e-2,0.141164,514.3271,563.7862)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 463.37542,513.33124 A 38.57143,100 0 1 1 462.69199,513.94806"
+ sodipodi:ry="100"
+ sodipodi:rx="38.57143"
+ sodipodi:cy="608.07648"
+ sodipodi:cx="475.71429"
+ id="path3961"
+ style="fill:#f9f9f9;fill-opacity:1;stroke:black;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="ccscscc"
+ id="path3963"
+ d="M 573.09846,623.87568 C 573.95002,623.3572 576.20905,623.4165 576.21967,623.3905 C 577.27186,623.50373 580.37548,623.88465 581.01359,624.1105 C 582.28982,624.56218 582.78571,625.35608 582.69255,626.96026 C 582.493,629.86893 581.31876,630.20706 579.65154,630.3633 C 574.86996,630.81138 575.78655,630.47262 571.58179,630.12852 C 571.16153,627.00513 570.80385,627.80127 573.09846,623.87568 z "
+ style="fill:#fdd541;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+ <path
+ transform="matrix(0.188822,0,0,0.112467,482.4704,573.6143)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 466.40161,367.20864 A 15.714286,37.857143 0 1 1 466.12318,367.44215"
+ sodipodi:ry="37.857143"
+ sodipodi:rx="15.714286"
+ sodipodi:cy="403.07648"
+ sodipodi:cx="471.42856"
+ id="path3965"
+ style="fill:white;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.332296,0,0,0.145012,413.211,560.6548)"
+ sodipodi:open="true"
+ sodipodi:end="10.651192"
+ sodipodi:start="4.3867684"
+ d="M 476.28646,394.76664 A 7.1428571,18.571428 0 1 1 476.1599,394.88119"
+ sodipodi:ry="18.571428"
+ sodipodi:rx="7.1428571"
+ sodipodi:cy="412.36218"
+ sodipodi:cx="478.57144"
+ id="path3967"
+ style="fill:#333;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ id="path3969"
+ d="M 581.7669,625.34625 L 581.17926,625.69383"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.32095954;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 560.12182,628.63307 C 560.12182,628.63307 561.39934,631.83517 559.8862,632.15564 C 558.37305,632.47611 547.02191,638.0365 546.95919,643.60458 C 546.89648,649.17267 547.68153,649.76788 547.68153,649.76788 C 547.68153,649.76788 561.0723,640.45735 560.49228,638.16698 C 559.91227,635.87661 564.04552,633.52239 564.04552,633.52239 L 560.12182,628.63307 z "
+ id="path3973"
+ style="fill:black;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.19705109;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ y="628.07574"
+ x="554.60431"
+ height="12.336032"
+ width="11.055295"
+ id="rect3975"
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:0.98699999;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="matrix(0.951523,0.307577,-0.307577,0.951523,208.677,-57.36087)"
+ id="g3977">
+ <path
+ sodipodi:type="arc"
+ style="fill:black;fill-opacity:1;stroke:white;stroke-width:1.6000005;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3979"
+ sodipodi:cx="474.28571"
+ sodipodi:cy="730.93359"
+ sodipodi:rx="52.857143"
+ sodipodi:ry="28.571428"
+ d="M 457.37687,703.86353 A 52.857143,28.571428 0 1 1 456.44033,704.03976"
+ sodipodi:start="4.3867684"
+ sodipodi:end="10.651192"
+ sodipodi:open="true"
+ transform="matrix(8.814751e-2,0.106847,-0.106823,8.82819e-2,598.9079,459.5489)" />
+ <rect
+ style="fill:black;fill-opacity:1;stroke:none;stroke-width:1.60000002;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3981"
+ width="5.7994967"
+ height="11.428954"
+ x="718.9682"
+ y="336.28204"
+ transform="matrix(0.938975,0.343985,-0.343985,0.938975,0,0)" />
+ </g>
+ <g
+ transform="matrix(7.197754e-2,8.908681e-2,-8.651746e-2,9.701031e-2,602.004,550.6535)"
+ id="g3983">
+ <path
+ style="fill:url(#linearGradient4075);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="path3985"
+ d="M 534.20117,716.14398 C 526.25826,697.20319 520.14832,693.53723 520.14832,693.53723 L 505.48449,697.81418 L 482.26675,761.35747 L 535.42315,741.80569 L 538.47812,716.75497" />
+ <path
+ style="fill:url(#linearGradient4077);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3987"
+ d="M 541.53308,758.3025 C 541.53308,758.3025 569.02777,733.86278 559.86288,719.19894 C 550.69798,704.53511 541.53308,758.3025 541.53308,758.3025 z " />
+ <path
+ style="fill:url(#linearGradient4079);fill-opacity:1;fill-rule:evenodd;stroke:black;stroke-width:0.24439726pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path3989"
+ d="M 510.98343,752.19257 C 510.98343,752.19257 545.19904,684.98333 502.42952,693.53723 C 459.66,702.09114 425.44439,785.79719 451.1061,793.7401 C 476.76781,801.68301 534.81216,780.29826 541.53308,757.08052 C 548.25401,733.86278 576.97068,703.31312 550.69798,692.31525 C 524.42528,681.31737 516.48237,692.92624 516.48237,692.92624" />
+ </g>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4204"
+ d="M 575.73214,627.13355 C 580.02637,629.64859 582.38811,627.89648 582.38811,627.89648"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.31340399;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <image
+ y="647.54559"
+ x="147.71048"
+ id="image4300"
+ height="149"
+ width="83"
+ sodipodi:absref="/home/tim/src/tuxmath/trunk/data/images/comets/comet2.png"
+ xlink:href="comets/comet2.png"
+ clip-path="url(#clipPath4305)" />
+ <text
+ xml:space="preserve"
+ style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="150.36523"
+ y="823.42651"
+ id="text4308"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4310"
+ x="150.36523"
+ y="823.42651"
+ style="font-size:40;font-family:Bitstream Vera Sans;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%">1+2</tspan></text>
+ <g
+ id="g4739"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/help0.png"
+ inkscape:export-xdpi="72"
+ inkscape:export-ydpi="72">
+ <g
+ transform="translate(0,1.6282366)"
+ inkscape:export-ydpi="150.2216"
+ inkscape:export-xdpi="150.2216"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/help0.png"
+ id="g3189">
+ <path
+ style="fill:url(#linearGradient4573);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2834"
+ d="M 370.41458,737.43648 C 370.41458,737.43648 368.31804,720.8873 378.57609,720.73753 C 388.83415,720.58777 389.88242,727.32725 389.88242,727.32725 C 389.88242,727.32725 391.54091,739.40152 389.92851,741.03758 C 387.1754,741.40528 370.11507,741.25552 370.11507,741.25552 L 370.41458,737.43648 z "
+ sodipodi:nodetypes="cscccc" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,335.14302,704.62977)"
+ style="color:#000000;fill:url(#linearGradient4575);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path2836"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ style="color:#000000;fill:url(#linearGradient4577);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path2838"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.129004,0,0,0.129003,330.91782,701.20358)" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,343.20572,704.87165)"
+ style="color:#000000;fill:url(#linearGradient4579);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path2840"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ transform="matrix(0.129004,0,0,0.129003,338.83883,701.26469)"
+ style="color:#000000;fill:url(#linearGradient4581);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path2842"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ <path
+ style="fill:url(#linearGradient4583);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2863"
+ d="M 372.73574,734.14162 C 372.73574,734.14162 376.77906,731.37094 379.54949,731.82024 C 382.31991,732.26954 386.1386,733.01837 386.58785,733.7672 C 387.03711,734.51603 389.2834,737.66113 385.24008,738.93414 C 381.19676,740.20715 374.7574,741.03087 372.96037,737.73601 C 371.16334,734.44115 373.55938,733.46767 373.55938,733.46767" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2865"
+ d="M 373.34012,736.78552 C 373.34012,736.78552 378.8014,736.16657 386.2346,736.80168"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2867"
+ d="M 376.85394,733.01837 C 377.10595,733.04278 377.50912,732.84052 377.75245,732.71884" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2869"
+ d="M 380.14849,732.79372 C 380.19587,732.74491 380.61512,732.98961 380.82238,733.09325" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="-451.52859"
+ y="680.10181"
+ id="text2967"
+ transform="matrix(0.4991418,-0.8665203,0.8665203,0.4991418,0,0)"
+ inkscape:transform-center-y="-4.9537039"><tspan
+ sodipodi:role="line"
+ id="tspan2969"
+ x="-451.52859"
+ y="680.10181"
+ style="fill:#00ff00">?</tspan></text>
+ </g>
+ <rect
+ y="706.46686"
+ x="355.10962"
+ height="50"
+ width="50"
+ id="rect3206"
+ style="fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4724"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/help1.png"
+ inkscape:export-xdpi="72"
+ inkscape:export-ydpi="72">
+ <g
+ id="g4560">
+ <path
+ style="fill:url(#linearGradient4558);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4198"
+ d="M 422.74836,739.06472 C 422.74836,739.06472 420.65182,722.51554 430.90987,722.36577 C 441.16793,722.21601 442.2162,728.95549 442.2162,728.95549 C 442.2162,728.95549 443.87469,741.02976 442.26229,742.66582 C 439.50918,743.03352 422.44885,742.88376 422.44885,742.88376 L 422.74836,739.06472 z "
+ sodipodi:nodetypes="cscccc" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,387.4768,706.25801)"
+ style="color:#000000;fill:url(#linearGradient4534);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4200"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ style="color:#000000;fill:url(#linearGradient4536);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4202"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.129004,0,0,0.129003,383.53506,701.98144)" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,395.5395,706.49989)"
+ style="color:#000000;fill:url(#linearGradient4538);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4205"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ transform="matrix(0.129004,0,0,0.129003,391.31434,702.18428)"
+ style="color:#000000;fill:url(#linearGradient4540);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4207"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ <path
+ style="fill:url(#linearGradient4551);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4209"
+ d="M 425.06952,735.76986 C 425.06952,735.76986 429.11284,732.99918 431.88327,733.44848 C 434.65369,733.89778 438.47238,734.64661 438.92163,735.39544 C 439.37089,736.14427 441.61718,739.28937 437.57386,740.56238 C 433.53054,741.83539 427.09118,742.65911 425.29415,739.36425 C 423.49712,736.06939 425.89316,735.09591 425.89316,735.09591" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4211"
+ d="M 425.6739,738.41376 C 425.6739,738.41376 431.13518,737.79481 438.56838,738.42992"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4213"
+ d="M 429.18772,734.64661 C 429.43973,734.67102 429.8429,734.46876 430.08623,734.34708" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4215"
+ d="M 432.48227,734.42196 C 432.52965,734.37315 432.9489,734.61785 433.15616,734.72149" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.99999809px;font-style:normal;font-weight:normal;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="-16.813641"
+ y="839.18774"
+ id="text4217"
+ transform="matrix(0.8571233,-0.5151113,0.5151113,0.8571233,0,0)"
+ inkscape:transform-center-y="103.25571"
+ inkscape:transform-center-x="405.20343"><tspan
+ sodipodi:role="line"
+ id="tspan4219"
+ x="-16.813641"
+ y="839.18774"
+ style="fill:#ff00ff">?</tspan></text>
+ </g>
+ <rect
+ y="706.46686"
+ x="407.44339"
+ height="50"
+ width="50"
+ id="rect4221"
+ style="fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4709"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/help2.png"
+ inkscape:export-xdpi="72"
+ inkscape:export-ydpi="72">
+ <g
+ id="g4638">
+ <path
+ style="fill:url(#linearGradient4636);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4239"
+ d="M 475.0821,739.06472 C 475.0821,739.06472 472.98556,722.51554 483.24361,722.36577 C 493.50167,722.21601 494.54994,728.95549 494.54994,728.95549 C 494.54994,728.95549 496.20843,741.02976 494.59603,742.66582 C 491.84292,743.03352 474.78259,742.88376 474.78259,742.88376 L 475.0821,739.06472 z "
+ sodipodi:nodetypes="cscccc" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,439.81054,706.25801)"
+ style="color:#000000;fill:url(#linearGradient4612);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4241"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ style="color:#000000;fill:url(#linearGradient4614);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4243"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.129004,0,0,0.129003,437.71127,701.98145)" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,447.87324,706.49989)"
+ style="color:#000000;fill:url(#linearGradient4616);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4245"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ transform="matrix(0.129004,0,0,0.129003,445.77401,702.46774)"
+ style="color:#000000;fill:url(#linearGradient4618);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4247"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ <path
+ style="fill:url(#linearGradient4629);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4250"
+ d="M 477.40326,735.76986 C 477.40326,735.76986 481.44658,732.99918 484.21701,733.44848 C 486.98743,733.89778 490.80612,734.64661 491.25537,735.39544 C 491.70463,736.14427 493.95092,739.28937 489.9076,740.56238 C 485.86428,741.83539 479.42492,742.65911 477.62789,739.36425 C 475.83086,736.06939 478.2269,735.09591 478.2269,735.09591" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4252"
+ d="M 478.00764,738.41376 C 478.00764,738.41376 483.46892,737.79481 490.90212,738.42992"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4254"
+ d="M 481.52146,734.64661 C 481.77347,734.67102 482.17664,734.46876 482.41997,734.34708" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4256"
+ d="M 484.81601,734.42196 C 484.86339,734.37315 485.28264,734.61785 485.4899,734.72149" />
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-weight:normal;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="844.1759"
+ y="217.33545"
+ id="text4258"
+ transform="matrix(0.7514505,0.6597895,-0.6597895,0.7514505,0,0)"
+ inkscape:transform-center-y="-417.47429"
+ inkscape:transform-center-x="1269.9459"><tspan
+ sodipodi:role="line"
+ id="tspan4260"
+ x="844.1759"
+ y="217.33545"
+ style="fill:#0000ff">?</tspan></text>
+ </g>
+ <rect
+ y="706.46686"
+ x="459.77713"
+ height="50"
+ width="50"
+ id="rect4262"
+ style="fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4984"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/help3.png"
+ inkscape:export-xdpi="72"
+ inkscape:export-ydpi="72">
+ <g
+ id="g4681">
+ <path
+ style="fill:url(#linearGradient4955);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4280"
+ d="M 527.4159,739.06472 C 527.4159,739.06472 525.31936,722.51554 535.57741,722.36577 C 545.83547,722.21601 546.88374,728.95549 546.88374,728.95549 C 546.88374,728.95549 548.54223,741.02976 546.92983,742.66582 C 544.17672,743.03352 527.11639,742.88376 527.11639,742.88376 L 527.4159,739.06472 z "
+ sodipodi:nodetypes="cscccc" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,492.14434,706.25801)"
+ style="color:#000000;fill:url(#linearGradient4957);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4282"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ style="color:#000000;fill:url(#linearGradient4959);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4284"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.129004,0,0,0.129003,490.47026,702.54836)" />
+ <path
+ transform="matrix(0.116286,0,0,0.120207,500.20704,706.49989)"
+ style="color:#000000;fill:url(#linearGradient4961);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path4286"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ transform="matrix(0.129004,0,0,0.129003,498.39127,702.60947)"
+ style="color:#000000;fill:url(#linearGradient4963);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path4288"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ <path
+ style="fill:url(#linearGradient4965);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.02995189pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path4290"
+ d="M 529.73706,735.76986 C 529.73706,735.76986 533.78038,732.99918 536.55081,733.44848 C 539.32123,733.89778 543.13992,734.64661 543.58917,735.39544 C 544.03843,736.14427 546.28472,739.28937 542.2414,740.56238 C 538.19808,741.83539 531.75872,742.65911 529.96169,739.36425 C 528.16466,736.06939 530.5607,735.09591 530.5607,735.09591" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.442;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4292"
+ d="M 530.34144,738.41376 C 530.34144,738.41376 535.80272,737.79481 543.23592,738.42992"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4294"
+ d="M 533.85526,734.64661 C 534.10727,734.67102 534.51044,734.46876 534.75377,734.34708" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.449;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path4296"
+ d="M 537.14981,734.42196 C 537.19719,734.37315 537.61644,734.61785 537.8237,734.72149" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.00000191px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="906.74738"
+ y="-43.636864"
+ id="text4298"
+ transform="matrix(0.5651052,0.8250189,-0.8250189,0.5651052,0,0)"
+ inkscape:transform-center-y="-578.70512"
+ inkscape:transform-center-x="1397.5929"><tspan
+ sodipodi:role="line"
+ id="tspan4300"
+ x="906.74738"
+ y="-43.636864"
+ style="fill:#ff0000">?</tspan></text>
+ </g>
+ <rect
+ y="706.46686"
+ x="512.11096"
+ height="50"
+ width="50"
+ id="rect4302"
+ style="fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </g>
+ <g
+ id="g4811">
+ <path
+ style="font-size:14px;font-style:normal;font-weight:normal;opacity:0.09090899;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ d=""
+ id="text4863" />
+ </g>
+ <g
+ id="g4869">
+ <path
+ style="font-size:14px;font-style:normal;font-weight:normal;opacity:0.09090899;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ d=""
+ id="text4921" />
+ </g>
+ <g
+ id="g5013"
+ inkscape:export-filename="/home/tim/src/tux4kids/tuxmath/trunk/data/images/sprites/helpd.png"
+ inkscape:export-xdpi="72"
+ inkscape:export-ydpi="72">
+ <rect
+ y="706.46686"
+ x="592.56183"
+ height="50"
+ width="50"
+ id="rect4982"
+ style="fill:none;fill-opacity:1;stroke:none;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <g
+ transform="translate(4.640686,10.427826)"
+ id="g5007">
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="606.94226"
+ y="729.4267"
+ id="text5003"><tspan
+ sodipodi:role="line"
+ id="tspan5005"
+ x="606.94226"
+ y="729.4267"
+ style="font-size:24px">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="606.11487"
+ y="730.46387"
+ id="text4999"><tspan
+ sodipodi:role="line"
+ id="tspan5001"
+ x="606.11487"
+ y="730.46387"
+ style="font-size:24px;fill:#ffffff">?</tspan></text>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/images/igloos/extra_life.png b/data/images/igloos/extra_life.png
new file mode 100644
index 0000000..2806259
Binary files /dev/null and b/data/images/igloos/extra_life.png differ
diff --git a/data/images/igloos/half.png b/data/images/igloos/half.png
new file mode 100644
index 0000000..7364803
Binary files /dev/null and b/data/images/igloos/half.png differ
diff --git a/data/images/igloos/intact.png b/data/images/igloos/intact.png
new file mode 100644
index 0000000..46cf7ae
Binary files /dev/null and b/data/images/igloos/intact.png differ
diff --git a/data/images/igloos/melted1.png b/data/images/igloos/melted1.png
new file mode 100644
index 0000000..a4db0fc
Binary files /dev/null and b/data/images/igloos/melted1.png differ
diff --git a/data/images/igloos/melted2.png b/data/images/igloos/melted2.png
new file mode 100644
index 0000000..8350bfe
Binary files /dev/null and b/data/images/igloos/melted2.png differ
diff --git a/data/images/igloos/melted3.png b/data/images/igloos/melted3.png
new file mode 100644
index 0000000..f4a2b03
Binary files /dev/null and b/data/images/igloos/melted3.png differ
diff --git a/data/images/igloos/rebuilding1.png b/data/images/igloos/rebuilding1.png
new file mode 100644
index 0000000..e41a635
Binary files /dev/null and b/data/images/igloos/rebuilding1.png differ
diff --git a/data/images/igloos/rebuilding2.png b/data/images/igloos/rebuilding2.png
new file mode 100644
index 0000000..763a308
Binary files /dev/null and b/data/images/igloos/rebuilding2.png differ
diff --git a/data/images/igloos/snow1.png b/data/images/igloos/snow1.png
new file mode 100644
index 0000000..2bac9d8
Binary files /dev/null and b/data/images/igloos/snow1.png differ
diff --git a/data/images/igloos/snow2.png b/data/images/igloos/snow2.png
new file mode 100644
index 0000000..5a6db78
Binary files /dev/null and b/data/images/igloos/snow2.png differ
diff --git a/data/images/igloos/snow3.png b/data/images/igloos/snow3.png
new file mode 100644
index 0000000..8af719e
Binary files /dev/null and b/data/images/igloos/snow3.png differ
diff --git a/data/images/igloos/steam1.png b/data/images/igloos/steam1.png
new file mode 100644
index 0000000..b77a5a5
Binary files /dev/null and b/data/images/igloos/steam1.png differ
diff --git a/data/images/igloos/steam2.png b/data/images/igloos/steam2.png
new file mode 100644
index 0000000..b77986e
Binary files /dev/null and b/data/images/igloos/steam2.png differ
diff --git a/data/images/igloos/steam3.png b/data/images/igloos/steam3.png
new file mode 100644
index 0000000..cf6aa1c
Binary files /dev/null and b/data/images/igloos/steam3.png differ
diff --git a/data/images/igloos/steam4.png b/data/images/igloos/steam4.png
new file mode 100644
index 0000000..466c099
Binary files /dev/null and b/data/images/igloos/steam4.png differ
diff --git a/data/images/igloos/steam5.png b/data/images/igloos/steam5.png
new file mode 100644
index 0000000..912e84c
Binary files /dev/null and b/data/images/igloos/steam5.png differ
diff --git a/data/images/penguins/Makefile.am b/data/images/penguins/Makefile.am
new file mode 100644
index 0000000..ac6bb81
--- /dev/null
+++ b/data/images/penguins/Makefile.am
@@ -0,0 +1,18 @@
+## Makefile.am for tuxmath data/images/penguins:
+## Process with AutoMake:
+
+penguinsdir = $(pkgdatadir)/images/penguins
+
+dist_penguins_DATA = flapdown.png \
+ flapup.png \
+ grumpy.png \
+ incoming.png \
+ sitting-down.png \
+ standing-up.png \
+ walk-off1.png \
+ walk-off2.png \
+ walk-off3.png \
+ walk-on1.png \
+ walk-on2.png \
+ walk-on3.png \
+ worried.png
diff --git a/data/images/penguins/flapdown.png b/data/images/penguins/flapdown.png
new file mode 100644
index 0000000..db7996b
Binary files /dev/null and b/data/images/penguins/flapdown.png differ
diff --git a/data/images/penguins/flapup.png b/data/images/penguins/flapup.png
new file mode 100644
index 0000000..ae28fd7
Binary files /dev/null and b/data/images/penguins/flapup.png differ
diff --git a/data/images/penguins/grumpy.png b/data/images/penguins/grumpy.png
new file mode 100644
index 0000000..cc6f119
Binary files /dev/null and b/data/images/penguins/grumpy.png differ
diff --git a/data/images/penguins/incoming.png b/data/images/penguins/incoming.png
new file mode 100644
index 0000000..5bae6c1
Binary files /dev/null and b/data/images/penguins/incoming.png differ
diff --git a/data/images/penguins/sitting-down.png b/data/images/penguins/sitting-down.png
new file mode 100644
index 0000000..7823cac
Binary files /dev/null and b/data/images/penguins/sitting-down.png differ
diff --git a/data/images/penguins/standing-up.png b/data/images/penguins/standing-up.png
new file mode 100644
index 0000000..0b7dd0d
Binary files /dev/null and b/data/images/penguins/standing-up.png differ
diff --git a/data/images/penguins/walk-off1.png b/data/images/penguins/walk-off1.png
new file mode 100644
index 0000000..c72a3e3
Binary files /dev/null and b/data/images/penguins/walk-off1.png differ
diff --git a/data/images/penguins/walk-off2.png b/data/images/penguins/walk-off2.png
new file mode 100644
index 0000000..ee08f47
Binary files /dev/null and b/data/images/penguins/walk-off2.png differ
diff --git a/data/images/penguins/walk-off3.png b/data/images/penguins/walk-off3.png
new file mode 100644
index 0000000..4b54fa1
Binary files /dev/null and b/data/images/penguins/walk-off3.png differ
diff --git a/data/images/penguins/walk-on1.png b/data/images/penguins/walk-on1.png
new file mode 100644
index 0000000..6e93cd5
Binary files /dev/null and b/data/images/penguins/walk-on1.png differ
diff --git a/data/images/penguins/walk-on2.png b/data/images/penguins/walk-on2.png
new file mode 100644
index 0000000..5d67a34
Binary files /dev/null and b/data/images/penguins/walk-on2.png differ
diff --git a/data/images/penguins/walk-on3.png b/data/images/penguins/walk-on3.png
new file mode 100644
index 0000000..af9e93b
Binary files /dev/null and b/data/images/penguins/walk-on3.png differ
diff --git a/data/images/penguins/worried.png b/data/images/penguins/worried.png
new file mode 100644
index 0000000..800a2da
Binary files /dev/null and b/data/images/penguins/worried.png differ
diff --git a/data/images/sprites/Makefile.am b/data/images/sprites/Makefile.am
new file mode 100644
index 0000000..849f6f4
--- /dev/null
+++ b/data/images/sprites/Makefile.am
@@ -0,0 +1,156 @@
+## Makefile.am for tuxmath data/images/sprites:
+## Process with AutoMake:
+
+spritesdir = $(pkgdatadir)/images/sprites
+
+dist_sprites_DATA = \
+ alone0.png \
+ alone1.png \
+ aloned.png \
+ alone.svg \
+ comet0.png \
+ comet1.png \
+ comet2.png \
+ comet3.png \
+ comet4.png \
+ comet5.png \
+ cometd.png \
+ credits0.png \
+ credits1.png \
+ credits2.png \
+ credits3.png \
+ creditsd.png \
+ exclamation0.png \
+ exclamationd.png \
+ exclamation.svg \
+ factoroids0.png \
+ factoroids1.png \
+ factoroids2.png \
+ factoroidsd.png \
+ factoroids.svg \
+ factors0.png \
+ factors1.png \
+ factors2.png \
+ factors3.png \
+ factors4.png \
+ factors5.png \
+ factorsd.png \
+ fleet0.png \
+ fleetd.png \
+ fleet.svg \
+ fractions0.png \
+ fractions1.png \
+ fractions2.png \
+ fractions3.png \
+ fractions4.png \
+ fractions5.png \
+ fractions6.png \
+ fractionsd.png \
+ friends0.png \
+ friendsd.png \
+ friends.svg \
+ goldstar0.png \
+ goldstar1.png \
+ goldstard.png \
+ goldstar.svg \
+ help.svg \
+ help0.png \
+ help1.png \
+ help2.png \
+ help3.png \
+ helpd.png \
+ lan0.png \
+ lan1.png \
+ land.png \
+ lan.svg \
+ lesson0.png \
+ lesson1.png \
+ lesson2.png \
+ lesson3.png \
+ lessond.png \
+ lesson.svg \
+ main0.png \
+ main1.png \
+ main2.png \
+ main3.png \
+ main4.png \
+ main5.png \
+ main6.png \
+ main7.png \
+ maind.png \
+ main.svg \
+ no_goldstar0.png \
+ no_goldstard.png \
+ no_goldstar.svg \
+ nums0.png \
+ nums1.png \
+ nums2.png \
+ nums3.png \
+ nums4.png \
+ nums5.png \
+ nums6.png \
+ nums7.png \
+ numsd.png \
+ nums.svg \
+ quit0.png \
+ quit1.png \
+ quit2.png \
+ quit3.png \
+ quit4.png \
+ quit5.png \
+ quit6.png \
+ quit7.png \
+ quit8.png \
+ quitd.png \
+ quit.svg \
+ trophy0.png \
+ trophy1.png \
+ trophyd.png \
+ tux_config.svg \
+ tux_config0.png \
+ tux_config1.png \
+ tux_configd.png \
+ tux_config_brown.svg \
+ tux_config_brown0.png \
+ tux_config_brown1.png \
+ tux_config_brownd.png \
+ tux_helmet0.png \
+ tux_helmet1.png \
+ tux_helmet2.png \
+ tux_helmetd.png \
+ tux_helmet_black.svg \
+ tux_helmet_black0.png \
+ tux_helmet_blackd.png \
+ tux_helmet_blue.svg \
+ tux_helmet_blue0.png \
+ tux_helmet_blue1.png \
+ tux_helmet_blue2.png \
+ tux_helmet_blue3.png \
+ tux_helmet_blue4.png \
+ tux_helmet_blue5.png \
+ tux_helmet_blued.png \
+ tux_helmet_green.svg \
+ tux_helmet_green0.png \
+ tux_helmet_green1.png \
+ tux_helmet_green2.png \
+ tux_helmet_green3.png \
+ tux_helmet_green4.png \
+ tux_helmet_green5.png \
+ tux_helmet_greend.png \
+ tux_helmet_red.svg \
+ tux_helmet_red0.png \
+ tux_helmet_red1.png \
+ tux_helmet_red2.png \
+ tux_helmet_red3.png \
+ tux_helmet_red4.png \
+ tux_helmet_red5.png \
+ tux_helmet_redd.png \
+ tux_helmet_yellow.svg \
+ tux_helmet_yellow0.png \
+ tux_helmet_yellow1.png \
+ tux_helmet_yellow2.png \
+ tux_helmet_yellow3.png \
+ tux_helmet_yellow4.png \
+ tux_helmet_yellow5.png \
+ tux_helmet_yellowd.png
+
diff --git a/data/images/sprites/alone.svg b/data/images/sprites/alone.svg
new file mode 100644
index 0000000..f100fe3
--- /dev/null
+++ b/data/images/sprites/alone.svg
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="alone.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.5431926"
+ inkscape:cx="-30.871764"
+ inkscape:cy="40.863374"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3246">
+ <svg:path
+ sodipodi:nodetypes="cscsscsccssccscccc"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 38.777198,977.50767 C 38.777198,977.50767 34.590944,958.53723 54.796733,958.15598 C 75.002523,957.77474 69.031268,984.55324 69.031268,984.55324 C 69.031268,984.55324 65.716568,997.38054 66.5384,997.60706 C 75.611827,1000.108 93.873966,1011.4233 94.827069,1020.1918 C 95.780183,1028.9604 95.200913,1033.1689 95.200913,1033.1689 C 95.200913,1033.1689 88.71981,1036.6 83.763672,1036.9813 C 78.807535,1037.3625 78.998157,1036.9813 78.998157,1036.9813 L 78.235673,1045.3686 C 78.235673,1045.3686 70.038986,1046.3217 69.276502,1045.178 C 68.51402,1044.0342 57.267402,1038.5062 61.651676,1034.122 C 66.035951,1029.7377 74.613881,1024.2097 74.613881,1024.2097 L 63.176642,1023.8285 C 63.176642,1023.8285 59.554849,1044.6061 52.883126,1044.9873 C 46.211404,1045.3686 28.864925,1046.1311 28.864925,1046.1311 L 9.2309969,1019.2536 L 38.205337,999.23843 L 38.777198,977.50767 z"
+ id="path2550" />
+ <svg:path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.097;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 11.518444,1021.1598 C 12.280928,1021.1598 39.158439,1001.1446 46.592645,1006.1007 C 54.02685,1011.0569 53.645609,1022.8753 50.023817,1028.2127 C 46.402024,1033.5501 29.818027,1047.4654 29.818027,1047.4654 L 9.993479,1024.0191 L 11.518444,1021.1598 z"
+ id="path3322" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3330"
+ sodipodi:cx="16.431536"
+ sodipodi:cy="8.7136927"
+ sodipodi:rx="1.5767635"
+ sodipodi:ry="2.9875519"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ transform="matrix(2.2969789,0,0,2.2969789,5.9904466,954.82381)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3334"
+ sodipodi:cx="16.431536"
+ sodipodi:cy="8.7136927"
+ sodipodi:rx="1.5767635"
+ sodipodi:ry="2.9875519"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ transform="matrix(2.2969789,0,0,2.2969789,17.427684,955.5863)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3336"
+ sodipodi:cx="17.551867"
+ sodipodi:cy="15.767634"
+ sodipodi:rx="5.3526969"
+ sodipodi:ry="3.9834025"
+ d="M 22.904563,15.767634 A 5.3526969,3.9834025 0 1 1 12.19917,15.767634 A 5.3526969,3.9834025 0 1 1 22.904563,15.767634 z"
+ transform="matrix(2.3026233,0,0,2.0565821,7.0351003,952.84618)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3342"
+ sodipodi:cx="57.427387"
+ sodipodi:cy="7.0124483"
+ sodipodi:rx="0.58091289"
+ sodipodi:ry="0.78838176"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ transform="matrix(2.2969789,0,0,2.2969789,-85.69809,955.77692)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3344"
+ sodipodi:cx="57.427387"
+ sodipodi:cy="7.0124483"
+ sodipodi:rx="0.58091289"
+ sodipodi:ry="0.78838176"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ transform="matrix(2.2969789,0,0,2.2969789,-74.451472,956.06285)" />
+ <svg:path
+ style="fill:#00f3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.37818742;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7.5154132,986.84809 C 9.6122402,986.84809 28.864925,987.22933 28.864925,987.22933 L 29.627407,1000.5728 L 23.718169,1003.6227 L 23.527548,1009.3413 C 23.527548,1009.3413 27.149339,1013.1537 27.339961,1014.1068 C 27.53058,1015.0599 27.149339,1019.0629 27.149339,1019.0629 L 13.234032,1017.538 L 16.474584,1012.9631 L 18.762031,1001.5259 C 18.762031,1001.5259 7.8966543,998.66657 8.2778953,997.52284 C 8.6591364,996.37912 7.1341696,986.46685 7.5154132,986.84809 z"
+ id="path3346" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 18.571409,1003.6227 C 17.046445,1002.0977 8.8497558,998.09471 8.8497558,998.09471 C 8.8497558,998.09471 8.0872737,996.56974 5.2279643,1000.7634 C 2.3686529,1004.957 -0.10941515,1005.5289 3.1311373,1010.2944 C 6.3716875,1015.0599 7.7060326,1014.6787 11.518446,1015.0599 C 15.330859,1015.4411 19.524513,1010.6756 19.524513,1007.4351 C 19.524513,1004.1945 18.190168,1003.6227 18.571409,1003.6227 z"
+ id="path3348" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 26.309097,1000.7651 C 32.879217,1001.7921 37.28395,1000.2905 37.28395,1000.2905 L 36.511933,1005.8662 C 36.511933,1005.8662 27.736706,1011.7285 26.434643,1011.2484 C 25.13258,1010.7684 19.237689,1008.8183 20.546827,1006.7056 C 21.85597,1004.5929 26.380317,1000.3448 26.309097,1000.7651 z"
+ id="path3350" />
+ <svg:path
+ transform="matrix(0.9575087,0,0,0.8176866,-0.1803613,960.7728)"
+ d="M 47.979329,34.522327 A 1.8345038,1.9756194 0 1 1 44.310321,34.522327 A 1.8345038,1.9756194 0 1 1 47.979329,34.522327 z"
+ sodipodi:ry="1.9756194"
+ sodipodi:rx="1.8345038"
+ sodipodi:cy="34.522327"
+ sodipodi:cx="46.144825"
+ id="path2474"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.097;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ style="fill:#00eaff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41846287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14.456299,987.09875 C 14.863677,984.28642 20.363272,976.14546 20.363272,976.14546 L 44.805916,988.57892 C 44.805916,988.57892 44.602229,989.91108 43.583785,989.91108 C 42.565342,989.91108 20.97434,978.06969 20.97434,978.06969 L 15.882121,987.69082 L 14.456299,987.09875 z"
+ id="path3352" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3260">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3262"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3264"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3266"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3268">
+ <svg:path
+ sodipodi:nodetypes="cscsscsccssccscccc"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 38.777198,977.50767 C 38.777198,977.50767 34.590944,958.53723 54.796733,958.15598 C 75.002523,957.77474 69.031268,984.55324 69.031268,984.55324 C 69.031268,984.55324 65.716568,997.38054 66.5384,997.60706 C 75.611827,1000.108 93.873966,1011.4233 94.827069,1020.1918 C 95.780183,1028.9604 95.200913,1033.1689 95.200913,1033.1689 C 95.200913,1033.1689 88.71981,1036.6 83.763672,1036.9813 C 78.807535,1037.3625 78.998157,1036.9813 78.998157,1036.9813 L 78.235673,1045.3686 C 78.235673,1045.3686 70.038986,1046.3217 69.276502,1045.178 C 68.51402,1044.0342 57.267402,1038.5062 61.651676,1034.122 C 66.035951,1029.7377 74.613881,1024.2097 74.613881,1024.2097 L 63.176642,1023.8285 C 63.176642,1023.8285 59.554849,1044.6061 52.883126,1044.9873 C 46.211404,1045.3686 28.864925,1046.1311 28.864925,1046.1311 L 9.2309969,1019.2536 L 38.205337,999.23843 L 38.777198,977.50767 z"
+ id="path3270" />
+ <svg:path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.097;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 11.518444,1021.1598 C 12.280928,1021.1598 39.158439,1001.1446 46.592645,1006.1007 C 54.02685,1011.0569 53.645609,1022.8753 50.023817,1028.2127 C 46.402024,1033.5501 29.818027,1047.4654 29.818027,1047.4654 L 9.993479,1024.0191 L 11.518444,1021.1598 z"
+ id="path3272" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3274"
+ sodipodi:cx="16.431536"
+ sodipodi:cy="8.7136927"
+ sodipodi:rx="1.5767635"
+ sodipodi:ry="2.9875519"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ transform="matrix(2.2969789,0,0,2.2969789,5.9904466,954.82381)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3276"
+ sodipodi:cx="16.431536"
+ sodipodi:cy="8.7136927"
+ sodipodi:rx="1.5767635"
+ sodipodi:ry="2.9875519"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ transform="matrix(2.2969789,0,0,2.2969789,17.427684,955.5863)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3278"
+ sodipodi:cx="17.551867"
+ sodipodi:cy="15.767634"
+ sodipodi:rx="5.3526969"
+ sodipodi:ry="3.9834025"
+ d="M 22.904563,15.767634 A 5.3526969,3.9834025 0 1 1 12.19917,15.767634 A 5.3526969,3.9834025 0 1 1 22.904563,15.767634 z"
+ transform="matrix(2.3026233,0,0,2.0565821,7.0351003,952.84618)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3280"
+ sodipodi:cx="57.427387"
+ sodipodi:cy="7.0124483"
+ sodipodi:rx="0.58091289"
+ sodipodi:ry="0.78838176"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ transform="matrix(2.2969789,0,0,2.2969789,-85.69809,955.77692)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3282"
+ sodipodi:cx="57.427387"
+ sodipodi:cy="7.0124483"
+ sodipodi:rx="0.58091289"
+ sodipodi:ry="0.78838176"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ transform="matrix(2.2969789,0,0,2.2969789,-74.451472,956.06285)" />
+ <svg:path
+ style="fill:#00f3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.37818742;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 7.5154132,986.84809 C 9.6122402,986.84809 28.864925,987.22933 28.864925,987.22933 L 29.627407,1000.5728 L 23.718169,1003.6227 L 23.527548,1009.3413 C 23.527548,1009.3413 27.149339,1013.1537 27.339961,1014.1068 C 27.53058,1015.0599 27.149339,1019.0629 27.149339,1019.0629 L 13.234032,1017.538 L 16.474584,1012.9631 L 18.762031,1001.5259 C 18.762031,1001.5259 7.8966543,998.66657 8.2778953,997.52284 C 8.6591364,996.37912 7.1341696,986.46685 7.5154132,986.84809 z"
+ id="path3284" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 18.571409,1003.6227 C 17.046445,1002.0977 8.8497558,998.09471 8.8497558,998.09471 C 8.8497558,998.09471 8.0872737,996.56974 5.2279643,1000.7634 C 2.3686529,1004.957 -0.10941515,1005.5289 3.1311373,1010.2944 C 6.3716875,1015.0599 7.7060326,1014.6787 11.518446,1015.0599 C 15.330859,1015.4411 19.524513,1010.6756 19.524513,1007.4351 C 19.524513,1004.1945 18.190168,1003.6227 18.571409,1003.6227 z"
+ id="path3286" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 26.309097,1000.7651 C 32.879217,1001.7921 37.28395,1000.2905 37.28395,1000.2905 L 36.511933,1005.8662 C 36.511933,1005.8662 27.736706,1011.7285 26.434643,1011.2484 C 25.13258,1010.7684 19.237689,1008.8183 20.546827,1006.7056 C 21.85597,1004.5929 26.380317,1000.3448 26.309097,1000.7651 z"
+ id="path3288" />
+ <svg:path
+ transform="matrix(0.9575087,0,0,0.8176866,-0.1803613,960.7728)"
+ d="M 47.979329,34.522327 A 1.8345038,1.9756194 0 1 1 44.310321,34.522327 A 1.8345038,1.9756194 0 1 1 47.979329,34.522327 z"
+ sodipodi:ry="1.9756194"
+ sodipodi:rx="1.8345038"
+ sodipodi:cy="34.522327"
+ sodipodi:cx="46.144825"
+ id="path3290"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.097;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ style="fill:#00eaff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41846287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14.456299,987.09875 C 14.863677,984.28642 20.363272,976.14546 20.363272,976.14546 L 44.805916,988.57892 C 44.805916,988.57892 44.602229,989.91108 43.583785,989.91108 C 42.565342,989.91108 20.97434,978.06969 20.97434,978.06969 L 15.882121,987.69082 L 14.456299,987.09875 z"
+ id="path3292" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3294">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3296"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3298"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3300"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ id="path3304"
+ d="M 38.777198,25.14549 C 38.777198,25.14549 34.590944,6.17505 54.796733,5.7938 C 75.002523,5.41256 69.031268,32.19106 69.031268,32.19106 C 69.031268,32.19106 65.716568,45.01836 66.5384,45.24488 C 75.611827,47.74582 93.873966,59.06112 94.827069,67.82962 C 95.780183,76.59822 95.200913,80.80672 95.200913,80.80672 C 95.200913,80.80672 88.71981,84.23782 83.763672,84.61912 C 78.807535,85.00032 78.998157,84.61912 78.998157,84.61912 L 78.235673,93.00642 C 78.235673,93.00642 70.038986,93.95952 69.276502,92.81582 C 68.51402,91.67202 57.267402,86.14402 61.651676,81.75982 C 66.035951,77.37552 74.613881,71.84752 74.613881,71.84752 L 63.176642,71.46632 C 63.176642,71.46632 59.554849,92.24392 52.883126,92.62512 C 46.211404,93.00642 28.864925,93.76892 28.864925,93.76892 L 9.2309969,66.89142 L 38.205337,46.87625 L 38.777198,25.14549 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ sodipodi:nodetypes="cscsscsccssccscccc" />
+ <svg:path
+ id="path3306"
+ d="M 11.518444,68.79762 C 12.280928,68.79762 39.158439,48.78242 46.592645,53.73852 C 54.02685,58.69472 53.645609,70.51312 50.023817,75.85052 C 46.402024,81.18792 29.818027,95.10322 29.818027,95.10322 L 9.993479,71.65692 L 11.518444,68.79762 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.097;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(2.2969789,0,0,2.2969789,5.9904466,2.46163)"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ sodipodi:ry="2.9875519"
+ sodipodi:rx="1.5767635"
+ sodipodi:cy="8.7136927"
+ sodipodi:cx="16.431536"
+ id="path3308"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(2.2969789,0,0,2.2969789,17.427684,3.22412)"
+ d="M 18.008299,8.7136927 A 1.5767635,2.9875519 0 1 1 14.854772,8.7136927 A 1.5767635,2.9875519 0 1 1 18.008299,8.7136927 z"
+ sodipodi:ry="2.9875519"
+ sodipodi:rx="1.5767635"
+ sodipodi:cy="8.7136927"
+ sodipodi:cx="16.431536"
+ id="path3310"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(2.3026233,0,0,2.0565821,7.0351003,0.484)"
+ d="M 22.904563,15.767634 A 5.3526969,3.9834025 0 1 1 12.19917,15.767634 A 5.3526969,3.9834025 0 1 1 22.904563,15.767634 z"
+ sodipodi:ry="3.9834025"
+ sodipodi:rx="5.3526969"
+ sodipodi:cy="15.767634"
+ sodipodi:cx="17.551867"
+ id="path3312"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(2.2969789,0,0,2.2969789,-85.69809,3.41474)"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ sodipodi:ry="0.78838176"
+ sodipodi:rx="0.58091289"
+ sodipodi:cy="7.0124483"
+ sodipodi:cx="57.427387"
+ id="path3314"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(2.2969789,0,0,2.2969789,-74.451472,3.70067)"
+ d="M 58.0083,7.0124483 A 0.58091289,0.78838176 0 1 1 56.846474,7.0124483 A 0.58091289,0.78838176 0 1 1 58.0083,7.0124483 z"
+ sodipodi:ry="0.78838176"
+ sodipodi:rx="0.58091289"
+ sodipodi:cy="7.0124483"
+ sodipodi:cx="57.427387"
+ id="path3316"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path3318"
+ d="M 7.5154132,34.48591 C 9.6122402,34.48591 28.864925,34.86715 28.864925,34.86715 L 29.627407,48.21062 L 23.718169,51.26052 L 23.527548,56.97912 C 23.527548,56.97912 27.149339,60.79152 27.339961,61.74462 C 27.53058,62.69772 27.149339,66.70072 27.149339,66.70072 L 13.234032,65.17582 L 16.474584,60.60092 L 18.762031,49.16372 C 18.762031,49.16372 7.8966543,46.30439 8.2778953,45.16066 C 8.6591364,44.01694 7.1341696,34.10467 7.5154132,34.48591 z"
+ style="fill:#00f3ff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.37818742;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ id="path3320"
+ d="M 18.571409,51.26052 C 17.046445,49.73552 8.8497558,45.73253 8.8497558,45.73253 C 8.8497558,45.73253 8.0872737,44.20756 5.2279643,48.40122 C 2.3686529,52.59482 -0.10941515,53.16672 3.1311373,57.93222 C 6.3716875,62.69772 7.7060326,62.31652 11.518446,62.69772 C 15.330859,63.07892 19.524513,58.31342 19.524513,55.07292 C 19.524513,51.83232 18.190168,51.26052 18.571409,51.26052 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path3323"
+ d="M 26.309097,48.40292 C 32.879217,49.42992 37.28395,47.92832 37.28395,47.92832 L 36.511933,53.50402 C 36.511933,53.50402 27.736706,59.36632 26.434643,58.88622 C 25.13258,58.40622 19.237689,56.45612 20.546827,54.34342 C 21.85597,52.23072 26.380317,47.98262 26.309097,48.40292 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.29697895px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.097;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3325"
+ sodipodi:cx="46.144825"
+ sodipodi:cy="34.522327"
+ sodipodi:rx="1.8345038"
+ sodipodi:ry="1.9756194"
+ d="M 47.979329,34.522327 A 1.8345038,1.9756194 0 1 1 44.310321,34.522327 A 1.8345038,1.9756194 0 1 1 47.979329,34.522327 z"
+ transform="matrix(0.9575087,0,0,0.8176866,-0.1803613,8.41062)" />
+ <svg:path
+ id="path3327"
+ d="M 44.612641,36.100933 C 40.693638,33.263197 24.524391,24.655441 24.524391,24.655441 L 12.542801,34.812437 C 12.542801,34.812437 14.411145,36.157607 15.548496,36.25031 C 16.685845,36.343012 26.212133,26.516061 26.212133,26.516061 L 43.749627,36.560762 L 44.612641,36.100933 z"
+ style="fill:#00eaff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.41846287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/alone0.png b/data/images/sprites/alone0.png
new file mode 100644
index 0000000..9bcb1c6
Binary files /dev/null and b/data/images/sprites/alone0.png differ
diff --git a/data/images/sprites/alone1.png b/data/images/sprites/alone1.png
new file mode 100644
index 0000000..4cc2287
Binary files /dev/null and b/data/images/sprites/alone1.png differ
diff --git a/data/images/sprites/aloned.png b/data/images/sprites/aloned.png
new file mode 100644
index 0000000..e6127c5
Binary files /dev/null and b/data/images/sprites/aloned.png differ
diff --git a/data/images/sprites/comet.svg b/data/images/sprites/comet.svg
new file mode 100644
index 0000000..94e144e
--- /dev/null
+++ b/data/images/sprites/comet.svg
@@ -0,0 +1,3134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="comet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3424">
+ <svg:stop
+ id="stop3426"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <svg:stop
+ id="stop3428"
+ offset="1"
+ style="stop-color:#00ffff;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3416">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3418" />
+ <svg:stop
+ style="stop-color:#00ffff;stop-opacity:1;"
+ offset="1"
+ id="stop3420" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3350">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3352" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop3354" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2562"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2681"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2683"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2685"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient2687">
+ <svg:stop
+ id="stop2689"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop2691"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2693">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop2695" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop2697" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2699" />
+ <inkscape:perspective
+ id="perspective2701"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2703"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2705"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2707"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2709"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2711"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2713"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2715"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2717"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2721"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2723"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2725"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2727"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2729"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2528"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient2530">
+ <svg:stop
+ id="stop2532"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop2534"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient2536">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop2538" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop2540" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2542" />
+ <inkscape:perspective
+ id="perspective2544"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2546"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2548"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2550"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2552"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2554"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2556"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2558"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2560"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2562"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2564"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3897"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3893"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient3813"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2975" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2846" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2827" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2798" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2777" />
+ <inkscape:perspective
+ id="perspective2768"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3807">
+ <svg:stop
+ id="stop3809"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop3811"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3853">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop3855" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop3857" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient2925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2927"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient2929"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3723"
+ x="-0.1020027"
+ width="1.2040054"
+ y="-0.042499532"
+ height="1.0849991">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.3197661"
+ id="feGaussianBlur3725" />
+ </svg:filter>
+ <inkscape:perspective
+ id="perspective3742"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3456"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3454"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3452"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3450"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3423"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3421"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3419"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(1.1026945e-3,-0.1023774,0.1080478,1.1637612e-3,273.85685,251.56604)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3385"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(6.3701377e-3,-9.7289181e-2,9.2598369e-2,6.0629944e-3,275.32689,250.37816)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3383"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ gradientTransform="matrix(1.7964695e-2,-0.4253676,0.3095395,1.3072836e-2,240.03056,296.68905)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3381"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ gradientTransform="matrix(1.7964695e-2,-0.4253676,0.3095395,1.3072836e-2,240.03056,296.68905)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2594"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(6.3701377e-3,-9.7289181e-2,9.2598369e-2,6.0629944e-3,275.32689,250.37816)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2591"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(1.1026945e-3,-0.1023774,0.1080478,1.1637612e-3,273.85685,251.56604)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2588"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2578" />
+ <svg:radialGradient
+ r="29.5"
+ fy="185.16139"
+ fx="186.69681"
+ cy="185.16139"
+ cx="186.69681"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2774"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="145.88962"
+ fx="95.90609"
+ cy="145.88962"
+ cx="95.90609"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2772"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="148.78595"
+ fx="151.06033"
+ cy="148.78595"
+ cx="151.06033"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2770"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.5"
+ fy="152.55739"
+ fx="148.23933"
+ cy="152.55739"
+ cx="148.23933"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2768"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2755"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2753"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2751"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4157"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient4149">
+ <svg:stop
+ id="stop4151"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop4153"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4143">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop4145" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop4147" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4141" />
+ <inkscape:perspective
+ id="perspective4139"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4137"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4135"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4133"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4131"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4129"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4127"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4125"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4105"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient4099">
+ <svg:stop
+ id="stop4101"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop4103"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4093">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop4095" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop4097" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4091" />
+ <inkscape:perspective
+ id="perspective4089"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4087"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4085"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4083"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4081"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4079"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4077"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4075"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4071"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4069"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4059"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4057"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3883"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3879"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient3835"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient4052"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4050" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4048" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4046" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4044" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4042" />
+ <inkscape:perspective
+ id="perspective4040"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient4034">
+ <svg:stop
+ id="stop4036"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop4038"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4028">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop4030" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop4032" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4291"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4293"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4295"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4451"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4453"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4455"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3479" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3414" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2547" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4813" />
+ <inkscape:perspective
+ id="perspective2702"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4808"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4806"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient4800">
+ <svg:stop
+ id="stop4802"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop4804"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4794">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop4796" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop4798" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4792" />
+ <inkscape:perspective
+ id="perspective4790"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4788"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4786"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4784"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4782"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4780"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4778"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4776"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.565601,370.31782)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.410613,384.37252)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-168.92431,562.79668)"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538" />
+ <svg:linearGradient
+ id="linearGradient4750">
+ <svg:stop
+ id="stop4752"
+ offset="0"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ <svg:stop
+ id="stop4754"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4744">
+ <svg:stop
+ style="stop-color:#043ce2;stop-opacity:1;"
+ offset="0"
+ id="stop4746" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="1"
+ id="stop4748" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4742" />
+ <inkscape:perspective
+ id="perspective4740"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4738"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4736"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4734"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective4732"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4730"
+ cx="144.92911"
+ cy="310.34058"
+ fx="144.92911"
+ fy="310.34058"
+ r="29.364538"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4728"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4726"
+ cx="148.23933"
+ cy="152.55739"
+ fx="148.23933"
+ fy="152.55739"
+ r="29.5"
+ gradientTransform="matrix(-6.9785255e-3,-1.4738773,0.9781417,-4.6313033e-3,-7.6730836,393.48501)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4724"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.1865995e-2,-0.3925554,0.4163901,-2.3193643e-2,78.834786,233.00173)"
+ cx="151.06033"
+ cy="148.78595"
+ fx="151.06033"
+ fy="148.78595"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4722"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.6153001e-2,-0.306687,0.3474167,-2.9626276e-2,89.30844,225.70488)"
+ cx="95.90609"
+ cy="145.88962"
+ fx="95.90609"
+ fy="145.88962"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4720"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.568147e-2,-0.257688,0.2410475,-2.4023067e-2,108.75833,215.23282)"
+ cx="186.69681"
+ cy="185.16139"
+ fx="186.69681"
+ fy="185.16139"
+ r="29.5" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ cx="138.58928"
+ cy="334.42172"
+ fx="138.58928"
+ fy="334.42172"
+ r="29.364538" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ cx="154.26961"
+ cy="292.34778"
+ fx="154.26961"
+ fy="292.34778"
+ r="29.364538" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="292.34778"
+ fx="154.26961"
+ cy="292.34778"
+ cx="154.26961"
+ gradientTransform="matrix(5.0372302e-2,-0.3497757,0.3566224,5.1358303e-2,23.46894,370.05846)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4710"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="29.364538"
+ fy="334.42172"
+ fx="138.58928"
+ cy="334.42172"
+ cx="138.58928"
+ gradientTransform="matrix(4.8037414e-2,-0.4413391,0.474073,5.1600295e-2,-10.507275,384.11316)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4708"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="131.55884"
+ fx="106.78394"
+ cy="131.55884"
+ cx="106.78394"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4706"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="27.290644"
+ fy="163.15218"
+ fx="148.70107"
+ cy="163.15218"
+ cx="148.70107"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4704"
+ xlink:href="#linearGradient3853"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ r="27.290644"
+ fy="155.27568"
+ fx="144.35086"
+ cy="155.27568"
+ cx="144.35086"
+ id="radialGradient4702"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.5139498e-7,-1.5619594,1.0072796,-4.6966364e-8,-169.02097,562.53732)"
+ r="29.364538"
+ fy="310.34058"
+ fx="144.92911"
+ cy="310.34058"
+ cx="144.92911"
+ id="radialGradient4700"
+ xlink:href="#linearGradient3807"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4698" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4696" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4694" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4692" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4690" />
+ <inkscape:perspective
+ id="perspective4688"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient4682">
+ <svg:stop
+ id="stop4684"
+ offset="0"
+ style="stop-color:#043ce2;stop-opacity:1;" />
+ <svg:stop
+ id="stop4686"
+ offset="1"
+ style="stop-color:#02effe;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4676">
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:1;"
+ offset="0"
+ id="stop4678" />
+ <svg:stop
+ style="stop-color:#02effe;stop-opacity:0;"
+ offset="1"
+ id="stop4680" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4882"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4886"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4908"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="radialGradient4930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(6.5369071e-2,-1.5478073,1.1263373,4.7568807e-2,-36.106896,386.9586)"
+ cx="144.35086"
+ cy="155.27568"
+ fx="144.35086"
+ fy="155.27568"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4932"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.3179351e-2,-0.3540112,0.3369425,2.2061733e-2,92.327685,218.44476)"
+ cx="148.70107"
+ cy="163.15218"
+ fx="148.70107"
+ fy="163.15218"
+ r="27.290644" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3853"
+ id="radialGradient4934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.0124317e-3,-0.3725261,0.3931593,4.2346382e-3,86.97858,222.76717)"
+ cx="106.78394"
+ cy="131.55884"
+ fx="106.78394"
+ fy="131.55884"
+ r="27.290644" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.4811316"
+ inkscape:cx="-16.433502"
+ inkscape:cy="67.684795"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3861"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="rect3855"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="rect3575"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g2931"
+ transform="matrix(0.6677087,0,0,0.6677087,-148.62703,807.97494)"
+ style="opacity:0.8;fill:#000000;display:inline;filter:url(#filter3723)">
+ <svg:g
+ id="g2933"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ style="fill:#000000">
+ <svg:path
+ style="fill:#000000;fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2935"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path2937"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:#000000;fill-opacity:1" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2939"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2941"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#000000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path2943"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path2945"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#000000" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g2852"
+ transform="matrix(0.6677087,0,0,0.6677087,-153.71001,806.59863)"
+ style="display:inline">
+ <svg:g
+ id="lay1"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient2925);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2928"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path3877"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient2927);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient2929);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path3881"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path2926"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path3910"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path3915"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ id="g3727"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3729"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path3731"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path3733"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:g
+ id="g3752">
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3748"
+ d="M 28.2,99.799994 L 40.694299,85.290488 L 64.473772,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscscccscsc"
+ id="path3750"
+ d="M 48.190697,89.423952 C 48.190697,89.423952 48.593739,83.378324 53.0272,83.378324 C 57.460661,83.378324 57.460661,91.03612 57.460661,91.03612 C 57.460661,91.03612 61.088038,87.005701 63.103247,88.214826 C 65.118457,89.423952 61.894122,94.663493 61.894122,94.663493 L 57.863703,99.5 L 44.966362,99.096953 C 44.966362,99.096953 44.160278,98.693913 42.145068,97.081753 C 40.129859,95.469583 40.532901,92.245245 40.532901,92.245245 C 40.532901,92.245245 43.757236,91.03612 45.369404,92.648287 C 46.981571,94.260453 48.190697,89.826994 48.190697,89.423952 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g4275"
+ transform="matrix(0.2025009,0,0,0.2025009,-45.294813,-41.509579)"
+ style="display:inline">
+ <svg:g
+ id="g4277"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4291);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4279"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4281"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4293);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4295);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4283"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4285"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4287"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4289"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ id="g4297"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4299"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path4301"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path4303"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4305"
+ transform="translate(0,-1.5617187e-5)">
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path4307"
+ d="M 28.2,99.799994 L 40.694299,85.290488 L 64.473772,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscscccscsc"
+ id="path4309"
+ d="M 48.190697,89.423952 C 48.190697,89.423952 48.593739,83.378324 53.0272,83.378324 C 57.460661,83.378324 57.460661,91.03612 57.460661,91.03612 C 57.460661,91.03612 61.088038,87.005701 63.103247,88.214826 C 65.118457,89.423952 61.894122,94.663493 61.894122,94.663493 L 57.863703,99.5 L 44.966362,99.096953 C 44.966362,99.096953 44.160278,98.693913 42.145068,97.081753 C 40.129859,95.469583 40.532901,92.245245 40.532901,92.245245 C 40.532901,92.245245 43.757236,91.03612 45.369404,92.648287 C 46.981571,94.260453 48.190697,89.826994 48.190697,89.423952 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g4367"
+ transform="matrix(0.2025009,0,0,0.2025009,-45.294813,-22.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4369"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4383);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4371"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4373"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4385);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4387);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4375"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4377"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4379"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4381"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g4389"
+ transform="matrix(0.2025009,0,0,0.2025009,18.705187,-42.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4391"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4405);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4393"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4395"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4407);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4409);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4397"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4399"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4401"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4403"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ id="g4339"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4341"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path4343"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path4345"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff4600;fill-opacity:1;stroke:none;stroke-width:0.32218586999999999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;"
+ id="rect4852"
+ width="46.831169"
+ height="1.9443398"
+ x="49.89167"
+ y="12.515765"
+ transform="matrix(0.5826886,0.8126955,-0.8062756,0.59154,0,0)" />
+ <svg:path
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 28.2,99.799994 L 40.694299,85.290488 L 64.473772,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ id="path4349"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 56.075147,89.423952 C 56.075147,89.423952 55.672105,83.378324 51.238644,83.378324 C 46.805183,83.378324 46.805183,91.03612 46.805183,91.03612 C 46.805183,91.03612 43.177806,87.005701 41.162597,88.214826 C 39.147387,89.423952 42.371722,94.663493 42.371722,94.663493 L 46.402141,99.5 L 59.299482,99.096953 C 59.299482,99.096953 60.105566,98.693913 62.120776,97.081753 C 64.135985,95.469583 63.732943,92.245245 63.732943,92.245245 C 63.732943,92.245245 60.508608,91.03612 58.89644,92.648287 C 57.284273,94.260453 56.075147,89.826994 56.075147,89.423952 z"
+ id="path4351"
+ sodipodi:nodetypes="cscscccscsc" />
+ <svg:g
+ inkscape:label="frame0"
+ id="g4435"
+ transform="matrix(0.2025009,0,0,0.2025009,18.705187,-42.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4437"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4451);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4439"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4441"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4453);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4455);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4443"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4445"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4447"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4449"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g4866"
+ transform="matrix(0.2025009,0,0,0.2025009,-45.294813,-22.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4868"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4882);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4870"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4872"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4884);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4886);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4874"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4876"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4878"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4880"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36223)"
+ id="g4355"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4357"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path4359"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path4361"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 28.2,99.799994 L 40.694301,85.290488 L 64.473771,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ id="path4363"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 56.075151,89.423952 C 56.075151,89.423952 55.672101,83.378324 51.238641,83.378324 C 46.805181,83.378324 46.805181,91.03612 46.805181,91.03612 C 46.805181,91.03612 43.177811,87.005701 41.162601,88.214826 C 39.147387,89.423952 42.371721,94.663493 42.371721,94.663493 L 46.402141,99.5 L 59.299481,99.096953 C 59.299481,99.096953 60.105571,98.693913 62.120781,97.081753 C 64.135981,95.469583 63.732941,92.245245 63.732941,92.245245 C 63.732941,92.245245 60.508611,91.03612 58.896441,92.648287 C 57.284271,94.260453 56.075151,89.826994 56.075151,89.423952 z"
+ id="path4365"
+ sodipodi:nodetypes="cscscccscsc" />
+ <svg:g
+ inkscape:label="frame0"
+ id="g4888"
+ transform="matrix(0.2025009,0,0,0.2025009,18.705187,-27.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4890"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4904);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4892"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4894"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4906);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4908);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4896"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4898"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4900"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4902"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ id="g4825"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="matrix(0.1902422,0,0,0.1902422,9.9800497,21.452327)">
+ <svg:g
+ style="display:inline"
+ id="g3363"
+ transform="matrix(0.7029138,0,0,0.7029138,-234.19554,-86.337667)">
+ <svg:path
+ style="fill:#00d6d3"
+ d="M 369.77999,334.2432 C 366.47999,333.18005 362.94249,331.47498 361.91888,330.45416 C 360.1047,328.64493 360.21383,328.44206 366.24643,322.40946 L 372.43509,316.2208 L 376.45901,317.83085 C 379.55436,319.06937 382.19026,319.2862 387.88146,318.77047 C 391.95065,318.40173 395.27429,317.82461 395.26732,317.48797 C 395.26036,317.15133 393.91036,314.22499 392.26732,310.98498 C 387.87923,302.3318 388.08335,301.70087 395.52999,300.90059 C 398.96749,300.53117 403.71803,299.5161 406.08674,298.64487 C 409.8728,297.25235 410.57094,297.23828 411.86117,298.5285 C 413.13553,299.80287 413.14794,300.85911 411.95544,306.54808 C 411.20007,310.15162 409.49016,315.07456 408.15564,317.48794 C 406.14974,321.11545 405.21569,321.88223 402.76593,321.91244 C 400.37773,321.94189 399.37694,322.70788 397.60917,325.85935 C 396.40276,328.01005 393.84021,331.25611 391.9146,333.07281 C 388.67908,336.12534 387.93433,336.36833 382.09674,336.27605 C 378.62253,336.22113 373.07999,335.30635 369.77999,334.2432 z M 342.75789,330.94471 C 340.72577,328.91259 340.40978,328.0019 341.21485,326.49762 C 342.68705,323.74678 346.9893,322.95541 349.94465,324.89183 C 351.85071,326.14073 352.32869,327.20981 352.08876,329.68746 C 351.81902,332.47292 351.37133,332.91535 348.54665,333.18802 C 346.1465,333.4197 344.65482,332.84164 342.75789,330.94471 z M 345.94666,308.70923 C 345.57999,308.34257 345.27999,305.44821 345.27999,302.27733 C 345.27999,297.01288 345.54058,296.32653 348.27999,294.3759 C 351.96453,291.75227 352.05523,290.13086 348.66654,287.46532 C 344.5602,284.23527 346.12458,281.98556 352.0153,282.64953 C 358.20497,283.3472 362.74694,287.96533 361.94738,292.74815 C 359.77657,305.73346 357.24504,309.3759 350.39089,309.3759 C 348.31323,309.3759 346.31332,309.0759 345.94666,308.70923 z M 369.92658,281.32196 L 362.012,273.26802 L 362.55455,267.2846 C 363.46839,257.20663 364.14051,257.23044 374.85436,267.72036 C 384.02706,276.70133 384.27999,277.0713 384.27999,281.50745 C 384.27999,286.15588 382.21412,289.3759 379.23183,289.3759 C 378.46696,289.3759 374.2796,285.75163 369.92658,281.32196 z M 396.85517,284.85602 C 395.79652,284.05507 394.34076,281.70689 393.62014,279.63783 C 392.45475,276.29172 392.51346,275.59981 394.15122,273.37813 C 395.16393,272.00435 397.73815,270.39058 399.8717,269.79196 C 402.53814,269.04383 404.63795,267.47998 406.58827,264.78973 C 411.35649,258.21249 414.27999,257.84117 414.27999,263.81279 C 414.27999,265.63817 414.95499,268.74715 415.77999,270.72166 C 416.60499,272.69616 417.27999,274.71424 417.27999,275.20628 C 417.27999,276.9781 411.10296,283.90197 408.47058,285.0808 C 404.79567,286.72649 399.18392,286.6179 396.85517,284.85602 z M 345.98165,247.87646 C 344.97389,245.76316 344.27999,241.89796 344.27999,238.39774 C 344.27999,233.64562 344.7378,231.9552 346.6162,229.77142 C 347.90112,228.27762 349.40965,227.338 349.96849,227.68338 C 350.56961,228.0549 350.9428,232.91339 350.88228,239.58003 C 350.79764,248.90399 350.51278,250.90015 349.23165,251.14679 C 348.28292,251.32944 347.02432,250.06297 345.98165,247.87646 z M 408.27999,247.0679 C 408.27999,245.115 408.97987,243.03994 409.89461,242.28078 C 411.27948,241.13143 411.78127,241.27674 413.42121,243.30197 C 415.10096,245.37638 415.16422,245.91901 413.94199,247.76954 C 413.17683,248.92804 411.58986,250.0197 410.41539,250.19545 C 408.58604,250.4692 408.27999,250.02096 408.27999,247.0679 z"
+ id="path2585" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1"
+ d="M 369.66881,333.94746 C 366.30766,332.6924 363.04516,331.3488 362.41881,330.96169 C 360.36065,329.68968 361.22706,326.83838 364.20657,325.07834 C 365.81618,324.12752 368.10289,321.7805 369.28813,319.86274 C 370.47337,317.94498 371.5941,316.3759 371.77864,316.3759 C 371.96319,316.3759 374.22425,317.28038 376.80323,318.38586 C 380.7785,320.08986 382.10926,320.22969 385.54536,319.30444 C 387.77456,318.70418 391.10179,318.49509 392.93922,318.83979 C 394.77664,319.1845 396.27999,319.09391 396.27999,318.63849 C 396.27999,318.18307 394.66441,314.76795 392.68982,311.04934 C 390.71523,307.33072 389.35111,303.63295 389.65844,302.83206 C 390.02104,301.88714 391.72036,301.35268 394.4986,301.30975 C 396.85337,301.27337 401.25499,300.4275 404.27999,299.43004 C 410.68189,297.31908 413.80369,298.1426 412.91559,301.70807 C 412.61861,302.90037 412.08309,305.7165 411.72555,307.96612 C 411.36801,310.21574 409.86811,314.26574 408.39244,316.96612 C 406.0306,321.28815 405.35252,321.84931 402.7282,321.65376 C 400.13639,321.46064 399.4417,322.00712 397.40963,325.83759 C 396.12408,328.26088 393.556,331.62334 391.70278,333.30973 C 388.66669,336.07251 387.71223,336.36865 382.05664,336.30265 C 378.13389,336.25687 373.48814,335.37362 369.66881,333.94746 z M 386.87049,330.2759 C 387.8162,329.2309 389.63485,328.3759 390.91192,328.3759 C 392.31384,328.3759 393.91442,327.33727 394.95138,325.75467 C 396.59277,323.24959 396.58271,323.06955 394.72444,321.69181 C 393.39554,320.70656 391.51371,320.44311 388.77999,320.8596 C 382.39195,321.83283 382.02535,321.83592 376.95062,320.95927 C 372.24736,320.14679 372.01856,320.22528 368.18879,323.96496 C 366.02593,326.07693 364.4011,328.23922 364.57804,328.77006 C 365.06143,330.22023 373.03863,332.00127 379.4655,332.09393 C 383.85172,332.15717 385.54396,331.7417 386.87049,330.2759 z M 405.54552,313.6259 C 410.01644,303.49938 410.1432,298.5546 405.80911,303.34372 C 404.46614,304.82769 403.58361,305.07357 402.21986,304.34372 C 400.15121,303.23661 394.94085,303.04837 393.94448,304.04475 C 393.57661,304.41262 393.89073,305.42512 394.64252,306.29475 C 395.39432,307.16438 396.28161,309.6759 396.61429,311.8759 C 397.15549,315.45487 400.10407,319.3759 402.25421,319.3759 C 402.66817,319.3759 404.14926,316.7884 405.54552,313.6259 z M 343.52999,331.70148 C 340.40006,329.51815 340.54174,325.59929 343.77999,324.78654 C 347.04963,323.96592 351.21802,325.05083 351.93066,326.90794 C 352.24142,327.71778 352.21358,329.50437 351.86879,330.87814 C 351.38677,332.79864 350.61074,333.36378 348.51094,333.32345 C 347.00892,333.2946 344.76749,332.56471 343.52999,331.70148 z M 348.94416,327.94312 C 348.24156,326.11218 345.71348,325.86548 344.68623,327.5276 C 343.75379,329.03633 347.34617,331.70971 348.60903,330.44686 C 349.12412,329.93177 349.27493,328.80509 348.94416,327.94312 z M 346.47999,308.1759 C 345.81999,307.5159 345.27999,304.90009 345.27999,302.36299 C 345.27999,298.54291 345.79561,297.25609 348.27999,294.8759 C 351.9825,291.32867 352.01951,290.14673 348.52999,286.8914 C 346.20238,284.72001 346.01038,284.17295 347.27999,283.32974 C 349.28189,282.00018 355.18005,283.04648 358.27175,285.27963 C 361.42742,287.55898 363.08353,292.85959 361.45483,295.46755 C 360.80867,296.50222 360.27999,298.23369 360.27999,299.31528 C 360.27999,302.66277 358.01746,306.4603 355.13496,307.9509 C 351.77038,309.69079 348.09054,309.78645 346.47999,308.1759 z M 354.25878,305.88687 C 357.73864,304.08736 358.1325,302.82311 357.93413,294.08935 C 357.78013,287.30914 356.80955,285.42975 353.44209,285.39121 C 352.43357,285.37967 352.27104,286.36345 352.78192,289.38731 C 353.39555,293.01938 353.16745,293.65511 350.36981,296.10999 C 347.07608,299.0002 346.16374,303.85965 348.47999,306.1759 C 350.02985,307.72577 350.7748,307.68851 354.25878,305.88687 z M 371.35181,282.86299 C 364.12188,275.96681 361.78705,271.14871 362.70589,265.02146 C 363.8356,257.488 364.903,257.78776 375.02999,268.48257 C 384.60301,278.59235 385.40815,280.2784 383.30474,285.8108 C 381.6725,290.10391 377.9914,289.19609 371.35181,282.86299 z M 380.28138,279.34579 C 378.93258,274.46464 371.30194,266.3759 368.04602,266.3759 C 364.68484,266.3759 363.89648,268.76544 365.87916,272.94364 C 367.91701,277.23809 374.77998,283.505 376.65648,282.78492 C 377.43814,282.48497 378.399,282.75944 378.79171,283.39486 C 380.18614,285.6511 381.23553,282.79877 380.28138,279.34579 z M 396.85517,284.85646 C 395.79652,284.05527 394.34076,281.70689 393.62014,279.63783 C 392.45648,276.29669 392.51421,275.59876 394.13621,273.39823 C 395.14146,272.03443 397.49026,270.6081 399.36084,270.22553 C 401.73234,269.74051 404.14754,267.94751 407.35382,264.29172 C 409.88086,261.4104 412.41488,259.34123 412.98498,259.69357 C 413.55508,260.04591 414.30469,262.48108 414.65078,265.10505 C 414.99688,267.72902 415.5506,271.53198 415.88127,273.55607 C 416.41895,276.84727 416.07545,277.65678 412.63124,281.21506 C 409.43426,284.51794 407.93057,285.28895 403.77999,285.75352 C 400.23183,286.15066 398.22108,285.89018 396.85517,284.85646 z M 407.68331,281.1259 C 409.03102,279.03381 412.27999,267.97625 412.27999,265.48156 C 412.27999,263.31639 409.7385,264.42796 407.08484,267.75375 C 405.60251,269.61154 403.13003,271.4477 401.59044,271.83412 C 397.71844,272.80593 396.27999,274.21147 396.27999,277.0231 C 396.27999,278.63953 397.06605,279.72426 398.68285,280.33897 C 400.00442,280.84143 401.38098,281.73029 401.74187,282.31422 C 402.86868,284.13744 406.16845,283.47747 407.68331,281.1259 z M 347.5064,250.1259 C 345.94747,248.21258 344.29179,241.34792 344.28557,236.77192 C 344.28145,233.74493 344.95479,231.93982 346.85141,229.89334 C 348.26569,228.36731 349.78373,227.5141 350.22483,227.99732 C 351.21688,229.08409 350.31024,251.3759 349.27398,251.3759 C 348.86198,251.3759 348.06656,250.8134 347.5064,250.1259 z M 408.2953,247.6259 C 408.31582,243.94034 409.61779,242.10247 411.89982,242.53772 C 415.86913,243.2948 414.29514,250.3759 410.15754,250.3759 C 408.77226,250.3759 408.28401,249.65489 408.2953,247.6259 z"
+ id="path2581" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36222)"
+ id="g4311"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4313"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path4315"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path4317"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff4600;fill-opacity:1;stroke:none;stroke-width:0.32218587;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect4936"
+ width="46.831169"
+ height="1.9443398"
+ x="49.89167"
+ y="12.515765"
+ transform="matrix(-0.5826886,0.8126955,0.8062756,0.59154,96.327013,3.4258541)" />
+ <svg:g
+ style="display:inline"
+ id="g4319">
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path4321"
+ d="M 28.2,99.799994 L 40.694299,85.290488 L 64.473772,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscscccscsc"
+ id="path4323"
+ d="M 48.190697,89.423952 C 48.190697,89.423952 48.593739,83.378324 53.0272,83.378324 C 57.460661,83.378324 57.460661,91.03612 57.460661,91.03612 C 57.460661,91.03612 61.088038,87.005701 63.103247,88.214826 C 65.118457,89.423952 61.894122,94.663493 61.894122,94.663493 L 57.863703,99.5 L 44.966362,99.096953 C 44.966362,99.096953 44.160278,98.693913 42.145068,97.081753 C 40.129859,95.469583 40.532901,92.245245 40.532901,92.245245 C 40.532901,92.245245 43.757236,91.03612 45.369404,92.648287 C 46.981571,94.260453 48.190697,89.826994 48.190697,89.423952 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ id="g4914"
+ transform="matrix(0.2025009,0,0,0.2025009,18.705187,-17.712899)"
+ style="display:inline">
+ <svg:g
+ id="g4916"
+ transform="translate(159.93628,157.21227)"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <svg:path
+ style="fill:url(#radialGradient4930);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 133.20819,164.07286 131.87614,162.0399 C 129.06063,157.74289 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.82829,129.56514 143.69249,126.90363 C 144.97781,125.06857 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.57545,87.484523 146.66864,86.058194 C 148.02006,84.294936 147.35985,82.331828 146.24993,80.210057 C 145.30819,78.409768 145.54434,77.858612 146.08942,76.664571 C 146.4279,75.92312 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 150.74729,82.44614 151.5548,83.513761 C 152.749,85.092643 153.92342,89.859222 153.33293,109.41218 C 152.44732,138.73769 152.89642,137.02655 157.37883,136.1403 C 160.48644,135.52588 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4918"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc"
+ id="path4920"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 147.86205,79.372848 148.59255,78.642349 C 149.16888,78.066018 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ style="fill:url(#radialGradient4932);fill-opacity:1" />
+ <svg:path
+ style="fill:url(#radialGradient4934);fill-opacity:1"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.25766,164.66476 123.76836,163.78862 127.77251,165.93157 C 129.23212,166.71273 130.16384,166.67469 131.2293,165.79043 C 132.50543,164.73134 132.49743,164.28918 131.16538,162.25622 C 128.34987,157.95921 129.44234,155.1427 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.69982 141.21023,129.31792 143.07443,126.65641 C 144.35975,124.82135 144.64285,121.12656 144.64285,106.18673 C 144.64285,94.481931 145.05826,87.044564 145.80336,85.409236 C 146.69124,83.460561 146.67999,82.23912 145.75549,80.210057 C 144.91309,78.361195 145.76066,77.765903 146.49116,77.035404 C 147.06749,76.459073 146.64285,74.427183 146.64285,73.162183 C 146.64285,71.897183 147.00285,70.862183 147.44285,70.862183 C 149.32352,70.862183 150.64285,73.54573 150.64285,77.371053 C 150.64285,79.630932 151.30354,82.353432 152.11105,83.421053 C 153.30525,84.999935 154.20154,89.859222 153.61105,109.41218 C 152.72544,138.73769 153.52953,137.75579 157.68786,135.86218 C 160.73366,134.47519 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4922"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssccsssccsssccsssc" />
+ <svg:path
+ style="fill:#000000"
+ d="M 141.64285,200.86218 C 141.64285,200.31218 140.85535,199.8605 139.89285,199.85844 C 135.01125,199.84801 120.64285,186.81512 120.64285,182.39768 C 120.64285,181.06807 120.22747,179.7235 119.71979,179.40973 C 117.69162,178.15626 117.48611,172.84519 119.31248,168.88382 C 121.26522,164.64835 123.76829,163.78858 127.82526,165.9598 C 129.42703,166.81705 130.21924,166.71436 131.44267,165.49093 C 132.86466,164.06894 132.8539,163.75287 131.32601,162.06457 C 128.14461,158.54916 129.43401,155.14685 134.9995,152.3714 C 136.93763,151.40488 137.11069,150.63516 136.80694,144.33236 C 136.62218,140.49876 136.05968,136.93468 135.55694,136.41218 C 134.27089,135.07561 134.41935,128.44681 135.80336,125.40924 C 137.28331,122.16111 139.64285,122.09592 139.64285,125.30317 C 139.64285,128.35852 141.03156,129.30367 142.65199,127.35117 C 144.83589,124.71973 145.64321,125.74015 145.62754,131.11218 C 145.61019,137.06151 144.99094,138.46648 142.14285,139.01837 C 140.51678,139.33346 140.16528,140.14969 140.26282,143.38405 C 140.32881,145.57202 140.95318,149.30281 141.65032,151.67468 C 142.59749,154.89721 142.63036,156.27468 141.78035,157.12468 C 140.93035,157.97468 140.33955,157.95888 139.44285,157.06218 C 137.68738,155.30671 134.85503,155.5972 133.75902,157.64511 C 133.13685,158.80764 133.20046,160.91026 133.94182,163.68776 C 134.75411,166.73103 134.77321,168.43507 134.0087,169.65484 C 132.49281,172.07342 128.82959,172.34116 126.47007,170.20581 C 124.52717,168.44751 124.41661,168.4511 123.05253,170.31658 C 118.88309,176.01864 123.55776,185.84607 133.97577,193.2802 C 140.98313,198.28056 146.88164,199.79037 154.11102,198.43413 C 158.47678,197.61511 165.39069,191.69485 167.29572,187.1443 C 169.08241,182.87645 169.09429,182.91551 165.64285,181.71234 C 161.9551,180.42678 161.70297,177.56949 164.81224,172.29966 C 167.46358,167.80597 166.48878,165.59081 161.53929,164.86218 C 158.18976,164.36909 158.14344,164.29313 158.18533,159.36218 C 158.20869,156.61218 158.85426,151.58339 159.61993,148.18708 C 161.35254,140.50172 160.30652,138.40794 155.61847,140.17749 C 150.31967,142.17756 150.14285,141.33421 150.14285,114.06099 C 150.14285,98.595117 149.76903,89.175272 149.14285,88.862183 C 147.89703,88.239273 146.91568,97.789118 146.75973,112.05317 C 146.69507,117.96752 144.86724,128.02653 144.31403,128.36843 C 143.66133,128.77182 144.64285,117.64881 144.64285,105.74994 C 144.64285,89.894564 144.86748,87.271451 146.36716,85.614322 C 147.964,83.84983 147.75626,83.563638 146.26691,80.968594 C 145.25803,79.210709 145.19871,77.593582 145.74361,76.733389 C 146.22135,75.979226 146.61911,74.349683 146.62754,73.112183 C 146.63596,71.874683 147.00285,70.862183 147.44285,70.862183 C 149.39596,70.862183 150.64285,73.619964 150.64285,77.939738 C 150.64285,80.877614 151.20073,83.080294 152.14285,83.862183 C 153.4005,84.905937 153.64285,89.013418 153.64285,109.28463 C 153.64285,134.16175 153.90165,135.86218 157.68786,135.86218 C 161.0346,135.86218 162.64285,139.19545 162.64285,146.13191 C 162.64285,149.76864 162.19285,153.02226 161.64285,153.36218 C 160.25252,154.22145 160.38915,159.20848 161.84285,160.66218 C 162.50285,161.32218 163.78311,161.86218 164.68786,161.86218 C 166.8188,161.86218 169.64285,165.00126 169.64285,167.36992 C 169.64285,168.38757 169.11435,170.68173 168.4684,172.46807 C 167.4072,175.40277 167.55184,176.05408 169.9684,179.22235 C 171.43935,181.15086 172.64285,183.47683 172.64285,184.39117 C 172.64285,188.51122 163.73294,199.86218 160.49892,199.86218 C 159.543,199.86218 158.48277,200.31218 158.14285,200.86218 C 157.80293,201.41218 153.95137,201.86218 149.58383,201.86218 C 144.95651,201.86218 141.64285,201.44489 141.64285,200.86218 z M 135.47418,185.97776 C 132.70904,183.48633 132.32995,182.66907 133.2437,181.16918 C 133.84917,180.17533 135.80376,179.21803 137.58724,179.04185 C 141.94583,178.61127 144.83806,181.2567 144.44137,185.31108 C 144.01058,189.7141 139.9556,190.01557 135.47418,185.97776 z M 141.14285,183.79254 C 141.14285,183.02091 140.35535,182.23791 139.39285,182.05255 C 137.66911,181.72059 136.95651,183.8425 138.33035,185.21635 C 139.37856,186.26455 141.14285,185.3714 141.14285,183.79254 z M 148.62508,171.82897 C 146.86409,168.53855 148.18421,164.86218 151.12672,164.86218 C 153.90518,164.86218 155.93237,167.81315 155.45564,171.16376 C 155.00912,174.30212 150.19935,174.77053 148.62508,171.82897 z M 120.64285,121.86218 C 120.64285,120.52885 121.30952,119.86218 122.64285,119.86218 C 123.97618,119.86218 124.64285,120.52885 124.64285,121.86218 C 124.64285,123.19552 123.97618,123.86218 122.64285,123.86218 C 121.30952,123.86218 120.64285,123.19552 120.64285,121.86218 z M 165.64285,107.86218 C 165.64285,106.52885 166.30952,105.86218 167.64285,105.86218 C 168.97618,105.86218 169.64285,106.52885 169.64285,107.86218 C 169.64285,109.19552 168.97618,109.86218 167.64285,109.86218 C 166.30952,109.86218 165.64285,109.19552 165.64285,107.86218 z M 129.86055,95.707686 C 130.10697,94.96766 131.11062,94.206706 132.09088,94.01668 C 133.2309,93.795685 133.71173,94.156053 133.42515,95.01668 C 133.17873,95.756706 132.17508,96.51766 131.19482,96.707686 C 130.0548,96.928681 129.57397,96.568313 129.86055,95.707686 z"
+ id="path4924"
+ sodipodi:nodetypes="cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssccsssccssccssccsssccsssccsssc" />
+ <svg:path
+ transform="translate(-243.82525,-147.3851)"
+ style="fill:#d40000"
+ d="M 386.18556,331.83729 C 386.18556,333.11872 385.14251,333.56753 383.39286,333.56753 C 381.64322,333.56753 377.83216,331.24115 379.51977,329.05052 C 380.64976,327.58371 383.22917,328.25503 384.33036,328.83538 C 385.8782,329.65114 386.18556,330.55586 386.18556,331.83729 z"
+ id="path4926"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ id="path4928"
+ d="M 153.63012,169.53064 C 154.03191,170.81207 152.83512,171.71814 151.88904,171.71814 C 150.1394,171.71814 149.74619,170.49957 149.74619,169.21814 C 149.74619,167.93671 150.27333,166.89671 151.48725,166.71814 C 153.21827,166.4635 153.58548,168.74028 153.63012,169.53064 z"
+ style="fill:#d40000" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36219)"
+ id="g4325"
+ style="display:inline">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect4327"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path4329"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path4331"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4333">
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path4335"
+ d="M 28.2,99.799994 L 40.694299,85.290488 L 64.473772,85.290488 L 74.952861,99.8 L 28.2,99.799994 z"
+ style="fill:#7f7f7b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscscccscsc"
+ id="path4337"
+ d="M 48.190697,89.423952 C 48.190697,89.423952 48.593739,83.378324 53.0272,83.378324 C 57.460661,83.378324 57.460661,91.03612 57.460661,91.03612 C 57.460661,91.03612 61.088038,87.005701 63.103247,88.214826 C 65.118457,89.423952 61.894122,94.663493 61.894122,94.663493 L 57.863703,99.5 L 44.966362,99.096953 C 44.966362,99.096953 44.160278,98.693913 42.145068,97.081753 C 40.129859,95.469583 40.532901,92.245245 40.532901,92.245245 C 40.532901,92.245245 43.757236,91.03612 45.369404,92.648287 C 46.981571,94.260453 48.190697,89.826994 48.190697,89.423952 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g4938"
+ inkscape:label="frame1"
+ style="display:inline"
+ transform="matrix(0.1902422,0,0,0.1902422,73.98005,26.452327)">
+ <svg:g
+ style="display:inline"
+ id="g4940"
+ transform="matrix(0.7029138,0,0,0.7029138,-234.19554,-86.337667)">
+ <svg:path
+ style="fill:#00d6d3"
+ d="M 369.77999,334.2432 C 366.47999,333.18005 362.94249,331.47498 361.91888,330.45416 C 360.1047,328.64493 360.21383,328.44206 366.24643,322.40946 L 372.43509,316.2208 L 376.45901,317.83085 C 379.55436,319.06937 382.19026,319.2862 387.88146,318.77047 C 391.95065,318.40173 395.27429,317.82461 395.26732,317.48797 C 395.26036,317.15133 393.91036,314.22499 392.26732,310.98498 C 387.87923,302.3318 388.08335,301.70087 395.52999,300.90059 C 398.96749,300.53117 403.71803,299.5161 406.08674,298.64487 C 409.8728,297.25235 410.57094,297.23828 411.86117,298.5285 C 413.13553,299.80287 413.14794,300.85911 411.95544,306.54808 C 411.20007,310.15162 409.49016,315.07456 408.15564,317.48794 C 406.14974,321.11545 405.21569,321.88223 402.76593,321.91244 C 400.37773,321.94189 399.37694,322.70788 397.60917,325.85935 C 396.40276,328.01005 393.84021,331.25611 391.9146,333.07281 C 388.67908,336.12534 387.93433,336.36833 382.09674,336.27605 C 378.62253,336.22113 373.07999,335.30635 369.77999,334.2432 z M 342.75789,330.94471 C 340.72577,328.91259 340.40978,328.0019 341.21485,326.49762 C 342.68705,323.74678 346.9893,322.95541 349.94465,324.89183 C 351.85071,326.14073 352.32869,327.20981 352.08876,329.68746 C 351.81902,332.47292 351.37133,332.91535 348.54665,333.18802 C 346.1465,333.4197 344.65482,332.84164 342.75789,330.94471 z M 345.94666,308.70923 C 345.57999,308.34257 345.27999,305.44821 345.27999,302.27733 C 345.27999,297.01288 345.54058,296.32653 348.27999,294.3759 C 351.96453,291.75227 352.05523,290.13086 348.66654,287.46532 C 344.5602,284.23527 346.12458,281.98556 352.0153,282.64953 C 358.20497,283.3472 362.74694,287.96533 361.94738,292.74815 C 359.77657,305.73346 357.24504,309.3759 350.39089,309.3759 C 348.31323,309.3759 346.31332,309.0759 345.94666,308.70923 z M 369.92658,281.32196 L 362.012,273.26802 L 362.55455,267.2846 C 363.46839,257.20663 364.14051,257.23044 374.85436,267.72036 C 384.02706,276.70133 384.27999,277.0713 384.27999,281.50745 C 384.27999,286.15588 382.21412,289.3759 379.23183,289.3759 C 378.46696,289.3759 374.2796,285.75163 369.92658,281.32196 z M 396.85517,284.85602 C 395.79652,284.05507 394.34076,281.70689 393.62014,279.63783 C 392.45475,276.29172 392.51346,275.59981 394.15122,273.37813 C 395.16393,272.00435 397.73815,270.39058 399.8717,269.79196 C 402.53814,269.04383 404.63795,267.47998 406.58827,264.78973 C 411.35649,258.21249 414.27999,257.84117 414.27999,263.81279 C 414.27999,265.63817 414.95499,268.74715 415.77999,270.72166 C 416.60499,272.69616 417.27999,274.71424 417.27999,275.20628 C 417.27999,276.9781 411.10296,283.90197 408.47058,285.0808 C 404.79567,286.72649 399.18392,286.6179 396.85517,284.85602 z M 345.98165,247.87646 C 344.97389,245.76316 344.27999,241.89796 344.27999,238.39774 C 344.27999,233.64562 344.7378,231.9552 346.6162,229.77142 C 347.90112,228.27762 349.40965,227.338 349.96849,227.68338 C 350.56961,228.0549 350.9428,232.91339 350.88228,239.58003 C 350.79764,248.90399 350.51278,250.90015 349.23165,251.14679 C 348.28292,251.32944 347.02432,250.06297 345.98165,247.87646 z M 408.27999,247.0679 C 408.27999,245.115 408.97987,243.03994 409.89461,242.28078 C 411.27948,241.13143 411.78127,241.27674 413.42121,243.30197 C 415.10096,245.37638 415.16422,245.91901 413.94199,247.76954 C 413.17683,248.92804 411.58986,250.0197 410.41539,250.19545 C 408.58604,250.4692 408.27999,250.02096 408.27999,247.0679 z"
+ id="path4942" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1"
+ d="M 369.66881,333.94746 C 366.30766,332.6924 363.04516,331.3488 362.41881,330.96169 C 360.36065,329.68968 361.22706,326.83838 364.20657,325.07834 C 365.81618,324.12752 368.10289,321.7805 369.28813,319.86274 C 370.47337,317.94498 371.5941,316.3759 371.77864,316.3759 C 371.96319,316.3759 374.22425,317.28038 376.80323,318.38586 C 380.7785,320.08986 382.10926,320.22969 385.54536,319.30444 C 387.77456,318.70418 391.10179,318.49509 392.93922,318.83979 C 394.77664,319.1845 396.27999,319.09391 396.27999,318.63849 C 396.27999,318.18307 394.66441,314.76795 392.68982,311.04934 C 390.71523,307.33072 389.35111,303.63295 389.65844,302.83206 C 390.02104,301.88714 391.72036,301.35268 394.4986,301.30975 C 396.85337,301.27337 401.25499,300.4275 404.27999,299.43004 C 410.68189,297.31908 413.80369,298.1426 412.91559,301.70807 C 412.61861,302.90037 412.08309,305.7165 411.72555,307.96612 C 411.36801,310.21574 409.86811,314.26574 408.39244,316.96612 C 406.0306,321.28815 405.35252,321.84931 402.7282,321.65376 C 400.13639,321.46064 399.4417,322.00712 397.40963,325.83759 C 396.12408,328.26088 393.556,331.62334 391.70278,333.30973 C 388.66669,336.07251 387.71223,336.36865 382.05664,336.30265 C 378.13389,336.25687 373.48814,335.37362 369.66881,333.94746 z M 386.87049,330.2759 C 387.8162,329.2309 389.63485,328.3759 390.91192,328.3759 C 392.31384,328.3759 393.91442,327.33727 394.95138,325.75467 C 396.59277,323.24959 396.58271,323.06955 394.72444,321.69181 C 393.39554,320.70656 391.51371,320.44311 388.77999,320.8596 C 382.39195,321.83283 382.02535,321.83592 376.95062,320.95927 C 372.24736,320.14679 372.01856,320.22528 368.18879,323.96496 C 366.02593,326.07693 364.4011,328.23922 364.57804,328.77006 C 365.06143,330.22023 373.03863,332.00127 379.4655,332.09393 C 383.85172,332.15717 385.54396,331.7417 386.87049,330.2759 z M 405.54552,313.6259 C 410.01644,303.49938 410.1432,298.5546 405.80911,303.34372 C 404.46614,304.82769 403.58361,305.07357 402.21986,304.34372 C 400.15121,303.23661 394.94085,303.04837 393.94448,304.04475 C 393.57661,304.41262 393.89073,305.42512 394.64252,306.29475 C 395.39432,307.16438 396.28161,309.6759 396.61429,311.8759 C 397.15549,315.45487 400.10407,319.3759 402.25421,319.3759 C 402.66817,319.3759 404.14926,316.7884 405.54552,313.6259 z M 343.52999,331.70148 C 340.40006,329.51815 340.54174,325.59929 343.77999,324.78654 C 347.04963,323.96592 351.21802,325.05083 351.93066,326.90794 C 352.24142,327.71778 352.21358,329.50437 351.86879,330.87814 C 351.38677,332.79864 350.61074,333.36378 348.51094,333.32345 C 347.00892,333.2946 344.76749,332.56471 343.52999,331.70148 z M 348.94416,327.94312 C 348.24156,326.11218 345.71348,325.86548 344.68623,327.5276 C 343.75379,329.03633 347.34617,331.70971 348.60903,330.44686 C 349.12412,329.93177 349.27493,328.80509 348.94416,327.94312 z M 346.47999,308.1759 C 345.81999,307.5159 345.27999,304.90009 345.27999,302.36299 C 345.27999,298.54291 345.79561,297.25609 348.27999,294.8759 C 351.9825,291.32867 352.01951,290.14673 348.52999,286.8914 C 346.20238,284.72001 346.01038,284.17295 347.27999,283.32974 C 349.28189,282.00018 355.18005,283.04648 358.27175,285.27963 C 361.42742,287.55898 363.08353,292.85959 361.45483,295.46755 C 360.80867,296.50222 360.27999,298.23369 360.27999,299.31528 C 360.27999,302.66277 358.01746,306.4603 355.13496,307.9509 C 351.77038,309.69079 348.09054,309.78645 346.47999,308.1759 z M 354.25878,305.88687 C 357.73864,304.08736 358.1325,302.82311 357.93413,294.08935 C 357.78013,287.30914 356.80955,285.42975 353.44209,285.39121 C 352.43357,285.37967 352.27104,286.36345 352.78192,289.38731 C 353.39555,293.01938 353.16745,293.65511 350.36981,296.10999 C 347.07608,299.0002 346.16374,303.85965 348.47999,306.1759 C 350.02985,307.72577 350.7748,307.68851 354.25878,305.88687 z M 371.35181,282.86299 C 364.12188,275.96681 361.78705,271.14871 362.70589,265.02146 C 363.8356,257.488 364.903,257.78776 375.02999,268.48257 C 384.60301,278.59235 385.40815,280.2784 383.30474,285.8108 C 381.6725,290.10391 377.9914,289.19609 371.35181,282.86299 z M 380.28138,279.34579 C 378.93258,274.46464 371.30194,266.3759 368.04602,266.3759 C 364.68484,266.3759 363.89648,268.76544 365.87916,272.94364 C 367.91701,277.23809 374.77998,283.505 376.65648,282.78492 C 377.43814,282.48497 378.399,282.75944 378.79171,283.39486 C 380.18614,285.6511 381.23553,282.79877 380.28138,279.34579 z M 396.85517,284.85646 C 395.79652,284.05527 394.34076,281.70689 393.62014,279.63783 C 392.45648,276.29669 392.51421,275.59876 394.13621,273.39823 C 395.14146,272.03443 397.49026,270.6081 399.36084,270.22553 C 401.73234,269.74051 404.14754,267.94751 407.35382,264.29172 C 409.88086,261.4104 412.41488,259.34123 412.98498,259.69357 C 413.55508,260.04591 414.30469,262.48108 414.65078,265.10505 C 414.99688,267.72902 415.5506,271.53198 415.88127,273.55607 C 416.41895,276.84727 416.07545,277.65678 412.63124,281.21506 C 409.43426,284.51794 407.93057,285.28895 403.77999,285.75352 C 400.23183,286.15066 398.22108,285.89018 396.85517,284.85646 z M 407.68331,281.1259 C 409.03102,279.03381 412.27999,267.97625 412.27999,265.48156 C 412.27999,263.31639 409.7385,264.42796 407.08484,267.75375 C 405.60251,269.61154 403.13003,271.4477 401.59044,271.83412 C 397.71844,272.80593 396.27999,274.21147 396.27999,277.0231 C 396.27999,278.63953 397.06605,279.72426 398.68285,280.33897 C 400.00442,280.84143 401.38098,281.73029 401.74187,282.31422 C 402.86868,284.13744 406.16845,283.47747 407.68331,281.1259 z M 347.5064,250.1259 C 345.94747,248.21258 344.29179,241.34792 344.28557,236.77192 C 344.28145,233.74493 344.95479,231.93982 346.85141,229.89334 C 348.26569,228.36731 349.78373,227.5141 350.22483,227.99732 C 351.21688,229.08409 350.31024,251.3759 349.27398,251.3759 C 348.86198,251.3759 348.06656,250.8134 347.5064,250.1259 z M 408.2953,247.6259 C 408.31582,243.94034 409.61779,242.10247 411.89982,242.53772 C 415.86913,243.2948 414.29514,250.3759 410.15754,250.3759 C 408.77226,250.3759 408.28401,249.65489 408.2953,247.6259 z"
+ id="path4944" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/comet0.png b/data/images/sprites/comet0.png
new file mode 100644
index 0000000..ba3086c
Binary files /dev/null and b/data/images/sprites/comet0.png differ
diff --git a/data/images/sprites/comet1.png b/data/images/sprites/comet1.png
new file mode 100644
index 0000000..b5513e9
Binary files /dev/null and b/data/images/sprites/comet1.png differ
diff --git a/data/images/sprites/comet2.png b/data/images/sprites/comet2.png
new file mode 100644
index 0000000..4474f4e
Binary files /dev/null and b/data/images/sprites/comet2.png differ
diff --git a/data/images/sprites/comet3.png b/data/images/sprites/comet3.png
new file mode 100644
index 0000000..4698728
Binary files /dev/null and b/data/images/sprites/comet3.png differ
diff --git a/data/images/sprites/comet4.png b/data/images/sprites/comet4.png
new file mode 100644
index 0000000..d9e15c5
Binary files /dev/null and b/data/images/sprites/comet4.png differ
diff --git a/data/images/sprites/comet5.png b/data/images/sprites/comet5.png
new file mode 100644
index 0000000..9818fd3
Binary files /dev/null and b/data/images/sprites/comet5.png differ
diff --git a/data/images/sprites/cometd.png b/data/images/sprites/cometd.png
new file mode 100644
index 0000000..f8b41e7
Binary files /dev/null and b/data/images/sprites/cometd.png differ
diff --git a/data/images/sprites/credits.svg b/data/images/sprites/credits.svg
new file mode 100644
index 0000000..6f1bdc7
--- /dev/null
+++ b/data/images/sprites/credits.svg
@@ -0,0 +1,571 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="credits.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2469"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective3326"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.5431926"
+ inkscape:cx="6.1070685"
+ inkscape:cy="40.863374"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3263"
+ transform="matrix(0.9415334,0,0,0.9415334,2.9739062,63.497721)">
+ <svg:path
+ sodipodi:nodetypes="cssccsscsccsssccsczscc"
+ id="path2475"
+ d="M 18.9095,997.6093 C 18.9095,997.6093 35.843381,1008.3341 33.303299,1012.5676 C 30.763217,1016.801 24.554127,1023.2924 24.554127,1028.6547 C 24.554127,1034.0171 28.787597,1043.3308 28.787597,1043.3308 L 36.972306,1042.7663 C 36.972306,1042.7663 86.927254,1045.3064 87.491716,1043.3308 C 88.056179,1041.3552 86.08056,1035.4283 88.620642,1033.1704 C 91.160724,1030.9126 94.829731,1025.268 94.829731,1025.268 C 94.829731,1025.268 95.676425,1013.132 93.700805,1011.1564 C 91.725186,1009.1808 88.522421,1005.3526 80.435933,998.17376 C 80.224485,991.07525 80.643307,975.50664 80.153701,971.07955 C 79.483991,965.02394 75.638,959.7903 71.686761,958.66137 C 68.117417,957.64156 65.2691,957.84448 61.808664,958.37914 C 57.864116,958.98861 53.623955,964.58823 52.49503,967.41055 C 51.366105,970.23286 51.648336,980.39319 51.648336,980.39319 L 46.850403,1000.4316 C 46.850403,1000.4316 25.977772,981.23012 23.989664,978.6998 C 20.885119,974.74856 21.731814,972.20848 16.933881,972.20848 C 6.8231895,972.39072 8.1109465,971.56435 4.7979335,974.46633 C 1.4849215,977.36831 -1.8627485,984.86546 1.5285e-06,986.60228 C 2.8751455,989.28305 10.44256,991.40021 10.44256,991.40021 L 18.9095,997.6093 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.9436342,0.2320839,-0.2359085,0.9283359,106.34037,960.51726)"
+ d="M -31.892142,44.96489 A 14.67603,11.007022 0 1 1 -61.244203,44.96489 A 14.67603,11.007022 0 1 1 -31.892142,44.96489 z"
+ sodipodi:ry="11.007022"
+ sodipodi:rx="14.67603"
+ sodipodi:cy="44.96489"
+ sodipodi:cx="-46.568172"
+ id="path2477"
+ style="opacity:1;fill:#ffda00;fill-opacity:1;stroke:#000000;stroke-width:0.97958249;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cssssszcc"
+ id="path2479"
+ d="M 38.665695,1044.1775 C 38.665695,1044.1775 32.135768,1035.4203 32.456605,1031.1948 C 33.068493,1023.1362 41.770239,1019.0589 43.463627,1013.6965 C 44.665549,1009.8904 47.132634,1006.0762 49.108253,1006.0762 C 52.212799,1006.0762 55.552885,1004.4199 57.575194,1006.9229 C 60.09584,1010.0428 61.526433,1014.5432 61.526433,1017.6477 C 61.526433,1019.3645 64.239162,1026.9519 64.348746,1030.9126 C 64.45833,1034.8733 63.502052,1044.4597 63.502052,1044.4597 L 38.665695,1044.1775 z"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(1.0574966,6.5785478e-2,-6.9747454e-2,0.9974259,110.53387,953.23865)"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ sodipodi:ry="7.1968994"
+ sodipodi:rx="4.656817"
+ sodipodi:cy="25.34981"
+ sodipodi:cx="-50.942757"
+ id="path3253"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(1.0574966,6.5785478e-2,-6.9747454e-2,0.9974259,119.42416,954.50869)"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ sodipodi:ry="7.1968994"
+ sodipodi:rx="4.656817"
+ sodipodi:cy="25.34981"
+ sodipodi:cx="-50.942757"
+ id="path3255"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="translate(101.32105,950.10433)"
+ d="M -45.157016,27.889893 A 1.4111567,1.5522723 0 1 1 -47.979329,27.889893 A 1.4111567,1.5522723 0 1 1 -45.157016,27.889893 z"
+ sodipodi:ry="1.5522723"
+ sodipodi:rx="1.4111567"
+ sodipodi:cy="27.889893"
+ sodipodi:cx="-46.568172"
+ id="path3257"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="translate(101.32105,949.25764)"
+ d="M -36.690075,30.006628 A 1.5522723,1.6933881 0 1 1 -39.79462,30.006628 A 1.5522723,1.6933881 0 1 1 -36.690075,30.006628 z"
+ sodipodi:ry="1.6933881"
+ sodipodi:rx="1.5522723"
+ sodipodi:cy="30.006628"
+ sodipodi:cx="-38.242348"
+ id="path3259"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(0.7773009,0,0,0.9470953,88.327173,951.14595)"
+ d="M -53.341725,43.694847 A 3.1045446,2.3989663 0 1 1 -59.550815,43.694847 A 3.1045446,2.3989663 0 1 1 -53.341725,43.694847 z"
+ sodipodi:ry="2.3989663"
+ sodipodi:rx="3.1045446"
+ sodipodi:cy="43.694847"
+ sodipodi:cx="-56.44627"
+ id="path3261"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 70.074235,1009.2972 C 69.792004,1014.6596 74.589937,1018.893 74.872168,1022.2798 C 75.1544,1025.6666 69.227541,1030.4645 69.509773,1033.0046 C 69.792004,1035.5447 70.356467,1036.3914 72.614317,1035.5447 C 74.872168,1034.698 74.025474,1033.5691 74.872168,1031.029 C 75.718862,1028.4889 80.799026,1024.8199 79.952332,1022.562 C 79.105638,1020.3042 76.283325,1016.0707 74.872168,1013.5306 C 74.534958,1009.2577 71.597351,1010.6476 70.074235,1009.2972 z"
+ id="path3273"
+ sodipodi:nodetypes="cssssscc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3260">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3262"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3264"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3266"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.94153339px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 20.777832,50.418016 C 20.777832,50.418016 36.721647,60.515774 34.330075,64.501755 C 31.938502,68.487643 26.092437,74.599513 26.092437,79.648297 C 26.092437,84.697176 30.07839,93.466335 30.07839,93.466335 L 37.784567,92.93484 C 37.784567,92.93484 84.818819,95.326429 85.350279,93.466335 C 85.88174,91.606242 84.021629,86.025868 86.413201,83.899979 C 88.804773,81.774185 92.259265,76.459606 92.259265,76.459606 C 92.259265,76.459606 93.056456,65.033157 91.196344,63.173063 C 89.336232,61.31297 86.320722,57.708592 78.707024,50.949474 C 78.507938,44.26599 78.902273,29.607623 78.441293,25.43937 C 77.810738,19.737811 74.18961,14.810164 70.469386,13.747239 C 67.108729,12.787054 64.426944,12.97811 61.168828,13.48151 C 57.454904,14.055347 53.462651,19.327576 52.39973,21.984884 C 51.33681,24.642183 51.60254,34.208474 51.60254,34.208474 L 47.085125,53.075306 C 47.085125,53.075306 29.408465,37.536553 26.40767,35.154172 C 18.591498,38.518147 16.614639,43.182168 16.474932,45.983106 L 20.777832,50.418016 z"
+ id="path3277"
+ sodipodi:nodetypes="cssccsscsccsssccccc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffda00;fill-opacity:1;stroke:#000000;stroke-width:0.97958249;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3279"
+ sodipodi:cx="-46.568172"
+ sodipodi:cy="44.96489"
+ sodipodi:rx="14.67603"
+ sodipodi:ry="11.007022"
+ d="M -31.892142,44.96489 A 14.67603,11.007022 0 1 1 -61.244203,44.96489 A 14.67603,11.007022 0 1 1 -31.892142,44.96489 z"
+ transform="matrix(0.8884631,0.2185147,-0.2221157,0.8740593,103.09692,15.494622)" />
+ <svg:path
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.94153339px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 39.378949,94.263532 C 39.378949,94.263532 33.230805,86.018335 33.532884,82.039886 C 34.108997,74.452445 42.301981,70.613531 43.896363,65.564652 C 45.028012,61.981082 47.350855,58.389885 49.210967,58.389885 C 52.134,58.389885 55.278803,56.830423 57.182874,59.187082 C 59.556147,62.124572 60.903098,66.361849 60.903098,69.284839 C 60.903098,70.901264 63.457223,78.045054 63.5604,81.774185 C 63.663577,85.503317 62.763209,94.529233 62.763209,94.529233 L 39.378949,94.263532 z"
+ id="path3281"
+ sodipodi:nodetypes="cssssszcc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3283"
+ sodipodi:cx="-50.942757"
+ sodipodi:cy="25.34981"
+ sodipodi:rx="4.656817"
+ sodipodi:ry="7.1968994"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ transform="matrix(0.9956684,6.1939225e-2,-6.5669558e-2,0.9391098,107.04524,8.6415671)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="path3285"
+ sodipodi:cx="-50.942757"
+ sodipodi:cy="25.34981"
+ sodipodi:rx="4.656817"
+ sodipodi:ry="7.1968994"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ transform="matrix(0.9956684,6.1939225e-2,-6.5669558e-2,0.9391098,115.41574,9.8373522)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3287"
+ sodipodi:cx="-46.568172"
+ sodipodi:cy="27.889893"
+ sodipodi:rx="1.4111567"
+ sodipodi:ry="1.5522723"
+ d="M -45.157016,27.889893 A 1.4111567,1.5522723 0 1 1 -47.979329,27.889893 A 1.4111567,1.5522723 0 1 1 -45.157016,27.889893 z"
+ transform="matrix(0.9415334,0,0,0.9415334,98.371059,5.6905002)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3289"
+ sodipodi:cx="-38.242348"
+ sodipodi:cy="30.006628"
+ sodipodi:rx="1.5522723"
+ sodipodi:ry="1.6933881"
+ d="M -36.690075,30.006628 A 1.5522723,1.6933881 0 1 1 -39.79462,30.006628 A 1.5522723,1.6933881 0 1 1 -36.690075,30.006628 z"
+ transform="matrix(0.9415334,0,0,0.9415334,98.371059,4.8933133)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3291"
+ sodipodi:cx="-56.44627"
+ sodipodi:cy="43.694847"
+ sodipodi:rx="3.1045446"
+ sodipodi:ry="2.3989663"
+ d="M -53.341725,43.694847 A 3.1045446,2.3989663 0 1 1 -59.550815,43.694847 A 3.1045446,2.3989663 0 1 1 -53.341725,43.694847 z"
+ transform="matrix(0.7318548,0,0,0.8917219,86.13689,6.6712202)" />
+ <svg:path
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 16.087186,45.529351 C 16.087186,45.529351 14.393799,33.393403 21.167351,31.982246 C 27.940903,30.57109 44.689838,31.887519 49.390485,34.80456 C 54.091131,37.721601 55.317343,38.473567 54.470649,42.142575 C 53.589002,45.963049 47.979328,50.327284 43.745858,49.762821 C 39.512388,49.198359 16.087186,45.811582 16.087186,45.529351 z"
+ id="path3332"
+ sodipodi:nodetypes="cszssc" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 70.074235,56.934988 C 69.792004,62.297388 74.589937,66.530788 74.872168,69.917588 C 75.1544,73.304388 69.227541,78.102288 69.509773,80.642388 C 69.792004,83.182488 70.356467,84.029188 72.614317,83.182488 C 74.872168,82.335788 74.025474,81.206888 74.872168,78.666788 C 75.718862,76.126688 80.799026,72.457688 79.952332,70.199788 C 79.105638,67.941988 76.283325,63.708488 74.872168,61.168388 C 74.534958,56.895488 71.597351,58.285388 70.074235,56.934988 z"
+ id="path2454"
+ sodipodi:nodetypes="cssssscc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3294">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3296"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3298"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3300"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3293"
+ transform="matrix(0.9415334,0,0,0.9415334,2.9739062,-888.86446)">
+ <svg:path
+ sodipodi:nodetypes="cssccsscsccsssccsczscc"
+ id="path3295"
+ d="M 18.9095,997.6093 C 18.9095,997.6093 35.843381,1008.3341 33.303299,1012.5676 C 30.763217,1016.801 24.554127,1023.2924 24.554127,1028.6547 C 24.554127,1034.0171 28.787597,1043.3308 28.787597,1043.3308 L 36.972306,1042.7663 C 36.972306,1042.7663 86.927254,1045.3064 87.491716,1043.3308 C 88.056179,1041.3552 86.08056,1035.4283 88.620642,1033.1704 C 91.160724,1030.9126 94.829731,1025.268 94.829731,1025.268 C 94.829731,1025.268 95.676425,1013.132 93.700805,1011.1564 C 91.725186,1009.1808 88.522421,1005.3526 80.435933,998.17376 C 80.224485,991.07525 80.643307,975.50664 80.153701,971.07955 C 79.483991,965.02394 75.638,959.7903 71.686761,958.66137 C 68.117417,957.64156 65.2691,957.84448 61.808664,958.37914 C 57.864116,958.98861 53.623955,964.58823 52.49503,967.41055 C 51.366105,970.23286 51.648336,980.39319 51.648336,980.39319 L 46.850403,1000.4316 C 46.850403,1000.4316 25.977772,981.23012 23.989664,978.6998 C 20.885119,974.74856 21.731814,972.20848 16.933881,972.20848 C 6.8231895,972.39072 8.1109465,971.56435 4.7979335,974.46633 C 1.4849215,977.36831 -1.8627485,984.86546 1.5285e-06,986.60228 C 2.8751455,989.28305 10.44256,991.40021 10.44256,991.40021 L 18.9095,997.6093 z"
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.9436342,0.2320839,-0.2359085,0.9283359,106.34037,960.51726)"
+ d="M -31.892142,44.96489 A 14.67603,11.007022 0 1 1 -61.244203,44.96489 A 14.67603,11.007022 0 1 1 -31.892142,44.96489 z"
+ sodipodi:ry="11.007022"
+ sodipodi:rx="14.67603"
+ sodipodi:cy="44.96489"
+ sodipodi:cx="-46.568172"
+ id="path3297"
+ style="opacity:1;fill:#ffda00;fill-opacity:1;stroke:#000000;stroke-width:0.97958249;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cssssszcc"
+ id="path3299"
+ d="M 38.665695,1044.1775 C 38.665695,1044.1775 32.135768,1035.4203 32.456605,1031.1948 C 33.068493,1023.1362 41.770239,1019.0589 43.463627,1013.6965 C 44.665549,1009.8904 47.132634,1006.0762 49.108253,1006.0762 C 52.212799,1006.0762 55.552885,1004.4199 57.575194,1006.9229 C 60.09584,1010.0428 61.526433,1014.5432 61.526433,1017.6477 C 61.526433,1019.3645 64.239162,1026.9519 64.348746,1030.9126 C 64.45833,1034.8733 63.502052,1044.4597 63.502052,1044.4597 L 38.665695,1044.1775 z"
+ style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(1.0574966,6.5785478e-2,-6.9747454e-2,0.9974259,110.53387,953.23865)"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ sodipodi:ry="7.1968994"
+ sodipodi:rx="4.656817"
+ sodipodi:cy="25.34981"
+ sodipodi:cx="-50.942757"
+ id="path3301"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(1.0574966,6.5785478e-2,-6.9747454e-2,0.9974259,119.42416,954.50869)"
+ d="M -46.28594,25.34981 A 4.656817,7.1968994 0 1 1 -55.599574,25.34981 A 4.656817,7.1968994 0 1 1 -46.28594,25.34981 z"
+ sodipodi:ry="7.1968994"
+ sodipodi:rx="4.656817"
+ sodipodi:cy="25.34981"
+ sodipodi:cx="-50.942757"
+ id="path3303"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="translate(101.32105,950.10433)"
+ d="M -45.157016,27.889893 A 1.4111567,1.5522723 0 1 1 -47.979329,27.889893 A 1.4111567,1.5522723 0 1 1 -45.157016,27.889893 z"
+ sodipodi:ry="1.5522723"
+ sodipodi:rx="1.4111567"
+ sodipodi:cy="27.889893"
+ sodipodi:cx="-46.568172"
+ id="path3305"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="translate(101.32105,949.25764)"
+ d="M -36.690075,30.006628 A 1.5522723,1.6933881 0 1 1 -39.79462,30.006628 A 1.5522723,1.6933881 0 1 1 -36.690075,30.006628 z"
+ sodipodi:ry="1.6933881"
+ sodipodi:rx="1.5522723"
+ sodipodi:cy="30.006628"
+ sodipodi:cx="-38.242348"
+ id="path3307"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(0.7773009,0,0,0.9470953,88.327173,951.14595)"
+ d="M -53.341725,43.694847 A 3.1045446,2.3989663 0 1 1 -59.550815,43.694847 A 3.1045446,2.3989663 0 1 1 -53.341725,43.694847 z"
+ sodipodi:ry="2.3989663"
+ sodipodi:rx="3.1045446"
+ sodipodi:cy="43.694847"
+ sodipodi:cx="-56.44627"
+ id="path3309"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 70.074235,56.934988 C 69.792004,62.297388 74.589937,66.530788 74.872168,69.917588 C 75.1544,73.304388 69.227541,78.102288 69.509773,80.642388 C 69.792004,83.182488 70.356467,84.029188 72.614317,83.182488 C 74.872168,82.335788 74.025474,81.206888 74.872168,78.666788 C 75.718862,76.126688 80.799026,72.457688 79.952332,70.199788 C 79.105638,67.941988 76.283325,63.708488 74.872168,61.168388 C 74.534958,56.895488 71.597351,58.285388 70.074235,56.934988 z"
+ id="path2456"
+ sodipodi:nodetypes="cssssscc" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/credits0.png b/data/images/sprites/credits0.png
new file mode 100644
index 0000000..e6ad2b6
Binary files /dev/null and b/data/images/sprites/credits0.png differ
diff --git a/data/images/sprites/credits1.png b/data/images/sprites/credits1.png
new file mode 100644
index 0000000..4c31ac9
Binary files /dev/null and b/data/images/sprites/credits1.png differ
diff --git a/data/images/sprites/credits2.png b/data/images/sprites/credits2.png
new file mode 100644
index 0000000..e6ad2b6
Binary files /dev/null and b/data/images/sprites/credits2.png differ
diff --git a/data/images/sprites/credits3.png b/data/images/sprites/credits3.png
new file mode 100644
index 0000000..e6ad2b6
Binary files /dev/null and b/data/images/sprites/credits3.png differ
diff --git a/data/images/sprites/creditsd.png b/data/images/sprites/creditsd.png
new file mode 100644
index 0000000..f3761c2
Binary files /dev/null and b/data/images/sprites/creditsd.png differ
diff --git a/data/images/sprites/exclamation.svg b/data/images/sprites/exclamation.svg
new file mode 100644
index 0000000..ec77cb7
--- /dev/null
+++ b/data/images/sprites/exclamation.svg
@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="exclamation.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>1 frame</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3294">
+ <svg:stop
+ id="stop3296"
+ offset="0"
+ style="stop-color:#ffff00;stop-opacity:1;" />
+ <svg:stop
+ id="stop3298"
+ offset="1"
+ style="stop-color:#ff9c00;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2477"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3281">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.3305592"
+ id="feGaussianBlur3283" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3294"
+ id="linearGradient3292"
+ x1="86.665405"
+ y1="977.39392"
+ x2="-22.86265"
+ y2="971.01367"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3294"
+ id="linearGradient2448"
+ gradientUnits="userSpaceOnUse"
+ x1="86.665405"
+ y1="977.39392"
+ x2="-22.86265"
+ y2="971.01367" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3294"
+ id="linearGradient2450"
+ gradientUnits="userSpaceOnUse"
+ x1="86.665405"
+ y1="977.39392"
+ x2="-22.86265"
+ y2="971.01367" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3294"
+ id="linearGradient2452"
+ gradientUnits="userSpaceOnUse"
+ x1="86.665405"
+ y1="977.39392"
+ x2="-22.86265"
+ y2="971.01367" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.8807967"
+ inkscape:cx="-121.26948"
+ inkscape:cy="48.30279"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:description>2 frames</dc:description>
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3259" />
+ <svg:g
+ style="opacity:0.9;fill:#000000;fill-opacity:1;display:inline;filter:url(#filter3281)"
+ id="g3267"
+ transform="translate(3.6698211,2.3075977)">
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 29.496243,970.48617 C 31.754684,965.03241 34.893141,961.33087 40.015579,958.68565 C 45.138017,956.04044 54.651204,955.56414 60.046768,957.86254 C 65.442332,960.16093 70.76736,967.11019 72.669159,972.12986 C 74.570959,977.14954 74.543286,984.34246 72.669159,988.86654 C 70.795033,993.39062 66.434641,995.29371 61.96706,998.10557 C 60.19723,1001.9256 61.967894,1008.5347 60.870473,1011.0907 C 59.773052,1013.6466 58.307721,1015.2073 55.382477,1015.2073 C 54.284877,1015.2073 48.326317,1015.7494 43.674919,1015.2078 C 39.203886,1014.6871 39.750901,1012.3483 38.459296,1009.3533 C 37.167691,1006.3583 38.707665,1000.1715 37.271075,996.73221 C 34.920663,995.85132 28.755706,992.14561 28.399151,988.13505 C 28.026479,983.94321 27.30224,975.78432 29.496243,970.48617 z"
+ id="path3269"
+ sodipodi:nodetypes="czzzzczszzczz" />
+ <svg:path
+ transform="matrix(0.8266667,0,0,0.8266667,5.4364004,965.02356)"
+ d="M 68.424957,80.637993 A 14.192539,14.098549 0 1 1 40.039879,80.637993 A 14.192539,14.098549 0 1 1 68.424957,80.637993 z"
+ sodipodi:ry="14.098549"
+ sodipodi:rx="14.192539"
+ sodipodi:cy="80.637993"
+ sodipodi:cx="54.232418"
+ id="path3271"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:g
+ id="g3263"
+ style="fill:url(#linearGradient3292);fill-opacity:1;stroke:none;stroke-opacity:1">
+ <svg:path
+ style="fill:url(#linearGradient3292);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 29.496243,970.48617 C 31.754684,965.03241 34.893141,961.33087 40.015579,958.68565 C 45.138017,956.04044 54.651204,955.56414 60.046768,957.86254 C 65.442332,960.16093 70.76736,967.11019 72.669159,972.12986 C 74.570959,977.14954 74.543286,984.34246 72.669159,988.86654 C 70.795033,993.39062 66.434641,995.29371 61.96706,998.10557 C 60.19723,1001.9256 61.967894,1008.5347 60.870473,1011.0907 C 59.773052,1013.6466 58.307721,1015.2073 55.382477,1015.2073 C 54.284877,1015.2073 48.326317,1015.7494 43.674919,1015.2078 C 39.203886,1014.6871 39.750901,1012.3483 38.459296,1009.3533 C 37.167691,1006.3583 38.707665,1000.1715 37.271075,996.73221 C 34.920663,995.85132 28.755706,992.14561 28.399151,988.13505 C 28.026479,983.94321 27.30224,975.78432 29.496243,970.48617 z"
+ id="path2483"
+ sodipodi:nodetypes="czzzzczszzczz" />
+ <svg:path
+ transform="matrix(0.8266667,0,0,0.8266667,5.4364004,965.02356)"
+ d="M 68.424957,80.637993 A 14.192539,14.098549 0 1 1 40.039879,80.637993 A 14.192539,14.098549 0 1 1 68.424957,80.637993 z"
+ sodipodi:ry="14.098549"
+ sodipodi:rx="14.192539"
+ sodipodi:cy="80.637993"
+ sodipodi:cx="54.232418"
+ id="path2487"
+ style="opacity:1;fill:url(#linearGradient3292);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2428">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2430"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2432"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2434"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.9;fill:#000000;fill-opacity:1;display:inline;filter:url(#filter3281)"
+ id="g2436"
+ transform="translate(3.669821,-950.05458)">
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 29.496243,970.48617 C 31.754684,965.03241 34.893141,961.33087 40.015579,958.68565 C 45.138017,956.04044 54.651204,955.56414 60.046768,957.86254 C 65.442332,960.16093 70.76736,967.11019 72.669159,972.12986 C 74.570959,977.14954 74.543286,984.34246 72.669159,988.86654 C 70.795033,993.39062 66.434641,995.29371 61.96706,998.10557 C 60.19723,1001.9256 61.967894,1008.5347 60.870473,1011.0907 C 59.773052,1013.6466 58.307721,1015.2073 55.382477,1015.2073 C 54.284877,1015.2073 48.326317,1015.7494 43.674919,1015.2078 C 39.203886,1014.6871 39.750901,1012.3483 38.459296,1009.3533 C 37.167691,1006.3583 38.707665,1000.1715 37.271075,996.73221 C 34.920663,995.85132 28.755706,992.14561 28.399151,988.13505 C 28.026479,983.94321 27.30224,975.78432 29.496243,970.48617 z"
+ id="path2438"
+ sodipodi:nodetypes="czzzzczszzczz" />
+ <svg:path
+ transform="matrix(0.8266667,0,0,0.8266667,5.4364004,965.02356)"
+ d="M 68.424957,80.637993 A 14.192539,14.098549 0 1 1 40.039879,80.637993 A 14.192539,14.098549 0 1 1 68.424957,80.637993 z"
+ sodipodi:ry="14.098549"
+ sodipodi:rx="14.192539"
+ sodipodi:cy="80.637993"
+ sodipodi:cx="54.232418"
+ id="path2440"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ id="g2442"
+ style="fill:url(#linearGradient2452);fill-opacity:1;stroke:none;stroke-opacity:1;display:inline">
+ <svg:path
+ style="fill:url(#linearGradient2448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 29.496243,970.48617 C 31.754684,965.03241 34.893141,961.33087 40.015579,958.68565 C 45.138017,956.04044 54.651204,955.56414 60.046768,957.86254 C 65.442332,960.16093 70.76736,967.11019 72.669159,972.12986 C 74.570959,977.14954 74.543286,984.34246 72.669159,988.86654 C 70.795033,993.39062 66.434641,995.29371 61.96706,998.10557 C 60.19723,1001.9256 61.967894,1008.5347 60.870473,1011.0907 C 59.773052,1013.6466 58.307721,1015.2073 55.382477,1015.2073 C 54.284877,1015.2073 48.326317,1015.7494 43.674919,1015.2078 C 39.203886,1014.6871 39.750901,1012.3483 38.459296,1009.3533 C 37.167691,1006.3583 38.707665,1000.1715 37.271075,996.73221 C 34.920663,995.85132 28.755706,992.14561 28.399151,988.13505 C 28.026479,983.94321 27.30224,975.78432 29.496243,970.48617 z"
+ id="path2444"
+ sodipodi:nodetypes="czzzzczszzczz" />
+ <svg:path
+ transform="matrix(0.8266667,0,0,0.8266667,5.4364004,965.02356)"
+ d="M 68.424957,80.637993 A 14.192539,14.098549 0 1 1 40.039879,80.637993 A 14.192539,14.098549 0 1 1 68.424957,80.637993 z"
+ sodipodi:ry="14.098549"
+ sodipodi:rx="14.192539"
+ sodipodi:cy="80.637993"
+ sodipodi:cx="54.232418"
+ id="path2446"
+ style="opacity:1;fill:url(#linearGradient2450);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/exclamation0.png b/data/images/sprites/exclamation0.png
new file mode 100644
index 0000000..ba43d8a
Binary files /dev/null and b/data/images/sprites/exclamation0.png differ
diff --git a/data/images/sprites/exclamationd.png b/data/images/sprites/exclamationd.png
new file mode 100644
index 0000000..ba43d8a
Binary files /dev/null and b/data/images/sprites/exclamationd.png differ
diff --git a/data/images/sprites/factoroids.svg b/data/images/sprites/factoroids.svg
new file mode 100644
index 0000000..3b710e3
--- /dev/null
+++ b/data/images/sprites/factoroids.svg
@@ -0,0 +1,1437 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="factoroids.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>3 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3794">
+ <svg:stop
+ id="stop3796"
+ offset="0"
+ style="stop-color:#ff8700;stop-opacity:1;" />
+ <svg:stop
+ id="stop3798"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="287.00504"
+ x2="-43.285713"
+ y1="287.00504"
+ x1="-100.28571"
+ id="linearGradient5159"
+ xlink:href="#linearGradient5153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4373"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4371"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4361"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4359"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4357"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4355"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4353"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4351"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4349"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4308"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4306"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4304"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4302"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4300"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4298"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3179">
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:0;"
+ offset="1"
+ id="stop3183" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3191"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient3192"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ id="linearGradient3176">
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:1;"
+ offset="0"
+ id="stop3178" />
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:0;"
+ offset="1"
+ id="stop3180" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3163">
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:1;"
+ offset="0"
+ id="stop3165" />
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:0;"
+ offset="1"
+ id="stop3167" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3622" />
+ <inkscape:perspective
+ id="perspective2690"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient5153">
+ <svg:stop
+ id="stop5155"
+ offset="0"
+ style="stop-color:#41fffb;stop-opacity:1;" />
+ <svg:stop
+ id="stop5157"
+ offset="1"
+ style="stop-color:#fffffb;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5161">
+ <svg:stop
+ id="stop5163"
+ offset="0"
+ style="stop-color:#1970ec;stop-opacity:1;" />
+ <svg:stop
+ id="stop5165"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5167">
+ <svg:stop
+ id="stop5169"
+ offset="0"
+ style="stop-color:#008dff;stop-opacity:1;" />
+ <svg:stop
+ id="stop5171"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient3677"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient3679"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4001"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4005"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4007"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4009"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4011"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4034"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4036"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4038"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4040"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4042"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4044"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4101"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4103"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4105"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4154"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4156"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4160"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4162"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2574"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2576"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2624"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.5264507"
+ inkscape:cx="15.197369"
+ inkscape:cy="48.086383"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4134"
+ transform="matrix(0.9654433,0.2606134,-0.2606134,0.9654433,14.380664,-11.075551)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4136"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4138"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4140"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4154);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4142"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4156);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4144"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4158);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4146"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4160);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4148"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4162);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4150"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4164);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g2562"
+ transform="matrix(0.4101981,0,0,0.4101981,-55.104747,63.498045)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000080;display:inline"
+ transform="matrix(0.1982098,0,0,0.2037799,175.77678,-102.04277)"
+ id="g2564">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000080"
+ id="path2566"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000080"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2568" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.2037799,-0.1586975,0,319.53735,-104.31095)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2570"
+ style="fill:url(#radialGradient2574);fill-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path2572"
+ d="M 253.97042,-54.574327 C 249.43698,-52.451067 247.58478,-47.069277 247.25246,-42.287667 C 243.88751,-23.998677 234.09271,-7.5327768 221.71797,5.8146232 C 211.93085,16.875423 200.12515,25.733523 188.4373,34.522123 C 186.63874,38.306123 190.33733,42.948123 194.24317,42.545423 C 206.36901,45.424923 219.16833,41.943523 231.1211,45.942723 C 237.83307,48.437523 244.2791,52.681823 251.66582,52.405623 C 259.71436,52.231123 266.75134,47.712523 274.00552,44.683523 C 280.93894,41.629123 288.51619,39.418723 296.12097,40.406223 C 302.3286,40.885323 308.84009,42.359823 314.87038,40.068723 C 317.99213,38.130123 316.90514,32.584823 313.45209,31.728123 C 304.48053,25.860423 294.77507,20.747223 287.56047,12.512923 C 280.50031,4.9674232 274.25365,-3.4492768 269.39981,-12.665677 C 264.77134,-21.904077 262.35133,-32.094467 260.64761,-42.277477 C 259.66848,-46.572047 258.58137,-51.294547 255.25259,-54.338707 C 254.85466,-54.529067 254.40894,-54.626147 253.97042,-54.574327 z"
+ style="fill:url(#radialGradient2576);fill-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2578">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2580"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2582"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2584"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3760"
+ transform="translate(-0.6063184,0.166875)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path2821"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path2388"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path2391"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4001);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3173"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4003);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3184"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4005);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3188"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4007);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3192"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4009);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3196"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4011);fill-opacity:1" />
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff5300;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3770"
+ width="12.740088"
+ height="22.903437"
+ x="42.739731"
+ y="0.063431859"
+ transform="matrix(0.3822496,0,0,0.2241379,30.662755,17.852254)" />
+ <svg:g
+ style="display:inline"
+ id="g2586"
+ transform="matrix(0.4101981,0,0,0.4101981,-55.104747,63.498045)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000080;display:inline"
+ transform="matrix(0.1982098,0,0,0.2037799,175.77678,-102.04277)"
+ id="g2588">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000080"
+ id="path2590"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000080"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2592" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.2037799,-0.1586975,0,319.53735,-104.31095)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2594"
+ style="fill:url(#radialGradient2598);fill-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path2596"
+ d="M 253.97042,-54.574327 C 249.43698,-52.451067 247.58478,-47.069277 247.25246,-42.287667 C 243.88751,-23.998677 234.09271,-7.5327768 221.71797,5.8146232 C 211.93085,16.875423 200.12515,25.733523 188.4373,34.522123 C 186.63874,38.306123 190.33733,42.948123 194.24317,42.545423 C 206.36901,45.424923 219.16833,41.943523 231.1211,45.942723 C 237.83307,48.437523 244.2791,52.681823 251.66582,52.405623 C 259.71436,52.231123 266.75134,47.712523 274.00552,44.683523 C 280.93894,41.629123 288.51619,39.418723 296.12097,40.406223 C 302.3286,40.885323 308.84009,42.359823 314.87038,40.068723 C 317.99213,38.130123 316.90514,32.584823 313.45209,31.728123 C 304.48053,25.860423 294.77507,20.747223 287.56047,12.512923 C 280.50031,4.9674232 274.25365,-3.4492768 269.39981,-12.665677 C 264.77134,-21.904077 262.35133,-32.094467 260.64761,-42.277477 C 259.66848,-46.572047 258.58137,-51.294547 255.25259,-54.338707 C 254.85466,-54.529067 254.40894,-54.626147 253.97042,-54.574327 z"
+ style="fill:url(#radialGradient2600);fill-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2602">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2604"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2606"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2608"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4014"
+ transform="matrix(0.9700691,-0.2428287,0.2428287,0.9700691,-11.464944,13.971293)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4016"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4018"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4020"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4034);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4022"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4036);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4024"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4038);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4026"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4040);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4028"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4042);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4030"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4044);fill-opacity:1" />
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff5300;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect4046"
+ width="12.740088"
+ height="22.903437"
+ x="42.739731"
+ y="0.063431859"
+ transform="matrix(0.3822496,0,0,1.0150995,30.662755,-0.3136573)" />
+ <svg:g
+ style="display:inline"
+ id="g2610"
+ transform="matrix(0.4101981,0,0,0.4101981,-55.104747,63.498045)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000080;display:inline"
+ transform="matrix(0.1982098,0,0,0.2037799,175.77678,-102.04277)"
+ id="g2612">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000080"
+ id="path2614"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000080"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2616" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.2037799,-0.1586975,0,319.53735,-104.31095)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2618"
+ style="fill:url(#radialGradient2622);fill-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path2620"
+ d="M 253.97042,-54.574327 C 249.43698,-52.451067 247.58478,-47.069277 247.25246,-42.287667 C 243.88751,-23.998677 234.09271,-7.5327768 221.71797,5.8146232 C 211.93085,16.875423 200.12515,25.733523 188.4373,34.522123 C 186.63874,38.306123 190.33733,42.948123 194.24317,42.545423 C 206.36901,45.424923 219.16833,41.943523 231.1211,45.942723 C 237.83307,48.437523 244.2791,52.681823 251.66582,52.405623 C 259.71436,52.231123 266.75134,47.712523 274.00552,44.683523 C 280.93894,41.629123 288.51619,39.418723 296.12097,40.406223 C 302.3286,40.885323 308.84009,42.359823 314.87038,40.068723 C 317.99213,38.130123 316.90514,32.584823 313.45209,31.728123 C 304.48053,25.860423 294.77507,20.747223 287.56047,12.512923 C 280.50031,4.9674232 274.25365,-3.4492768 269.39981,-12.665677 C 264.77134,-21.904077 262.35133,-32.094467 260.64761,-42.277477 C 259.66848,-46.572047 258.58137,-51.294547 255.25259,-54.338707 C 254.85466,-54.529067 254.40894,-54.626147 253.97042,-54.574327 z"
+ style="fill:url(#radialGradient2624);fill-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2674">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2676"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2678"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2680"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4081"
+ transform="matrix(0.7619425,-0.6476447,0.6476447,0.7619425,-21.69024,44.590745)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4083"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4085"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4087"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4101);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4089"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4103);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4091"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4105);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4093"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4107);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4095"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4109);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4097"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4111);fill-opacity:1" />
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff5300;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect4099"
+ width="12.740088"
+ height="22.903437"
+ x="42.739731"
+ y="0.063431859"
+ transform="matrix(0.3822496,0,0,0.3013049,30.662756,-4.7456305e-2)" />
+ <svg:g
+ style="display:inline"
+ id="g2682"
+ transform="matrix(0.4101981,0,0,0.4101981,-55.104747,63.498045)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000080;display:inline"
+ transform="matrix(0.1982098,0,0,0.2037799,175.77678,-102.04277)"
+ id="g2684">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000080"
+ id="path2686"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000080"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2688" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.2037799,-0.1586975,0,319.53735,-104.31095)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2690"
+ style="fill:url(#radialGradient2694);fill-opacity:1;display:inline"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path2692"
+ d="M 253.97042,-54.574327 C 249.43698,-52.451067 247.58478,-47.069277 247.25246,-42.287667 C 243.88751,-23.998677 234.09271,-7.5327768 221.71797,5.8146232 C 211.93085,16.875423 200.12515,25.733523 188.4373,34.522123 C 186.63874,38.306123 190.33733,42.948123 194.24317,42.545423 C 206.36901,45.424923 219.16833,41.943523 231.1211,45.942723 C 237.83307,48.437523 244.2791,52.681823 251.66582,52.405623 C 259.71436,52.231123 266.75134,47.712523 274.00552,44.683523 C 280.93894,41.629123 288.51619,39.418723 296.12097,40.406223 C 302.3286,40.885323 308.84009,42.359823 314.87038,40.068723 C 317.99213,38.130123 316.90514,32.584823 313.45209,31.728123 C 304.48053,25.860423 294.77507,20.747223 287.56047,12.512923 C 280.50031,4.9674232 274.25365,-3.4492768 269.39981,-12.665677 C 264.77134,-21.904077 262.35133,-32.094467 260.64761,-42.277477 C 259.66848,-46.572047 258.58137,-51.294547 255.25259,-54.338707 C 254.85466,-54.529067 254.40894,-54.626147 253.97042,-54.574327 z"
+ style="fill:url(#radialGradient2696);fill-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/factoroids0.png b/data/images/sprites/factoroids0.png
new file mode 100644
index 0000000..e0171aa
Binary files /dev/null and b/data/images/sprites/factoroids0.png differ
diff --git a/data/images/sprites/factoroids1.png b/data/images/sprites/factoroids1.png
new file mode 100644
index 0000000..136f4ad
Binary files /dev/null and b/data/images/sprites/factoroids1.png differ
diff --git a/data/images/sprites/factoroids2.png b/data/images/sprites/factoroids2.png
new file mode 100644
index 0000000..d7f0130
Binary files /dev/null and b/data/images/sprites/factoroids2.png differ
diff --git a/data/images/sprites/factoroidsd.png b/data/images/sprites/factoroidsd.png
new file mode 100644
index 0000000..86338c4
Binary files /dev/null and b/data/images/sprites/factoroidsd.png differ
diff --git a/data/images/sprites/factors.svg b/data/images/sprites/factors.svg
new file mode 100644
index 0000000..ea4ff69
--- /dev/null
+++ b/data/images/sprites/factors.svg
@@ -0,0 +1,2250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="factors.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>5 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3794">
+ <svg:stop
+ id="stop3796"
+ offset="0"
+ style="stop-color:#ff8700;stop-opacity:1;" />
+ <svg:stop
+ id="stop3798"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="287.00504"
+ x2="-43.285713"
+ y1="287.00504"
+ x1="-100.28571"
+ id="linearGradient5159"
+ xlink:href="#linearGradient5153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4373"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4371"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4361"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4359"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4357"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4355"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4353"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4351"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4349"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4308"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4306"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4304"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4302"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4300"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4298"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3179">
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:0;"
+ offset="1"
+ id="stop3183" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3191"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient3192"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ id="linearGradient3176">
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:1;"
+ offset="0"
+ id="stop3178" />
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:0;"
+ offset="1"
+ id="stop3180" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3163">
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:1;"
+ offset="0"
+ id="stop3165" />
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:0;"
+ offset="1"
+ id="stop3167" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3622" />
+ <inkscape:perspective
+ id="perspective2690"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient5153">
+ <svg:stop
+ id="stop5155"
+ offset="0"
+ style="stop-color:#41fffb;stop-opacity:1;" />
+ <svg:stop
+ id="stop5157"
+ offset="1"
+ style="stop-color:#fffffb;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5161">
+ <svg:stop
+ id="stop5163"
+ offset="0"
+ style="stop-color:#1970ec;stop-opacity:1;" />
+ <svg:stop
+ id="stop5165"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5167">
+ <svg:stop
+ id="stop5169"
+ offset="0"
+ style="stop-color:#008dff;stop-opacity:1;" />
+ <svg:stop
+ id="stop5171"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient3677"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient3679"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4001"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4005"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4007"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4009"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4011"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4154"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4156"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4160"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4162"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3347">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.95361328"
+ id="feGaussianBlur3349" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3359">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.51318359"
+ id="feGaussianBlur3361" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3377">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.6315918"
+ id="feGaussianBlur3379" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3411"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3457"
+ x="-0.24845607"
+ width="1.4969121"
+ y="-0.079102595"
+ height="1.1582052">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.50414776"
+ id="feGaussianBlur3459" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3467"
+ x="-0.12922657"
+ width="1.2584531"
+ y="-0.11200316"
+ height="1.2240063">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.2931751"
+ id="feGaussianBlur3469" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3527"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3661"
+ x="-0.38131452"
+ width="1.762629"
+ y="-0.12140161"
+ height="1.2428032">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.77373379"
+ id="feGaussianBlur3663" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3726"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3876"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3878"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3880"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3882"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3884"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3886"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3888"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3953"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4016"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4020"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4022"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4024"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.0035404"
+ inkscape:cx="62.06251"
+ inkscape:cy="41.575277"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4134"
+ transform="matrix(0.9343643,0.2522239,-0.2522239,0.9343643,17.542005,-10.333641)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4136"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4138"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4140"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4154);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4142"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4156);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4144"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4158);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4146"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4160);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4148"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4162);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4150"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4164);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g3363"
+ transform="translate(7.8125e-3,4.3280602)">
+ <svg:text
+ id="text3355"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3357"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:text
+ id="text3351"
+ y="58.908203"
+ x="27.394531"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="58.908203"
+ x="27.394531"
+ id="tspan3353"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ id="g3421"
+ transform="translate(-10.607738,-0.107933)">
+ <svg:text
+ id="text3373"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3375"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:text
+ id="text3369"
+ y="62.884827"
+ x="60.974926"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#ffffff"
+ y="62.884827"
+ x="60.974926"
+ id="tspan3371"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2578">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2580"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2582"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2584"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3387"
+ transform="matrix(0.9343643,0.2522239,-0.2522239,0.9343643,17.542005,-10.333641)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3389"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3391"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3393"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient3405);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3395"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient3407);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3397"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient3409);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3399"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient3411);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3401"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient3413);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3403"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient3415);fill-opacity:1" />
+ </svg:g>
+ <svg:path
+ style="fill:#ff2900;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3467)"
+ d="M 49.05786,72.689782 L 47.73232,75.119942 L 45.74401,73.573476 L 47.06955,70.922393 L 46.40678,68.93408 L 44.19754,68.93408 L 40.66277,68.713156 C 40.66277,68.713156 39.77907,67.166691 40.88369,66.724843 C 41.98831,66.282996 42.65108,64.73653 42.65108,64.73653 L 43.7557,62.748218 L 41.98831,60.538981 L 40,62.085447 L 43.7557,58.108821 L 47.06955,56.120508 C 47.06955,56.120508 48.39509,55.236814 49.05786,56.120508 C 49.72064,57.004203 50.38341,58.108821 50.38341,58.992516 C 50.38341,59.87621 50.16248,61.864523 50.16248,61.864523 C 50.16248,61.864523 50.60433,48.830027 50.82525,47.504485 C 51.04618,46.178944 53.03449,59.213439 53.03449,59.213439 L 54.58096,64.07376 C 54.58096,64.07376 55.9065,63.852836 56.56927,62.969141 C 57.23204,62.085447 56.79019,59.655287 59.88312,58.771592 C 62.97605,57.887897 59.88312,62.30637 59.88312,62.30637 C 59.88312,62.30637 64.96437,65.841149 63.85975,66.062073 C 62.75513,66.282996 60.76682,64.957454 60.76682,64.957454 C 60.76682,64.957454 58.55758,66.724843 58.33666,67.608538 C 58.11573,68.492232 56.12742,72.247935 56.12742,72.247935 L 54.13911,67.608538 L 49.05786,72.689782 z"
+ id="path3461"
+ sodipodi:nodetypes="cccccccsccccccsscsccsscscsccc" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect3449"
+ width="4.8698936"
+ height="15.296017"
+ x="49.27401"
+ y="84.703979" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3457)"
+ id="rect3451"
+ width="4.8698936"
+ height="15.296017"
+ x="49.703037"
+ y="71.585167"
+ transform="matrix(1,0,0,1.5632854,-0.4290325,-47.087196)" />
+ <svg:g
+ style="display:inline"
+ id="g3427"
+ transform="translate(7.8125e-3,4.3280602)">
+ <svg:text
+ id="text3429"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3431"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:text
+ id="text3433"
+ y="58.908203"
+ x="27.394531"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="58.908203"
+ x="27.394531"
+ id="tspan3435"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3437"
+ transform="translate(-10.607739,-0.1079335)">
+ <svg:text
+ id="text3439"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3441"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:text
+ id="text3443"
+ y="62.884827"
+ x="60.974926"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#ffffff"
+ y="62.884827"
+ x="60.974926"
+ id="tspan3445"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2602">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2604"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2606"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2608"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3538"
+ transform="translate(-1.3317614,1.3317617)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3534"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3490"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ style="fill:url(#linearGradient3530);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3492"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ style="fill:url(#linearGradient3527);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3494"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ style="fill:url(#linearGradient3524);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3500"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ style="fill:url(#linearGradient3515);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g3599"
+ transform="translate(1.6647021,0.6658808)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3595"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccsccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3551"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ style="fill:url(#linearGradient3591);fill-opacity:1"
+ sodipodi:nodetypes="ccccccsccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3557"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ style="fill:url(#linearGradient3582);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3559"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ style="fill:url(#linearGradient3579);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3635"
+ transform="translate(-9.9921875,4.32806)">
+ <svg:text
+ id="text3637"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3639"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:text
+ id="text3641"
+ y="58.908203"
+ x="27.394531"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="58.908203"
+ x="27.394531"
+ id="tspan3643"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ </svg:g>
+ <svg:path
+ style="fill:#ff2900;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3467)"
+ d="M 48.059039,63.034514 L 46.733499,65.464674 L 44.745189,63.918208 L 46.070729,61.267125 L 45.407959,59.278812 L 43.198719,59.278812 L 39.663949,59.057888 C 39.663949,59.057888 38.780249,57.511423 39.884869,57.069575 C 40.989489,56.627728 41.652259,55.081262 41.652259,55.081262 L 42.756879,53.09295 L 40.989489,50.883713 L 39.001179,52.430179 L 42.756879,48.453553 L 46.070729,46.46524 C 46.070729,46.46524 47.396269,45.581545 48.059039,46.46524 C 48.721819,47.348935 49.384589,48.453553 49.384589,49.337248 C 49.384589,50.220942 49.163659,52.209255 49.163659,52.209255 C 49.163659,52.209255 49.605509,39.174758 49.826429,37.849216 C 50.047359,36.523676 52.035669,49.558171 52.035669,49.558171 L 53.582139,54.418492 C 53.582139,54.418492 54.907679,54.197568 55.570449,53.313873 C 56.233219,52.430179 55.791369,50.000019 58.884299,49.116324 C 61.977229,48.232629 58.884299,52.651102 58.884299,52.651102 C 58.884299,52.651102 63.965549,56.185881 62.860929,56.406805 C 61.756309,56.627728 59.767999,55.302186 59.767999,55.302186 C 59.767999,55.302186 57.558759,57.069575 57.337839,57.95327 C 57.116909,58.836964 55.128599,62.592667 55.128599,62.592667 L 53.140289,57.95327 L 48.059039,63.034514 z"
+ id="path3655"
+ sodipodi:nodetypes="cccccccsccccccsscsccsscscsccc"
+ transform="matrix(1.2633925,0,0,1.588741,-10.272619,-38.541737)" />
+ <svg:g
+ style="display:inline"
+ id="g3645"
+ transform="translate(-0.607739,-0.107933)">
+ <svg:text
+ id="text3647"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3649"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:text
+ id="text3651"
+ y="62.884827"
+ x="60.974926"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#ffffff"
+ y="62.884827"
+ x="60.974926"
+ id="tspan3653"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ </svg:g>
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect3657"
+ width="4.8698936"
+ height="50.587704"
+ x="49.27401"
+ y="49.412296" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3661)"
+ id="rect3659"
+ width="4.8698936"
+ height="15.296017"
+ x="49.703037"
+ y="71.585167"
+ transform="matrix(1,0,0,5.7424492,-0.42903,-410.1779)" />
+ <svg:g
+ id="g3698"
+ transform="matrix(8.3272479e-2,0.1240629,-7.1234808e-2,8.2971267e-2,37.191247,-11.766434)"
+ inkscape:transform-center-x="1.7691976"
+ inkscape:transform-center-y="-3.1435777"
+ style="opacity:0.8">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3667"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3669"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3702);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.8;display:inline"
+ id="g3704"
+ transform="matrix(-9.5662187e-2,0.114274,-9.8108871e-2,2.7320451e-2,75.908459,4.2086986)"
+ inkscape:transform-center-x="-2.5942151"
+ inkscape:transform-center-y="-2.9680753">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3706"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3708"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3710);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3712"
+ transform="matrix(0.103136,-5.6086288e-2,2.3755927e-2,8.82459e-2,49.824618,11.691195)"
+ inkscape:transform-center-x="2.6833454"
+ inkscape:transform-center-y="0.91728334"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3714"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3716"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3718);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3720"
+ transform="matrix(0.1257006,-3.9359796e-2,2.8953367e-2,6.1928516e-2,32.835552,19.665383)"
+ inkscape:transform-center-x="3.2704224"
+ inkscape:transform-center-y="0.6437239"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3722"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3724"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3726);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3728"
+ transform="matrix(1.7486134e-3,0.1187259,-9.0611927e-2,-8.270231e-3,59.772043,-9.2932542)"
+ inkscape:transform-center-x="-0.47212312"
+ inkscape:transform-center-y="-3.0621527"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3730"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3732"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3734);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3736">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3738"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3740"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3742"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3766"
+ transform="translate(-20.058613,4.3280564)">
+ <svg:text
+ id="text3768"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3770"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:g
+ id="g3866">
+ <svg:g
+ transform="translate(8.660428,-2.996298)"
+ id="g3744"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3746"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient3882);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3748"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3884);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3750"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3886);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3752"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3888);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3754"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="27.394531"
+ y="58.908203"
+ id="text3772"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3774"
+ x="27.394531"
+ y="58.908203"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3778"
+ transform="translate(11.39226,-0.1079366)">
+ <svg:text
+ id="text3780"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3782"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:g
+ id="g3851">
+ <svg:g
+ transform="translate(2.27244,0.773814)"
+ id="g3756"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path3758"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient3876);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path3760"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3878);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path3762"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3880);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path3764"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="60.974926"
+ y="62.884827"
+ id="text3784"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3786"
+ x="60.974926"
+ y="62.884827"
+ style="fill:#ffffff">b</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(-4.8551223e-7,-952.36218)"
+ style="display:inline"
+ id="g3891">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3893"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3895"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3897"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3899"
+ transform="translate(-32.058613,4.3280564)">
+ <svg:text
+ id="text3901"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3903"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:g
+ id="g3905">
+ <svg:g
+ transform="translate(8.660428,-2.996298)"
+ id="g3907"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3909"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient3945);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3911"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3947);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3913"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3949);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3915"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3951);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3917"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="27.394531"
+ y="58.908203"
+ id="text3919"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3921"
+ x="27.394531"
+ y="58.908203"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3923"
+ transform="translate(21.39226,-0.1079366)">
+ <svg:text
+ id="text3925"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3927"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:g
+ id="g3929">
+ <svg:g
+ transform="translate(2.27244,0.773814)"
+ id="g3931"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path3933"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient3953);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path3935"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3955);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path3937"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3957);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path3939"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="60.974926"
+ y="62.884827"
+ id="text3941"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3943"
+ x="60.974926"
+ y="62.884827"
+ style="fill:#ffffff">b</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(-4.8551223e-7,-952.36218)"
+ style="display:inline"
+ id="g3960">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3962"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3964"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3966"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3968"
+ transform="translate(-46.058613,4.3280574)">
+ <svg:text
+ id="text3970"
+ y="60.105534"
+ x="29.009325"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono"
+ y="60.105534"
+ x="29.009325"
+ id="tspan3972"
+ sodipodi:role="line">a</svg:tspan></svg:text>
+ <svg:g
+ id="g3974">
+ <svg:g
+ transform="translate(8.660428,-2.996298)"
+ id="g3976"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3978"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient4014);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3980"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient4016);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3982"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient4018);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3984"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient4020);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3986"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="27.394531"
+ y="58.908203"
+ id="text3988"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3990"
+ x="27.394531"
+ y="58.908203"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3992"
+ transform="translate(33.392258,-0.1079356)">
+ <svg:text
+ id="text3994"
+ y="64.541527"
+ x="62.137917"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="fill:#000000"
+ y="64.541527"
+ x="62.137917"
+ id="tspan3996"
+ sodipodi:role="line">b</svg:tspan></svg:text>
+ <svg:g
+ id="g3998">
+ <svg:g
+ transform="translate(2.27244,0.773814)"
+ id="g4000"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path4002"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient4022);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path4004"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient4024);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path4006"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient4026);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path4008"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="60.974926"
+ y="62.884827"
+ id="text4010"><svg:tspan
+ sodipodi:role="line"
+ id="tspan4012"
+ x="60.974926"
+ y="62.884827"
+ style="fill:#ffffff">b</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/factors0.png b/data/images/sprites/factors0.png
new file mode 100644
index 0000000..0d7ef7c
Binary files /dev/null and b/data/images/sprites/factors0.png differ
diff --git a/data/images/sprites/factors1.png b/data/images/sprites/factors1.png
new file mode 100644
index 0000000..58db5ff
Binary files /dev/null and b/data/images/sprites/factors1.png differ
diff --git a/data/images/sprites/factors2.png b/data/images/sprites/factors2.png
new file mode 100644
index 0000000..837a75f
Binary files /dev/null and b/data/images/sprites/factors2.png differ
diff --git a/data/images/sprites/factors3.png b/data/images/sprites/factors3.png
new file mode 100644
index 0000000..a259599
Binary files /dev/null and b/data/images/sprites/factors3.png differ
diff --git a/data/images/sprites/factors4.png b/data/images/sprites/factors4.png
new file mode 100644
index 0000000..053623d
Binary files /dev/null and b/data/images/sprites/factors4.png differ
diff --git a/data/images/sprites/factors5.png b/data/images/sprites/factors5.png
new file mode 100644
index 0000000..968afe9
Binary files /dev/null and b/data/images/sprites/factors5.png differ
diff --git a/data/images/sprites/factorsd.png b/data/images/sprites/factorsd.png
new file mode 100644
index 0000000..4dafc77
Binary files /dev/null and b/data/images/sprites/factorsd.png differ
diff --git a/data/images/sprites/fleet.svg b/data/images/sprites/fleet.svg
new file mode 100644
index 0000000..288f052
--- /dev/null
+++ b/data/images/sprites/fleet.svg
@@ -0,0 +1,4027 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="fleet.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>1 frame</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="287.00504"
+ x2="-43.285713"
+ y1="287.00504"
+ x1="-100.28571"
+ id="linearGradient5159"
+ xlink:href="#linearGradient5153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4373"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4371"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4361"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4359"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4357"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4355"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4353"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4351"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4349"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4308"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4306"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4304"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4302"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4300"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4298"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3179">
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:0;"
+ offset="1"
+ id="stop3183" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3191"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient3192"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ id="linearGradient3176">
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:1;"
+ offset="0"
+ id="stop3178" />
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:0;"
+ offset="1"
+ id="stop3180" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3163">
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:1;"
+ offset="0"
+ id="stop3165" />
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:0;"
+ offset="1"
+ id="stop3167" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3622" />
+ <inkscape:perspective
+ id="perspective2650"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient5153">
+ <svg:stop
+ id="stop5155"
+ offset="0"
+ style="stop-color:#41fffb;stop-opacity:1;" />
+ <svg:stop
+ id="stop5157"
+ offset="1"
+ style="stop-color:#fffffb;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5161">
+ <svg:stop
+ id="stop5163"
+ offset="0"
+ style="stop-color:#19e6ec;stop-opacity:1;" />
+ <svg:stop
+ id="stop5165"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5167">
+ <svg:stop
+ id="stop5169"
+ offset="0"
+ style="stop-color:#00deff;stop-opacity:1;" />
+ <svg:stop
+ id="stop5171"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3577">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.9258737"
+ id="feGaussianBlur3579" />
+ </svg:filter>
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:filter
+ id="filter3563"
+ inkscape:collect="always">
+ <svg:feGaussianBlur
+ id="feGaussianBlur3565"
+ stdDeviation="14.901949"
+ inkscape:collect="always" />
+ </svg:filter>
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2607"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2605"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2815"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2817"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1093933,0,0,0.127295,7.4520452,976.20349)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient2893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2911"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2913"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2915"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2917"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2919"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2921"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2923"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2927"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2929"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2931"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2935"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2943"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2953"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient2959"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient2963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2965"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2967"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2969"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2971"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2973"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient2979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient3162"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient3164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1093933,0,0,0.127295,7.4520452,976.20349)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient3166"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3168"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3172"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3174"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3177"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3180"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3182"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3186"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3188"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3190"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3192"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3194"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3216"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3218"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3220"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3222"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3224"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3226"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3228"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3230"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3234"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3238"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.8943143"
+ inkscape:cx="-101.97581"
+ inkscape:cy="21.111777"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2982">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2984"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2986"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2988"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.9;fill:#000000;fill-opacity:1;display:inline;filter:url(#filter3577)"
+ id="g2990"
+ transform="translate(5.424691,-948.46491)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000000;fill-opacity:1"
+ transform="matrix(0.1093933,0,0,0.1124675,6.7957562,956.54997)"
+ id="g2992">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1"
+ id="path2994"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000000;fill-opacity:1"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2996" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.1124675,-0.1093933,0,94.912571,956.54429)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2998"
+ style="fill:#000000;fill-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path3000"
+ d="M 49.95136,982.74816 C 47.449324,983.91997 46.427082,986.8902 46.243672,989.5292 C 44.386533,999.62302 38.980716,1008.7107 32.151013,1016.0772 C 26.749435,1022.1817 20.233788,1027.0706 13.783183,1031.9211 C 12.790546,1034.0095 14.831823,1036.5714 16.987483,1036.3492 C 23.679817,1037.9384 30.743849,1036.017 37.340665,1038.2242 C 41.045047,1039.6011 44.602655,1041.9435 48.679436,1041.7911 C 53.12148,1041.6948 57.005237,1039.2009 61.008869,1037.5293 C 64.835471,1035.8435 69.017407,1034.6235 73.214537,1035.1685 C 76.64057,1035.433 80.234305,1036.2467 83.562463,1034.9823 C 85.285378,1033.9123 84.685461,1030.8519 82.779699,1030.379 C 77.828234,1027.1406 72.471726,1024.3186 68.489939,1019.774 C 64.593388,1015.6096 61.145814,1010.9644 58.466946,1005.8778 C 55.912462,1000.779 54.576842,995.15489 53.636547,989.53482 C 53.096159,987.16461 52.496175,984.55825 50.658999,982.87819 C 50.439378,982.77311 50.193382,982.71952 49.95136,982.74816 z"
+ style="fill:#000000;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ transform="translate(0.711876,-952.69841)"
+ style="display:inline"
+ id="g3002">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#00b0b4;fill-opacity:1"
+ transform="matrix(0.1093933,0,0,0.1124675,6.7957562,956.54997)"
+ id="g3004">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#00b0b4;fill-opacity:1"
+ id="path3006"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#00b0b4;fill-opacity:1"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path3008" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.1124675,-0.1093933,0,94.912571,956.54429)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path3010"
+ style="fill:url(#radialGradient3162);fill-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path3012"
+ d="M 49.95136,982.74816 C 47.449324,983.91997 46.427082,986.8902 46.243672,989.5292 C 44.386533,999.62302 38.980716,1008.7107 32.151013,1016.0772 C 26.749435,1022.1817 20.233788,1027.0706 13.783183,1031.9211 C 12.790546,1034.0095 14.831823,1036.5714 16.987483,1036.3492 C 23.679817,1037.9384 30.743849,1036.017 37.340665,1038.2242 C 41.045047,1039.6011 44.602655,1041.9435 48.679436,1041.7911 C 53.12148,1041.6948 57.005237,1039.2009 61.008869,1037.5293 C 64.835471,1035.8435 69.017407,1034.6235 73.214537,1035.1685 C 76.64057,1035.433 80.234305,1036.2467 83.562463,1034.9823 C 85.285378,1033.9123 84.685461,1030.8519 82.779699,1030.379 C 77.828234,1027.1406 72.471726,1024.3186 68.489939,1019.774 C 64.593388,1015.6096 61.145814,1010.9644 58.466946,1005.8778 C 55.912462,1000.779 54.576842,995.15489 53.636547,989.53482 C 53.096159,987.16461 52.496175,984.55825 50.658999,982.87819 C 50.439378,982.77311 50.193382,982.71952 49.95136,982.74816 z"
+ style="fill:url(#radialGradient3164);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3014"
+ transform="matrix(6.1135219e-2,0,0,6.1135219e-2,33.006055,44.650549)">
+ <svg:g
+ style="display:none"
+ inkscape:label="shadow2"
+ id="g3016">
+ <svg:path
+ d="M 0,611.00469 C 0,653.7537 129.41776,688.40863 289.06266,688.40863 C 448.70754,688.40863 578.12532,653.7537 578.12532,611.00469 C 578.12532,568.25568 448.70754,533.60077 289.06266,533.60077 C 129.41776,533.60077 0,568.25568 0,611.00469 z"
+ id="path3018"
+ style="fill:url(#radialGradient3166);stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="shadow"
+ id="g3020">
+ <svg:path
+ id="path3022"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="body"
+ id="g3024">
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3026">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3028" />
+ <svg:path
+ style="fill:url(#linearGradient3168);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3030" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3032" />
+ <svg:path
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:1.26498997"
+ id="path3034"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3172);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3036" />
+ <svg:path
+ style="fill:url(#linearGradient3174);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3038" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3040" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3177);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3042" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3180);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3044" />
+ <svg:path
+ style="fill:url(#linearGradient3182);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3046" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3048" />
+ <svg:path
+ style="fill:url(#linearGradient3186);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3050" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3188);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3052" />
+ <svg:path
+ style="fill:url(#linearGradient3190);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3054" />
+ <svg:path
+ style="fill:url(#linearGradient3192);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3056" />
+ <svg:path
+ style="fill:url(#linearGradient3194);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3058" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3060" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3196);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3062" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g3064">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path3066"
+ style="fill:url(#linearGradient3198);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path3068"
+ style="fill:url(#linearGradient3200);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3070"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3072"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path3074"
+ style="fill:url(#linearGradient3202);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path3076"
+ style="fill:url(#linearGradient3204);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame1"
+ id="g3078">
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 361.85468,127.67443 359.00739,118.24128 357.00895,114.86192 C 355.89587,112.9797 347.27105,112.19826 339.85502,111.76885 C 331.55177,111.28806 321.52642,113.19669 319.72949,114.88767 C 317.92276,116.58787 314.73576,126.38584 314.16831,133.61019 z"
+ id="path3080"
+ style="fill:url(#linearGradient3206);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 228.91667,114.09809 230.38619,112.5739 C 232.54915,110.33047 249.46451,107.81662 256.9201,107.46145 C 265.42816,107.05613 281.71312,107.50204 283.80551,109.29 C 285.65087,110.86686 290.71918,125.29676 290.51788,135.15074 z"
+ id="path3082"
+ style="fill:url(#linearGradient3208);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3084"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3086"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path3088"
+ style="fill:url(#linearGradient3210);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path3090"
+ style="fill:url(#linearGradient3212);stroke:none;stroke-width:4.12025976;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame2"
+ id="g3092">
+ <svg:path
+ sodipodi:nodetypes="cccsc"
+ d="M 314.16831,133.61019 C 314.29181,154.36704 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 361.90297,156.48561 361.35673,136.34258 C 359.1013,136.26549 352.88574,136.61422 339.85502,135.8597 C 326.82429,135.10517 314.0448,131.82755 314.16831,133.61019 z"
+ id="path3094"
+ style="fill:url(#linearGradient3214);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ d="M 290.51788,135.15074 C 290.89516,158.85246 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.88427,156.82455 225.01154,133.35969 C 225.01964,131.86711 249.46169,133.54777 262.24994,133.89742 C 272.68072,134.18262 290.71918,133.18492 290.51788,135.15074 z"
+ id="path3096"
+ style="fill:url(#linearGradient3216);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3098"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3100"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cssc"
+ d="M 272.10899,134.17243 C 271.95738,141.29898 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.11387,141.57602 254.73332,134.42518 C 254.67174,133.26805 272.4738,133.65486 272.10899,134.17243 z"
+ id="path3102"
+ style="fill:url(#linearGradient3218);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cssc"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.82508,142.37083 345.59316,136.4163 C 345.78597,134.92152 333.72754,134.51079 332.68196,134.9396 z"
+ id="path3104"
+ style="fill:url(#linearGradient3220);stroke:none;stroke-width:4.12025976;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame3"
+ id="g3106" />
+ <svg:g
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="g3108">
+ <svg:path
+ id="path3110"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3222);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path3112"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path3114"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient3224);stroke:none" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame4"
+ id="g3116">
+ <svg:path
+ id="path3118"
+ d="M 338.85129,160.67176 C 329.91754,152.20926 307.83754,126.83926 266.40004,153.47801 C 258.69754,158.49051 252.44754,158.94926 237.62379,165.29676 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.78301 339.68129,161.45801 338.85129,160.67176 z"
+ style="fill:url(#linearGradient3226);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path3120"
+ d="M 324.76632,158.35216 C 320.27883,154.3195 306.12379,143.25322 287.35191,154.58278 C 283.39686,156.82606 279.31247,159.2677 273.23831,162.60283 C 261.20678,169.60072 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40067 C 329.56462,162.01789 325.18324,158.72683 324.76632,158.35216 z"
+ style="fill:url(#linearGradient3228);stroke:none;display:inline" />
+ <svg:path
+ id="path3122"
+ d="M 265.875,171.875 C 256.47389,171.95554 246.74579,182.59415 239.84375,184.34375 L 237.21875,184.3125 C 237.70756,184.34124 238.24774,184.42388 238.78125,184.53125 C 238.61143,184.55093 238.44706,184.58754 238.28125,184.59375 L 239.03125,184.59375 C 252.0621,187.46313 277.76657,211.9375 304.8125,211.9375 C 333.15376,211.9375 349.85875,185.78125 354.21875,185.78125 L 353.5625,185.78125 L 353.46875,185.78125 C 350.74993,185.51397 339.47792,172.52285 332.65625,172.34375 C 324.28987,172.1241 306.641,181.90625 300.09375,181.90625 C 291.30804,181.90625 278.12176,171.77225 265.875,171.875 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ id="path3124"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ style="fill:url(#linearGradient3230);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ id="path3126"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ style="fill:url(#linearGradient3232);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3128"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ style="fill:url(#radialGradient3234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame5"
+ id="g3130">
+ <svg:path
+ id="path3132"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3236);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path3134"
+ d="M 301.375,150.5 C 273.91941,150.5 244.17136,182.32401 238.375,184.3125 L 238.3125,184.3125 L 237.21875,184.3125 C 237.45623,184.32646 237.72063,184.37333 237.96875,184.40625 C 250.62831,186.08577 277.01605,211.9375 304.8125,211.9375 C 332.20521,211.9375 348.73745,187.51092 353.75,185.875 L 354.875,185.875 C 354.65566,185.86175 354.43846,185.81549 354.21875,185.78125 L 354.1875,185.78125 C 342.04133,183.83524 329.18955,150.5 301.375,150.5 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3136"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ style="fill:url(#radialGradient3238);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <svg:path
+ id="path3138"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ style="fill:url(#linearGradient3240);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ id="path3140"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ style="fill:url(#linearGradient3242);stroke:none;stroke-width:0.93138498;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame6"
+ id="g3142">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305384 339.85502,98.550864 C 326.82429,97.796334 315.32396,113.49292 314.16831,133.61019 z"
+ id="path3144"
+ style="fill:url(#linearGradient3244);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761874 258.62565,92.111524 C 269.05643,92.396714 278.22021,98.924644 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path3146"
+ style="fill:url(#linearGradient3246);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3148"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3150"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path3152"
+ style="fill:url(#linearGradient3248);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path3154"
+ style="fill:url(#linearGradient3250);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3156"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3252);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path3158"
+ d="M 265.87475,171.87463 C 256.47364,171.95517 246.74554,182.59378 239.8435,184.34338 L 237.2185,184.31213 C 237.70731,184.34087 238.24749,184.42351 238.781,184.53088 C 238.61118,184.55056 238.44681,184.58717 238.281,184.59338 L 239.031,184.59338 C 252.06185,187.46276 277.76632,211.93713 304.81225,211.93713 C 333.15351,211.93713 349.8585,185.78088 354.2185,185.78088 L 353.56225,185.78088 L 353.4685,185.78088 C 350.74968,185.5136 339.47767,172.52248 332.656,172.34338 C 324.28962,172.12373 306.64075,181.90588 300.0935,181.90588 C 291.30779,181.90588 278.12151,171.77188 265.87475,171.87463 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3160"
+ d="M 276.99975,203.10139 C 277.42239,203.10139 278.46486,199.56398 281.21364,196.39448 C 284.01125,193.16867 284.81034,192.03244 287.78926,191.19338 C 290.76818,190.35432 295.86748,192.58702 299.94928,192.66092 C 304.03108,192.73482 312.96245,188.4849 315.34678,192.29017 C 318.60697,195.37826 318.37974,196.78578 319.4955,198.91129 C 320.61126,201.03681 322.73807,206.43234 322.73807,206.43234 C 322.73807,206.43234 314.52142,210.94477 301.27205,210.35513 C 287.85858,209.75819 276.99975,203.10139 276.99975,203.10139 z"
+ style="fill:url(#radialGradient3254);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.9;fill:#000000;fill-opacity:1;display:inline;filter:url(#filter3577)"
+ id="g3549"
+ transform="translate(5.4246909,-948.46491)">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#000000;fill-opacity:1"
+ transform="matrix(0.1093933,0,0,0.1124675,6.7957562,956.54997)"
+ id="g3551">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1"
+ id="path3553"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#000000;fill-opacity:1"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path3555" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.1124675,-0.1093933,0,94.912571,956.54429)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path3557"
+ style="fill:#000000;fill-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path3559"
+ d="M 49.95136,982.74816 C 47.449324,983.91997 46.427082,986.8902 46.243672,989.5292 C 44.386533,999.62302 38.980716,1008.7107 32.151013,1016.0772 C 26.749435,1022.1817 20.233788,1027.0706 13.783183,1031.9211 C 12.790546,1034.0095 14.831823,1036.5714 16.987483,1036.3492 C 23.679817,1037.9384 30.743849,1036.017 37.340665,1038.2242 C 41.045047,1039.6011 44.602655,1041.9435 48.679436,1041.7911 C 53.12148,1041.6948 57.005237,1039.2009 61.008869,1037.5293 C 64.835471,1035.8435 69.017407,1034.6235 73.214537,1035.1685 C 76.64057,1035.433 80.234305,1036.2467 83.562463,1034.9823 C 85.285378,1033.9123 84.685461,1030.8519 82.779699,1030.379 C 77.828234,1027.1406 72.471726,1024.3186 68.489939,1019.774 C 64.593388,1015.6096 61.145814,1010.9644 58.466946,1005.8778 C 55.912462,1000.779 54.576842,995.15489 53.636547,989.53482 C 53.096159,987.16461 52.496175,984.55825 50.658999,982.87819 C 50.439378,982.77311 50.193382,982.71952 49.95136,982.74816 z"
+ style="fill:#000000;fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ transform="translate(0.7118759,-952.69841)"
+ style="display:inline"
+ id="g3542">
+ <svg:g
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/ship.png"
+ style="fill:#00b0b4;fill-opacity:1"
+ transform="matrix(0.1093933,0,0,0.1124675,6.7957562,956.54997)"
+ id="g2398">
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#00b0b4;fill-opacity:1"
+ id="path2400"
+ sodipodi:cx="364.28571"
+ sodipodi:cy="409.50504"
+ sodipodi:rx="341.42856"
+ sodipodi:ry="28.571428"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ transform="matrix(0,1,-1,0,808.07646,-0.4949586)" />
+ <svg:path
+ transform="translate(8.5714283,225.71428)"
+ style="fill:#00b0b4;fill-opacity:1"
+ d="M 388.5,6.78125 C 365.62807,17.200628 356.28343,43.610425 354.60685,67.075018 C 337.63014,156.82365 288.21381,237.62597 225.78125,303.125 C 176.40367,357.40333 116.84207,400.87242 57.875,444 C 48.800952,462.56908 67.460953,485.34861 87.166523,483.37279 C 148.34333,497.50292 212.91794,480.4189 273.22156,500.0443 C 307.08449,512.28683 339.60577,533.11447 376.87295,531.75919 C 417.47912,530.90269 452.98181,508.72884 489.58026,493.86508 C 524.56048,478.87608 562.78892,468.02892 601.15625,472.875 C 632.47474,475.22629 665.32623,482.46189 695.75,471.21875 C 711.49972,461.70555 706.01571,434.49371 688.5945,430.2896 C 643.33158,401.49483 594.36596,376.40324 557.96714,335.99566 C 522.34754,298.96777 490.83216,257.66488 466.34375,212.4375 C 442.99238,167.10265 430.78303,117.09563 422.1875,67.125 C 417.24762,46.050493 411.76297,22.875963 394.96875,7.9375 C 392.96114,7.0033539 390.71243,6.5269346 388.5,6.78125 z"
+ id="path2402" />
+ </svg:g>
+ <svg:path
+ transform="matrix(0,0.1124675,-0.1093933,0,94.912571,956.54429)"
+ d="M 705.71426,409.50504 A 341.42856,28.571428 0 1 1 22.857147,409.50504 A 341.42856,28.571428 0 1 1 705.71426,409.50504 z"
+ sodipodi:ry="28.571428"
+ sodipodi:rx="341.42856"
+ sodipodi:cy="409.50504"
+ sodipodi:cx="364.28571"
+ id="path2383"
+ style="fill:url(#radialGradient2815);fill-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ id="path4961"
+ d="M 49.95136,982.74816 C 47.449324,983.91997 46.427082,986.8902 46.243672,989.5292 C 44.386533,999.62302 38.980716,1008.7107 32.151013,1016.0772 C 26.749435,1022.1817 20.233788,1027.0706 13.783183,1031.9211 C 12.790546,1034.0095 14.831823,1036.5714 16.987483,1036.3492 C 23.679817,1037.9384 30.743849,1036.017 37.340665,1038.2242 C 41.045047,1039.6011 44.602655,1041.9435 48.679436,1041.7911 C 53.12148,1041.6948 57.005237,1039.2009 61.008869,1037.5293 C 64.835471,1035.8435 69.017407,1034.6235 73.214537,1035.1685 C 76.64057,1035.433 80.234305,1036.2467 83.562463,1034.9823 C 85.285378,1033.9123 84.685461,1030.8519 82.779699,1030.379 C 77.828234,1027.1406 72.471726,1024.3186 68.489939,1019.774 C 64.593388,1015.6096 61.145814,1010.9644 58.466946,1005.8778 C 55.912462,1000.779 54.576842,995.15489 53.636547,989.53482 C 53.096159,987.16461 52.496175,984.55825 50.658999,982.87819 C 50.439378,982.77311 50.193382,982.71952 49.95136,982.74816 z"
+ style="fill:url(#radialGradient2817);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4338"
+ transform="matrix(6.1135219e-2,0,0,6.1135219e-2,33.006055,44.650554)">
+ <svg:g
+ style="display:none"
+ inkscape:label="shadow2"
+ id="layer9">
+ <svg:path
+ d="M 0,611.00469 C 0,653.7537 129.41776,688.40863 289.06266,688.40863 C 448.70754,688.40863 578.12532,653.7537 578.12532,611.00469 C 578.12532,568.25568 448.70754,533.60077 289.06266,533.60077 C 129.41776,533.60077 0,568.25568 0,611.00469 z"
+ id="path175"
+ style="fill:url(#radialGradient2893);stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="shadow"
+ id="layer3">
+ <svg:path
+ id="path2662"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="body"
+ id="g4344">
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g2563">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path106" />
+ <svg:path
+ style="fill:url(#linearGradient2895);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path113" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path111" />
+ <svg:path
+ style="fill:url(#linearGradient2897);stroke:none;stroke-width:1.26498997"
+ id="path114"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient2899);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path128" />
+ <svg:path
+ style="fill:url(#linearGradient2901);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path112" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path109" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2903);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path125" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2905);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path127" />
+ <svg:path
+ style="fill:url(#linearGradient2907);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path129" />
+ <svg:path
+ style="fill:url(#linearGradient2909);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path131" />
+ <svg:path
+ style="fill:url(#linearGradient2911);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path132" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2913);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path177" />
+ <svg:path
+ style="fill:url(#linearGradient2915);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path133" />
+ <svg:path
+ style="fill:url(#linearGradient2917);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path134" />
+ <svg:path
+ style="fill:url(#linearGradient2919);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path135" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path136" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2921);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path137" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g4365">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2609"
+ style="fill:url(#linearGradient2923);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2611"
+ style="fill:url(#linearGradient2925);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2613"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2615"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2617"
+ style="fill:url(#linearGradient2927);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2619"
+ style="fill:url(#linearGradient2929);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame1"
+ id="layer6">
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 361.85468,127.67443 359.00739,118.24128 357.00895,114.86192 C 355.89587,112.9797 347.27105,112.19826 339.85502,111.76885 C 331.55177,111.28806 321.52642,113.19669 319.72949,114.88767 C 317.92276,116.58787 314.73576,126.38584 314.16831,133.61019 z"
+ id="path2630"
+ style="fill:url(#linearGradient2931);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 228.91667,114.09809 230.38619,112.5739 C 232.54915,110.33047 249.46451,107.81662 256.9201,107.46145 C 265.42816,107.05613 281.71312,107.50204 283.80551,109.29 C 285.65087,110.86686 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2632"
+ style="fill:url(#linearGradient2933);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2634"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2636"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2638"
+ style="fill:url(#linearGradient2935);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2640"
+ style="fill:url(#linearGradient2937);stroke:none;stroke-width:4.12025976;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame2"
+ id="layer7">
+ <svg:path
+ sodipodi:nodetypes="cccsc"
+ d="M 314.16831,133.61019 C 314.29181,154.36704 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 361.90297,156.48561 361.35673,136.34258 C 359.1013,136.26549 352.88574,136.61422 339.85502,135.8597 C 326.82429,135.10517 314.0448,131.82755 314.16831,133.61019 z"
+ id="path2651"
+ style="fill:url(#linearGradient2939);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssc"
+ d="M 290.51788,135.15074 C 290.89516,158.85246 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.88427,156.82455 225.01154,133.35969 C 225.01964,131.86711 249.46169,133.54777 262.24994,133.89742 C 272.68072,134.18262 290.71918,133.18492 290.51788,135.15074 z"
+ id="path2653"
+ style="fill:url(#linearGradient2941);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2655"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2657"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cssc"
+ d="M 272.10899,134.17243 C 271.95738,141.29898 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.11387,141.57602 254.73332,134.42518 C 254.67174,133.26805 272.4738,133.65486 272.10899,134.17243 z"
+ id="path2659"
+ style="fill:url(#linearGradient2943);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cssc"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.82508,142.37083 345.59316,136.4163 C 345.78597,134.92152 333.72754,134.51079 332.68196,134.9396 z"
+ id="path2661"
+ style="fill:url(#linearGradient2945);stroke:none;stroke-width:4.12025976;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame3"
+ id="layer8" />
+ <svg:g
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="layer5">
+ <svg:path
+ id="path2599"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2947);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2601"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2603"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient2949);stroke:none" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame4"
+ id="layer10">
+ <svg:path
+ id="path2610"
+ d="M 338.85129,160.67176 C 329.91754,152.20926 307.83754,126.83926 266.40004,153.47801 C 258.69754,158.49051 252.44754,158.94926 237.62379,165.29676 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.78301 339.68129,161.45801 338.85129,160.67176 z"
+ style="fill:url(#linearGradient2951);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path2614"
+ d="M 324.76632,158.35216 C 320.27883,154.3195 306.12379,143.25322 287.35191,154.58278 C 283.39686,156.82606 279.31247,159.2677 273.23831,162.60283 C 261.20678,169.60072 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40067 C 329.56462,162.01789 325.18324,158.72683 324.76632,158.35216 z"
+ style="fill:url(#linearGradient2953);stroke:none;display:inline" />
+ <svg:path
+ id="path2612"
+ d="M 265.875,171.875 C 256.47389,171.95554 246.74579,182.59415 239.84375,184.34375 L 237.21875,184.3125 C 237.70756,184.34124 238.24774,184.42388 238.78125,184.53125 C 238.61143,184.55093 238.44706,184.58754 238.28125,184.59375 L 239.03125,184.59375 C 252.0621,187.46313 277.76657,211.9375 304.8125,211.9375 C 333.15376,211.9375 349.85875,185.78125 354.21875,185.78125 L 353.5625,185.78125 L 353.46875,185.78125 C 350.74993,185.51397 339.47792,172.52285 332.65625,172.34375 C 324.28987,172.1241 306.641,181.90625 300.09375,181.90625 C 291.30804,181.90625 278.12176,171.77225 265.875,171.875 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ id="path3412"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ style="fill:url(#linearGradient2955);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ id="path3414"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ style="fill:url(#linearGradient2957);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3397"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ style="fill:url(#radialGradient2959);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame5"
+ id="g4475">
+ <svg:path
+ id="path2596"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2961);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path2598"
+ d="M 301.375,150.5 C 273.91941,150.5 244.17136,182.32401 238.375,184.3125 L 238.3125,184.3125 L 237.21875,184.3125 C 237.45623,184.32646 237.72063,184.37333 237.96875,184.40625 C 250.62831,186.08577 277.01605,211.9375 304.8125,211.9375 C 332.20521,211.9375 348.73745,187.51092 353.75,185.875 L 354.875,185.875 C 354.65566,185.86175 354.43846,185.81549 354.21875,185.78125 L 354.1875,185.78125 C 342.04133,183.83524 329.18955,150.5 301.375,150.5 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3430"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ style="fill:url(#radialGradient2963);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ <svg:path
+ id="path3442"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ style="fill:url(#linearGradient2965);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ id="path3444"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ style="fill:url(#linearGradient2967);stroke:none;stroke-width:0.93138498;display:inline" />
+ </svg:g>
+ <svg:g
+ style="display:none"
+ inkscape:label="frame6"
+ id="layer11">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305384 339.85502,98.550864 C 326.82429,97.796334 315.32396,113.49292 314.16831,133.61019 z"
+ id="path3457"
+ style="fill:url(#linearGradient2969);stroke:none;stroke-width:1.17873001;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761874 258.62565,92.111524 C 269.05643,92.396714 278.22021,98.924644 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path3459"
+ style="fill:url(#linearGradient2971);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3461"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3463"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path3465"
+ style="fill:url(#linearGradient2973);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path3467"
+ style="fill:url(#linearGradient2975);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3477"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2977);stroke:#e68c3f;stroke-width:4.6875;display:inline" />
+ <svg:path
+ id="path3451"
+ d="M 265.87475,171.87463 C 256.47364,171.95517 246.74554,182.59378 239.8435,184.34338 L 237.2185,184.31213 C 237.70731,184.34087 238.24749,184.42351 238.781,184.53088 C 238.61118,184.55056 238.44681,184.58717 238.281,184.59338 L 239.031,184.59338 C 252.06185,187.46276 277.76632,211.93713 304.81225,211.93713 C 333.15351,211.93713 349.8585,185.78088 354.2185,185.78088 L 353.56225,185.78088 L 353.4685,185.78088 C 350.74968,185.5136 339.47767,172.52248 332.656,172.34338 C 324.28962,172.12373 306.64075,181.90588 300.0935,181.90588 C 291.30779,181.90588 278.12151,171.77188 265.87475,171.87463 z"
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline" />
+ <svg:path
+ sodipodi:nodetypes="cszzzzczc"
+ id="path3453"
+ d="M 276.99975,203.10139 C 277.42239,203.10139 278.46486,199.56398 281.21364,196.39448 C 284.01125,193.16867 284.81034,192.03244 287.78926,191.19338 C 290.76818,190.35432 295.86748,192.58702 299.94928,192.66092 C 304.03108,192.73482 312.96245,188.4849 315.34678,192.29017 C 318.60697,195.37826 318.37974,196.78578 319.4955,198.91129 C 320.61126,201.03681 322.73807,206.43234 322.73807,206.43234 C 322.73807,206.43234 314.52142,210.94477 301.27205,210.35513 C 287.85858,209.75819 276.99975,203.10139 276.99975,203.10139 z"
+ style="fill:url(#radialGradient2979);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/fleet0.png b/data/images/sprites/fleet0.png
new file mode 100644
index 0000000..69c0db1
Binary files /dev/null and b/data/images/sprites/fleet0.png differ
diff --git a/data/images/sprites/fleetd.png b/data/images/sprites/fleetd.png
new file mode 100644
index 0000000..69c0db1
Binary files /dev/null and b/data/images/sprites/fleetd.png differ
diff --git a/data/images/sprites/fractions.svg b/data/images/sprites/fractions.svg
new file mode 100644
index 0000000..f209bf5
--- /dev/null
+++ b/data/images/sprites/fractions.svg
@@ -0,0 +1,2401 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="fractions.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>5 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3794">
+ <svg:stop
+ id="stop3796"
+ offset="0"
+ style="stop-color:#ff8700;stop-opacity:1;" />
+ <svg:stop
+ id="stop3798"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="287.00504"
+ x2="-43.285713"
+ y1="287.00504"
+ x1="-100.28571"
+ id="linearGradient5159"
+ xlink:href="#linearGradient5153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4373"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4371"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="324.77005"
+ fy="389.94934"
+ fx="388.85651"
+ cy="389.94934"
+ cx="388.85651"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient4361"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4359"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4357"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4355"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4353"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4351"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4349"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,163.41481,-268.86605)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4308"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.8960528,0,0,2.0441806,79.81316,-469.08976)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4306"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.23231,0,0,1.2284145,327.70053,-273.15177)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4304"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1.2332478,0,0,1,55.34524,22.396582)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4302"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="487.10846"
+ x2="334.72769"
+ y1="487.10846"
+ x1="248.6358"
+ gradientTransform="matrix(1,0,0,1.3589371,97.14286,-393.41272)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4300"
+ xlink:href="#linearGradient3176"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="589.505"
+ x2="640.02832"
+ y1="589.505"
+ x1="102.82881"
+ gradientTransform="translate(170.28571,-190.57143)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient4298"
+ xlink:href="#linearGradient3163"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3179">
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:1;"
+ offset="0"
+ id="stop3181" />
+ <svg:stop
+ style="stop-color:#aaccff;stop-opacity:0;"
+ offset="1"
+ id="stop3183" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3179"
+ id="radialGradient3191"
+ cx="375.41312"
+ cy="454.11005"
+ fx="375.41312"
+ fy="454.11005"
+ r="210.69563"
+ gradientTransform="matrix(1,0,0,0.2610401,0,335.56912)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient4950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="radialGradient3192"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ id="linearGradient3176">
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:1;"
+ offset="0"
+ id="stop3178" />
+ <svg:stop
+ style="stop-color:#28170b;stop-opacity:0;"
+ offset="1"
+ id="stop3180" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3163">
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:1;"
+ offset="0"
+ id="stop3165" />
+ <svg:stop
+ style="stop-color:#a05a2c;stop-opacity:0;"
+ offset="1"
+ id="stop3167" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3622" />
+ <inkscape:perspective
+ id="perspective2690"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient5153">
+ <svg:stop
+ id="stop5155"
+ offset="0"
+ style="stop-color:#41fffb;stop-opacity:1;" />
+ <svg:stop
+ id="stop5157"
+ offset="1"
+ style="stop-color:#fffffb;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5161">
+ <svg:stop
+ id="stop5163"
+ offset="0"
+ style="stop-color:#1970ec;stop-opacity:1;" />
+ <svg:stop
+ id="stop5165"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5167">
+ <svg:stop
+ id="stop5169"
+ offset="0"
+ style="stop-color:#008dff;stop-opacity:1;" />
+ <svg:stop
+ id="stop5171"
+ offset="1"
+ style="stop-color:#28170b;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient3677"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient3679"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4001"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4003"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4005"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4007"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4009"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4011"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4154"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4156"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4160"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4162"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5167"
+ id="radialGradient2598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,1.1318382,0,-51.410222)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5161"
+ id="radialGradient2600"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1982098,0,0,0.2306459,176.96591,-66.432577)"
+ cx="388.85651"
+ cy="389.94934"
+ fx="388.85651"
+ fy="389.94934"
+ r="324.77005" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3359">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.51318359"
+ id="feGaussianBlur3361" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3377">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.6315918"
+ id="feGaussianBlur3379" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.1493264,-10.41603,-38.169807)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1595326,0,0,0.2029252,-22.0847,-68.459366)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1967432,0,0,0.1493264,-28.752782,-6.3680606)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3411"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,14.696765,-50.501232)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3024822,0,0,0.3052501,-24.849353,-79.759946)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1965936,0,0,0.1834347,-11.512164,-49.861261)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3457"
+ x="-0.24845607"
+ width="1.4969121"
+ y="-0.079102595"
+ height="1.1582052">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.50414776"
+ id="feGaussianBlur3459" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3467"
+ x="-0.12922657"
+ width="1.2584531"
+ y="-0.11200316"
+ height="1.2240063">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.2931751"
+ id="feGaussianBlur3469" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3524"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3527"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3661"
+ x="-0.38131452"
+ width="1.762629"
+ y="-0.12140161"
+ height="1.2428032">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.77373379"
+ id="feGaussianBlur3663" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3726"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,116.45752,-47.613524)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3949"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3951"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3953"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3957"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4014"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4016"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4020"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient4022"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4024"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3476">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.152832"
+ id="feGaussianBlur3478" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3514">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.79433594"
+ id="feGaussianBlur3516" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3532">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.80236816"
+ id="feGaussianBlur3534" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3573"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3577"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3630"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3662"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3664"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3666"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3668"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3732"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.436976,-49.95708)"
+ x1="102.82881"
+ y1="589.505"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3735"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-5.1182585e-2,0.1896061,14.173938,-81.20168)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3737"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1838298,4.9623337e-2,-3.7663687e-2,0.1395253,-7.7173909,-24.86763)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3739"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,11.371082,-55.497641)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3163"
+ id="linearGradient3769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1490616,4.0237935e-2,-3.7663687e-2,0.1395253,17.539923,-49.531601)"
+ x1="309.47955"
+ y1="594.10278"
+ x2="785.13879"
+ y2="589.505" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.18369,4.9585605e-2,-4.6266615e-2,0.1713948,44.114702,-54.719597)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3176"
+ id="linearGradient3773"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2826286,7.629324e-2,-7.6991371e-2,0.2852148,20.536895,-97.692358)"
+ x1="248.6358"
+ y1="487.10846"
+ x2="334.72769"
+ y2="487.10846" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.0035404"
+ inkscape:cx="13.786149"
+ inkscape:cy="54.892894"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame4"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4134"
+ transform="matrix(0.9343643,0.2522239,-0.2522239,0.9343643,17.542005,-10.333641)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4136"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4138"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4140"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient4154);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4142"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient4156);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4144"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient4158);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4146"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient4160);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4148"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient4162);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path4150"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient4164);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g3480"
+ transform="translate(-0.4376316,0.5759621)">
+ <svg:text
+ id="text2702"
+ y="63.7131"
+ x="19.731672"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.88999999;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3476);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="63.7131"
+ x="19.731672"
+ id="tspan2704"
+ sodipodi:role="line">6/9</svg:tspan></svg:text>
+ <svg:text
+ id="text2698"
+ y="62.377731"
+ x="18.644663"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="62.377731"
+ x="18.644663"
+ id="tspan2700"
+ sodipodi:role="line">6/9</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2578">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2580"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2582"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2584"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3387"
+ transform="matrix(0.9343643,0.2522239,-0.2522239,0.9343643,17.542005,-10.333641)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3389"
+ d="M 43.32721,11.022977 C 37.75359,11.038937 32.9157,14.847067 30.62443,19.408586 C 28.05128,21.329337 24.12112,19.595206 21.73048,21.863137 C 19.26046,24.013597 19.46117,27.408067 18.96541,30.277466 C 17.83737,34.074026 15.80071,38.015576 17.04343,42.020626 C 17.85826,45.633996 19.87058,49.345816 18.55209,53.076366 C 16.74386,58.210466 12.47561,62.044266 8.8609998,66.076666 C 7.6151797,68.719066 9.5188398,71.601066 11.72807,73.215166 C 14.01667,74.954466 17.46105,75.624266 18.6824,78.395766 C 19.89512,80.991366 20.63272,84.193466 23.52795,85.645566 C 26.57566,87.216666 30.11084,86.167366 33.25532,85.482866 C 36.00204,84.868866 39.00127,84.750566 41.58917,85.966366 C 47.05342,88.031666 51.64869,92.203766 57.70805,92.775366 C 63.89139,93.260466 70.19298,90.654866 74.20532,86.279366 C 75.60667,83.789966 73.97865,81.074566 73.79794,78.504466 C 73.3766,75.762966 74.45931,72.724966 77.07334,71.238766 C 79.94616,69.393566 83.59872,69.525466 86.74999,68.382966 C 89.80564,67.030566 90.90225,63.819266 92.54352,61.298266 C 94.38346,58.122166 94.4656,54.363566 93.7442,50.890066 C 92.75559,46.135816 90.4912,41.737706 88.75161,37.205616 C 87.29498,33.928996 84.76631,31.050986 81.41175,29.343936 C 77.75466,27.315987 73.16645,26.261457 70.68206,22.777767 C 69.08991,20.643537 68.18723,17.900047 65.80794,16.386337 C 63.85843,15.510147 61.73914,16.426097 59.92052,17.103077 C 56.73511,17.280937 54.53543,14.748787 51.90622,13.509097 C 49.30104,12.100717 46.39764,10.915427 43.32721,11.022977 z"
+ style="fill:#000000;fill-opacity:1;display:inline" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3391"
+ d="M 40.467747,9.1199975 C 34.894127,9.1359515 30.056242,12.94409 27.764964,17.505608 C 25.191817,19.426361 21.261659,17.692229 18.871022,19.960161 C 16.400999,22.110619 16.601702,25.505082 16.10595,28.374488 C 14.977911,32.171051 12.941244,36.112594 14.183971,40.117642 C 14.9988,43.731014 17.011116,47.442831 15.692623,51.173433 C 13.884395,56.307552 9.6161479,60.141351 6.001538,64.173755 C 4.7557208,66.816109 6.6593739,69.698106 8.8686085,71.312227 C 11.157207,73.051535 14.601585,73.721344 15.822939,76.492836 C 17.035661,79.08844 17.773256,82.290532 20.668487,83.742657 C 23.716199,85.313739 27.251379,84.264459 30.395856,83.579896 C 33.142582,82.965961 36.141814,82.847663 38.729712,84.063437 C 44.193963,86.128712 48.789233,90.300823 54.848587,90.872434 C 61.031934,91.357497 67.333516,88.751983 71.345855,84.376395 C 72.747213,81.887067 71.119188,79.171589 70.938474,76.601531 C 70.517144,73.859997 71.599847,70.822009 74.213878,69.335868 C 77.086696,67.490593 80.739254,67.62252 83.890527,66.480001 C 86.946181,65.12761 88.042797,61.91634 89.684068,59.395368 C 91.524004,56.219196 91.606144,52.460644 90.884736,48.987102 C 89.896122,44.232839 87.631734,39.83473 85.892147,35.302638 C 84.435522,32.026019 81.906854,29.148011 78.552289,27.44096 C 74.895197,25.413007 70.306985,24.358476 67.822603,20.874785 C 66.230445,18.740554 65.327767,15.997067 62.948482,14.48336 C 60.998971,13.607162 58.879679,14.523113 57.06106,15.200097 C 53.875644,15.377953 51.675964,12.845805 49.046757,11.606119 C 46.441575,10.197741 43.538184,9.0124422 40.467747,9.1199975 z"
+ style="fill:#28170b" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3393"
+ d="M 40.849946,8.9571571 C 35.276325,8.9731111 30.43844,12.781249 28.147163,17.342768 C 25.574015,19.26352 21.643858,17.529388 19.25322,19.79732 C 16.783198,21.947779 16.983901,25.342241 16.488149,28.211648 C 15.36011,32.008211 13.323443,35.949754 14.56617,39.954802 C 15.380999,43.568173 17.393314,47.27999 16.074822,51.010592 C 14.266593,56.144712 9.9983466,59.97851 6.3837367,64.010914 C 5.1379195,66.653269 7.0415725,69.535265 9.2508071,71.149387 C 11.539406,72.888694 14.983783,73.558504 16.205138,76.329996 C 17.41786,78.925599 18.155454,82.127692 21.050685,83.579816 C 24.098398,85.150899 27.633578,84.101618 30.778055,83.417055 C 33.52478,82.803121 36.524012,82.684823 39.11191,83.900596 C 44.576162,85.965872 49.171431,90.137983 55.230786,90.709594 C 61.414132,91.194656 67.715715,88.589142 71.728054,84.213555 C 73.129412,81.724227 71.501386,79.008749 71.320673,76.438691 C 70.899342,73.697156 71.982045,70.659169 74.596076,69.173028 C 77.468898,67.327752 81.121461,67.459679 84.272724,66.31716 C 87.32838,64.964769 88.424991,61.753499 90.066262,59.232528 C 91.906199,56.056355 91.988343,52.297804 91.266936,48.824261 C 90.278329,44.069998 88.013939,39.671889 86.274348,35.139797 C 84.817719,31.863179 82.289048,28.985171 78.934492,27.278119 C 75.277395,25.250167 70.689184,24.195635 68.204802,20.711945 C 66.612644,18.577713 65.709965,15.834226 63.33068,14.320519 C 61.38117,13.444321 59.261878,14.360273 57.443259,15.037256 C 54.257843,15.215113 52.058163,12.682964 49.428955,11.443279 C 46.823773,10.034901 43.920382,8.8496017 40.849946,8.9571571 z"
+ style="fill:url(#linearGradient3405);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3395"
+ d="M 22.750371,21.503527 C 20.392727,21.736981 19.563727,25.139005 19.398409,27.657832 C 18.524818,29.307543 16.907325,31.26363 17.884627,33.400016 C 18.358844,35.066803 18.436673,37.546719 20.063244,38.079979 C 21.566952,37.420432 23.440086,37.409941 24.584996,39.012165 C 25.90927,39.950825 27.377874,38.166684 27.22029,36.423305 C 27.100787,35.007352 26.83926,33.274098 28.067701,32.476019 C 29.088352,31.233023 31.150268,31.005669 31.315278,28.887169 C 31.102771,26.851004 29.297217,26.057043 28.038931,25.24229 C 26.042435,24.509679 24.937667,21.463161 22.750371,21.503527 z"
+ style="fill:url(#linearGradient3407);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3397"
+ d="M 26.927933,58.109723 C 25.721862,58.718379 25.864306,60.183007 24.587611,60.823963 C 23.167507,61.709696 22.076907,63.08591 22.643993,64.518151 C 23.089078,65.941827 23.194272,67.752351 21.38147,68.666556 C 19.868255,69.480398 17.956766,70.579127 18.406491,72.188403 C 18.801212,73.624457 21.12088,74.252519 22.746581,73.558352 C 25.030218,72.875855 27.523534,71.881559 30.002047,72.669047 C 32.302484,73.239995 34.690943,74.720416 37.195471,73.886991 C 38.871014,72.198308 35.066502,71.019431 34.680846,69.421198 C 33.783084,67.537751 37.472821,66.315207 36.307434,64.429116 C 35.440009,62.821098 32.465449,62.832489 31.71971,61.142483 C 30.710542,59.698187 29.264033,58.220667 26.927933,58.109723 z"
+ style="fill:url(#linearGradient3409);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3399"
+ d="M 69.94747,30.820946 C 67.042122,31.031976 66.020535,34.107245 65.816814,36.384145 C 64.740278,37.875405 62.747027,39.643614 63.951364,41.574806 C 64.535746,43.081502 64.631657,45.323229 66.636097,45.80527 C 68.48913,45.209072 70.797414,45.199588 72.208296,46.647923 C 73.840212,47.496425 75.649989,45.883646 75.455794,44.307715 C 75.308531,43.027761 74.986248,41.460982 76.500069,40.739557 C 77.757827,39.615947 80.298746,39.410431 80.50209,37.495406 C 80.240215,35.65481 78.015214,34.937107 76.464615,34.200609 C 74.004313,33.538364 72.642896,30.784457 69.94747,30.820946 z"
+ style="fill:url(#linearGradient3411);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3401"
+ d="M 60.469147,56.007154 C 56.088155,56.741312 53.324894,61.004913 53.349112,64.968939 C 52.818265,68.310892 50.65451,71.528149 51.530336,74.985606 C 52.474284,76.119753 54.396681,75.598025 55.455706,76.642072 C 55.9991,77.23648 56.795108,76.528473 57.500611,76.770964 C 58.865165,76.827214 60.002942,77.657539 61.002584,78.382781 C 62.727677,78.539401 63.761702,76.902534 65.309049,76.489009 C 67.737515,75.301421 70.112331,73.271793 70.18568,70.529146 C 70.312802,69.983143 70.69899,69.102184 71.252554,69.091879 C 71.190336,69.40434 71.669816,69.85631 71.490639,69.25772 C 70.980579,66.881024 73.093144,64.62726 72.259603,62.288195 C 71.040854,60.648275 68.670133,61.110237 66.857233,61.198859 C 65.191323,61.164218 63.653257,59.990492 63.425486,58.424375 C 62.926581,57.274966 62.012845,55.849004 60.469147,56.007154 z M 70.415008,69.469862 C 70.413125,69.504117 70.391816,69.468157 70.415008,69.469862 z M 72.583654,75.881564 C 72.581607,75.916274 72.609176,75.847881 72.583654,75.881564 z"
+ style="fill:url(#linearGradient3413);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3403"
+ d="M 43.04947,31.653619 C 42.086533,32.808824 43.973998,34.513301 42.492087,35.491812 C 41.174837,37.043595 38.841538,38.277585 38.886516,40.495187 C 39.722698,42.40319 40.555163,44.511843 40.014107,46.579903 C 40.630487,47.926427 42.669977,47.797766 43.378506,49.059477 C 44.46591,49.294133 44.750279,47.920066 45.562108,47.524215 C 46.587043,46.684593 47.075498,45.427281 47.137493,44.197036 C 47.912284,42.885544 49.57315,44.073988 49.690014,45.186324 C 50.419257,46.590029 52.981647,46.32171 53.169819,44.715012 C 53.846558,42.570733 52.725262,40.455793 51.485062,38.70838 C 50.65738,37.825494 51.816954,37.012268 52.501776,36.506727 C 51.974917,35.582224 50.597851,36.214781 49.914357,36.656053 C 49.168073,37.175743 48.820061,38.30727 47.870346,38.475968 C 46.723555,37.8592 46.896656,36.394346 46.361713,35.396117 C 45.843216,33.877216 44.920901,31.854015 43.04947,31.653619 z"
+ style="fill:url(#linearGradient3415);fill-opacity:1" />
+ </svg:g>
+ <svg:path
+ style="fill:#ff2900;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3467)"
+ d="M 49.05786,72.689782 L 47.73232,75.119942 L 45.74401,73.573476 L 47.06955,70.922393 L 46.40678,68.93408 L 44.19754,68.93408 L 40.66277,68.713156 C 40.66277,68.713156 39.77907,67.166691 40.88369,66.724843 C 41.98831,66.282996 42.65108,64.73653 42.65108,64.73653 L 43.7557,62.748218 L 41.98831,60.538981 L 40,62.085447 L 43.7557,58.108821 L 47.06955,56.120508 C 47.06955,56.120508 48.39509,55.236814 49.05786,56.120508 C 49.72064,57.004203 50.38341,58.108821 50.38341,58.992516 C 50.38341,59.87621 50.16248,61.864523 50.16248,61.864523 C 50.16248,61.864523 50.60433,48.830027 50.82525,47.504485 C 51.04618,46.178944 53.03449,59.213439 53.03449,59.213439 L 54.58096,64.07376 C 54.58096,64.07376 55.9065,63.852836 56.56927,62.969141 C 57.23204,62.085447 56.79019,59.655287 59.88312,58.771592 C 62.97605,57.887897 59.88312,62.30637 59.88312,62.30637 C 59.88312,62.30637 64.96437,65.841149 63.85975,66.062073 C 62.75513,66.282996 60.76682,64.957454 60.76682,64.957454 C 60.76682,64.957454 58.55758,66.724843 58.33666,67.608538 C 58.11573,68.492232 56.12742,72.247935 56.12742,72.247935 L 54.13911,67.608538 L 49.05786,72.689782 z"
+ id="path3461"
+ sodipodi:nodetypes="cccccccsccccccsscsccsscscsccc" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect3449"
+ width="4.8698936"
+ height="15.296017"
+ x="49.27401"
+ y="84.703979" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3457)"
+ id="rect3451"
+ width="4.8698936"
+ height="15.296017"
+ x="49.703037"
+ y="71.585167"
+ transform="matrix(1,0,0,1.5632854,-0.4290325,-47.087196)" />
+ <svg:g
+ style="display:inline"
+ id="g3486"
+ transform="translate(-0.4376316,0.5759621)">
+ <svg:text
+ id="text3488"
+ y="63.7131"
+ x="19.731672"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.88999999;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3476);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="63.7131"
+ x="19.731672"
+ id="tspan3490"
+ sodipodi:role="line">6/9</svg:tspan></svg:text>
+ <svg:text
+ id="text3492"
+ y="62.377731"
+ x="18.644663"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="62.377731"
+ x="18.644663"
+ id="tspan3494"
+ sodipodi:role="line">6/9</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2602">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2604"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2606"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2608"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3538"
+ transform="translate(-1.3317614,1.3317617)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3534"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3490"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ style="fill:url(#linearGradient3530);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3492"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ style="fill:url(#linearGradient3527);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3494"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ style="fill:url(#linearGradient3524);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3500"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ style="fill:url(#linearGradient3515);fill-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g3599"
+ transform="translate(1.6647021,0.6658808)">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3595"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccsccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3551"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ style="fill:url(#linearGradient3591);fill-opacity:1"
+ sodipodi:nodetypes="ccccccsccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3557"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ style="fill:url(#linearGradient3582);fill-opacity:1" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3559"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ style="fill:url(#linearGradient3579);fill-opacity:1" />
+ </svg:g>
+ <svg:path
+ style="fill:#ff2900;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3467)"
+ d="M 48.059039,63.034514 L 46.733499,65.464674 L 44.745189,63.918208 L 46.070729,61.267125 L 45.407959,59.278812 L 43.198719,59.278812 L 39.663949,59.057888 C 39.663949,59.057888 38.780249,57.511423 39.884869,57.069575 C 40.989489,56.627728 41.652259,55.081262 41.652259,55.081262 L 42.756879,53.09295 L 40.989489,50.883713 L 39.001179,52.430179 L 42.756879,48.453553 L 46.070729,46.46524 C 46.070729,46.46524 47.396269,45.581545 48.059039,46.46524 C 48.721819,47.348935 49.384589,48.453553 49.384589,49.337248 C 49.384589,50.220942 49.163659,52.209255 49.163659,52.209255 C 49.163659,52.209255 49.605509,39.174758 49.826429,37.849216 C 50.047359,36.523676 52.035669,49.558171 52.035669,49.558171 L 53.582139,54.418492 C 53.582139,54.418492 54.907679,54.197568 55.570449,53.313873 C 56.233219,52.430179 55.791369,50.000019 58.884299,49.116324 C 61.977229,48.232629 58.884299,52.651102 58.884299,52.651102 C 58.884299,52.651102 63.965549,56.185881 62.860929,56.406805 C 61.756309,56.627728 59.767999,55.302186 59.767999,55.302186 C 59.767999,55.302186 57.558759,57.069575 57.337839,57.95327 C 57.116909,58.836964 55.128599,62.592667 55.128599,62.592667 L 53.140289,57.95327 L 48.059039,63.034514 z"
+ id="path3655"
+ sodipodi:nodetypes="cccccccsccccccsscsccsscscsccc"
+ transform="matrix(1.2633925,0,0,1.588741,-10.272619,-38.541737)" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="rect3657"
+ width="4.8698936"
+ height="50.587704"
+ x="49.27401"
+ y="49.412296" />
+ <svg:rect
+ style="opacity:1;fill:#ff2900;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3661)"
+ id="rect3659"
+ width="4.8698936"
+ height="15.296017"
+ x="49.703037"
+ y="71.585167"
+ transform="matrix(1,0,0,5.7424492,-0.42903,-410.1779)" />
+ <svg:g
+ id="g3698"
+ transform="matrix(8.3272479e-2,0.1240629,-7.1234808e-2,8.2971267e-2,37.191247,-11.766434)"
+ inkscape:transform-center-x="1.7691976"
+ inkscape:transform-center-y="-3.1435777"
+ style="opacity:0.8">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3667"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3669"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3702);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.8;display:inline"
+ id="g3704"
+ transform="matrix(-9.5662187e-2,0.114274,-9.8108871e-2,2.7320451e-2,75.908459,4.2086986)"
+ inkscape:transform-center-x="-2.5942151"
+ inkscape:transform-center-y="-2.9680753">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3706"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3708"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3710);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3712"
+ transform="matrix(0.103136,-5.6086288e-2,2.3755927e-2,8.82459e-2,49.824618,11.691195)"
+ inkscape:transform-center-x="2.6833454"
+ inkscape:transform-center-y="0.91728334"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3714"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3716"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3718);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3720"
+ transform="matrix(0.1257006,-3.9359796e-2,2.8953367e-2,6.1928516e-2,32.835552,19.665383)"
+ inkscape:transform-center-x="3.2704224"
+ inkscape:transform-center-y="0.6437239"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3722"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3724"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3726);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ id="g3728"
+ transform="matrix(1.7486134e-3,0.1187259,-9.0611927e-2,-8.270231e-3,59.772043,-9.2932542)"
+ inkscape:transform-center-x="-0.47212312"
+ inkscape:transform-center-y="-3.0621527"
+ style="opacity:0.8;display:inline">
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3730"
+ d="M 145.71391,24.622424 C 141.78701,21.877585 142.94586,21.784418 138.95033,14.34546 C 136.0314,15.503112 132.76277,12.864213 129.92767,14.396165 C 127.04757,15.796974 126.37195,19.052955 125.17259,21.635713 C 123.13997,24.932687 120.21254,28.134965 120.3651,32.232994 C 120.2135,35.852171 121.16741,39.869487 118.97178,43.055645 C 115.95608,47.442098 110.9492,49.973908 106.50882,52.859817 C 104.65916,55.037045 105.72195,58.243205 107.39639,60.330202 C 109.11386,62.555618 112.1951,64.065846 112.64189,66.993784 C 113.12533,69.753459 113.00563,72.964651 115.36903,75.073533 C 117.84607,77.333591 121.45118,77.243909 124.59446,77.398995 C 127.34421,77.519393 134.53354,79.17082 136.81946,77.521276 C 137.90174,73.558393 134.28508,72.286351 137.73848,67.694404 C 140.12771,64.603922 148.45755,63.346278 148.60607,58.631943 C 149.66759,53.066397 151.00499,46.024339 150.90131,40.842396 C 147.40204,37.296438 147.53324,36.800707 145.36686,34.960194 C 143.26615,32.966535 148.19376,28.65192 145.71391,24.622424 z"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ <svg:path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ id="path3732"
+ d="M 145.18159,24.152618 C 141.29532,21.436183 142.44217,21.343981 138.48799,13.982004 C 135.59928,15.127676 132.36447,12.516086 129.55871,14.032184 C 126.70842,15.418498 126.03978,18.640784 124.85283,21.196815 C 122.84125,24.45967 119.94411,27.62881 120.0951,31.68443 C 119.94507,35.266154 120.8891,39.241897 118.7162,42.395083 C 115.73171,46.736143 110.77663,49.241753 106.3822,52.097797 C 104.55169,54.252494 105.60349,57.425475 107.2606,59.490875 C 108.96029,61.693261 112.00965,63.187861 112.4518,66.085499 C 112.93025,68.816616 112.81179,71.994576 115.15073,74.081635 C 117.60214,76.318305 121.16994,76.229551 124.28069,76.383032 C 127.00198,76.502184 134.11692,78.136522 136.37919,76.504047 C 137.45025,72.582175 133.87102,71.323296 137.28869,66.778869 C 139.65319,63.720368 147.89683,62.475739 148.04382,57.81019 C 149.09435,52.302239 150.41791,45.333056 150.3153,40.204738 C 146.85225,36.695475 146.98208,36.204874 144.83812,34.383408 C 142.75916,32.41038 147.63578,28.140414 145.18159,24.152618 z"
+ style="fill:url(#linearGradient3734);fill-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccccc" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3518"
+ transform="translate(4.5354272,-4.4142685)">
+ <svg:text
+ id="text3510"
+ y="59.816612"
+ x="1.754913"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3514);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="59.816612"
+ x="1.754913"
+ id="tspan3512"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ <svg:text
+ id="text3506"
+ y="58.382454"
+ x="1.3317603"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="58.382454"
+ x="1.3317603"
+ id="tspan3508"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3536"
+ transform="translate(-19.301208,12.24218)">
+ <svg:text
+ id="text3528"
+ y="51.160164"
+ x="70.434319"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3532);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="51.160164"
+ x="70.434319"
+ id="tspan3530"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ <svg:text
+ id="text3524"
+ y="49.725998"
+ x="70.250427"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="49.725998"
+ x="70.250427"
+ id="tspan3526"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3736">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3738"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3740"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3742"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ x="8.9507122"
+ y="64.433594"
+ id="text3768"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3770"
+ x="8.9507122"
+ y="64.433594"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(-11.398185,1.3317584)"
+ id="g3744"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3746"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient3573);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3748"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3575);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3750"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3577);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3752"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3580);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3754"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ x="73.530174"
+ y="64.433594"
+ id="text3780"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3782"
+ x="73.530174"
+ y="64.433594"
+ style="fill:#000000">b</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(13.6647,0.6658774)"
+ id="g3756"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path3758"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient3628);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path3760"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3630);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path3762"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3632);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path3764"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3552"
+ transform="translate(-3.4645728,-4.4142685)">
+ <svg:text
+ id="text3554"
+ y="59.816612"
+ x="1.754913"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3514);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="59.816612"
+ x="1.754913"
+ id="tspan3556"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ <svg:text
+ id="text3558"
+ y="58.382454"
+ x="1.3317603"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="58.382454"
+ x="1.3317603"
+ id="tspan3560"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3641"
+ transform="translate(-12.301208,12.24218)">
+ <svg:text
+ id="text3643"
+ y="51.160164"
+ x="70.434319"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3532);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="51.160164"
+ x="70.434319"
+ id="tspan3645"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ <svg:text
+ id="text3647"
+ y="49.725998"
+ x="70.250427"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="49.725998"
+ x="70.250427"
+ id="tspan3649"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(-4.8551223e-7,-952.36218)"
+ style="display:inline"
+ id="g3891">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3893"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3895"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3897"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ x="-3.049288"
+ y="64.433594"
+ id="text3901"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3903"
+ x="-3.049288"
+ y="64.433594"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(-23.398185,1.3317584)"
+ id="g3907"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3909"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient3662);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3911"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3664);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3913"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3666);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3915"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3668);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3917"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ x="83.530174"
+ y="64.433594"
+ id="text3925"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3927"
+ x="83.530174"
+ y="64.433594"
+ style="fill:#000000">b</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(23.6647,0.6658774)"
+ id="g3931"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path3933"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient3688);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path3935"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3690);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path3937"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3692);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path3939"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3701"
+ transform="translate(-13.464573,-4.4142685)">
+ <svg:text
+ id="text3703"
+ y="59.816612"
+ x="1.754913"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3514);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="59.816612"
+ x="1.754913"
+ id="tspan3705"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ <svg:text
+ id="text3707"
+ y="58.382454"
+ x="1.3317603"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="58.382454"
+ x="1.3317603"
+ id="tspan3709"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3711"
+ transform="translate(-4.3012085,12.24218)">
+ <svg:text
+ id="text3713"
+ y="51.160164"
+ x="70.434319"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3532);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="51.160164"
+ x="70.434319"
+ id="tspan3715"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ <svg:text
+ id="text3717"
+ y="49.725998"
+ x="70.250427"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="49.725998"
+ x="70.250427"
+ id="tspan3719"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(-4.8551223e-7,-952.36218)"
+ style="display:inline"
+ id="g3960">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3962"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3964"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3966"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3359);font-family:Bitstream Vera Sans"
+ x="-17.049288"
+ y="64.433594"
+ id="text3970"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3972"
+ x="-17.049288"
+ y="64.433594"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans Mono;-inkscape-font-specification:DejaVu Sans Mono">a</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(-37.398185,1.3317594)"
+ id="g3976"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 47.317051,22.445252 C 43.329184,19.657805 44.506023,19.563192 40.448472,12.008761 C 37.484239,13.184383 34.164867,10.504521 31.285766,12.060253 C 28.360957,13.482807 27.674843,16.789329 26.456868,19.412179 C 24.392699,22.760331 21.419822,26.012317 21.57476,30.173958 C 21.420807,33.849315 22.389512,37.92899 20.159809,41.164606 C 17.097298,45.619148 12.012691,48.190259 7.5033823,51.120965 C 5.6250176,53.33199 6.7043104,56.587918 8.40474,58.707311 C 10.148862,60.967271 13.277939,62.500942 13.731651,65.474329 C 14.22261,68.276842 14.10105,71.53788 16.501134,73.679498 C 19.016628,75.974638 22.677696,75.883564 25.869767,76.041057 C 28.662196,76.163324 35.963129,77.840386 38.284541,76.165236 C 39.383603,72.140839 35.710802,70.849051 39.217818,66.185825 C 41.644133,63.04737 50.103275,61.770204 50.254106,56.98269 C 51.332098,51.330752 52.69026,44.179382 52.584963,38.917001 C 49.031387,35.316 49.164613,34.812574 46.964607,32.943492 C 44.831296,30.918886 49.835395,26.537296 47.317051,22.445252 z"
+ id="path3978"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccccccccccc"
+ style="fill:url(#linearGradient3732);fill-opacity:1"
+ d="M 46.161046,21.809062 C 42.274772,19.092627 43.421631,19.000425 39.467449,11.638448 C 36.578731,12.78412 33.343923,10.17253 30.538169,11.688628 C 27.687872,13.074942 27.019237,16.297228 25.832291,18.853259 C 23.820708,22.116114 20.923567,25.285254 21.074558,29.340874 C 20.924527,32.922598 21.868553,36.898341 19.695654,40.051527 C 16.711162,44.392587 11.756089,46.898197 7.3616583,49.754241 C 5.5311461,51.908938 6.5829432,55.081919 8.240053,57.147319 C 9.9397433,59.349705 12.989104,60.844305 13.431258,63.741943 C 13.909709,66.47306 13.791246,69.65102 16.130186,71.738079 C 18.581596,73.974749 22.149396,73.885995 25.260146,74.039476 C 27.981436,74.158628 35.096373,75.792966 37.358645,74.160491 C 38.429708,70.238619 34.850474,68.97974 38.268146,64.435313 C 40.632649,61.376812 48.876289,60.132183 49.023277,55.466634 C 50.073806,49.958683 51.397368,42.9895 51.294754,37.861182 C 47.831708,34.351919 47.96154,33.861318 45.81758,32.039852 C 43.738617,30.066824 48.615233,25.796858 46.161046,21.809062 z"
+ id="path3980"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3735);fill-opacity:1"
+ d="M 33.375436,14.164912 C 31.113655,13.788389 29.480995,16.758025 28.69122,19.06983 C 27.458871,20.390921 25.454171,21.810648 25.82848,24.05331 C 25.851168,25.730305 25.298394,28.06708 26.683703,28.9756 C 28.255068,28.738613 30.007903,29.20126 30.673547,30.987095 C 31.674149,32.198159 33.496363,30.901538 33.788844,29.232841 C 34.034322,27.879683 34.227129,26.194229 35.576235,25.758375 C 36.843408,24.854396 38.827333,25.162029 39.515848,23.224198 C 39.830859,21.268079 38.34407,20.070826 37.373872,18.99218 C 35.6932,17.804091 35.429349,14.678884 33.375436,14.164912 z"
+ id="path3982"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3737);fill-opacity:1"
+ d="M 28.045843,49.422116 C 26.765416,49.686622 26.529096,51.091046 25.174534,51.36792 C 23.624236,51.837333 22.258104,52.848143 22.426724,54.32941 C 22.48351,55.771903 22.125143,57.490125 20.200741,57.887093 C 18.581576,58.265849 16.518423,58.810339 16.532733,60.427421 C 16.539339,61.868776 18.548341,63.040691 20.242424,62.802126 C 22.548315,62.740413 25.128765,62.440253 27.245976,63.801194 C 29.251416,64.914892 31.109709,66.900571 33.66006,66.75355 C 35.651554,65.598317 32.394095,63.537228 32.436864,61.946624 C 32.073078,59.960362 35.828991,59.7487 35.215812,57.692465 C 34.810902,55.971206 32.028706,55.231594 31.758174,53.464419 C 31.17953,51.860384 30.200629,50.114998 28.045843,49.422116 z"
+ id="path3984"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3739);fill-opacity:1"
+ d="M 41.791524,34.428701 C 40.600419,35.265207 41.934089,37.333874 40.302641,37.874386 C 38.680453,38.992075 36.18906,39.556557 35.671753,41.63995 C 35.971808,43.633625 36.217781,45.813842 35.190623,47.609697 C 35.426921,49.023306 37.364999,49.417498 37.70879,50.775104 C 38.665635,51.268627 39.277912,50.056473 40.136299,49.891366 C 41.305735,49.365367 42.079254,48.313779 42.447477,47.179919 C 43.502204,46.149928 44.754303,47.679278 44.582939,48.748081 C 44.91027,50.243585 47.372152,50.639174 47.953221,49.185394 C 49.12638,47.352546 48.61212,45.093604 47.89406,43.148076 C 47.343389,42.114377 48.631968,41.647 49.399351,41.347369 C 49.140255,40.35066 47.694027,40.59437 46.944096,40.834285 C 46.115716,41.131634 45.505148,42.101116 44.575219,42.0192 C 43.659262,41.153666 44.190472,39.828619 43.942418,38.760984 C 43.841056,37.211 43.489577,35.087963 41.791524,34.428701 z"
+ id="path3986"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3377);font-family:Bitstream Vera Sans"
+ x="95.530174"
+ y="64.433594"
+ id="text3994"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3996"
+ x="95.530174"
+ y="64.433594"
+ style="fill:#000000">b</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(35.664698,0.6658784)"
+ id="g4000"
+ style="display:inline">
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:#000000;fill-opacity:1;display:inline"
+ d="M 58.836358,31.818495 C 55.829235,36.925335 57.058661,34.865754 55.013388,43.846298 C 54.778354,52.956185 50.359744,61.278777 54.728638,72.494667 C 63.568381,79.786363 67.393549,74.797622 70.333942,74.042949 C 73.621247,73.008571 77.148459,74.089481 80.5223,73.807278 C 83.858152,73.297195 85.772905,70.478429 88.037088,68.469275 C 90.667484,65.878457 91.737008,62.265737 91.947889,58.718859 C 92.235344,53.863907 91.184911,49.020332 90.681527,44.184184 C 90.123589,40.635817 88.415275,37.193054 85.593319,34.666932 C 82.560802,31.751565 78.364026,29.534373 76.858345,25.517535 C 75.867512,23.03837 75.709437,20.150073 73.787658,18.065451 C 72.11717,16.709414 69.80934,17.041899 67.85763,17.221804 C 64.704426,16.562356 68.090722,18.363372 63.073184,20.612896 C 57.775997,25.461866 62.206415,25.280663 58.836358,31.818495 z"
+ id="path4002"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ sodipodi:nodetypes="ccccccsccccccc"
+ style="fill:url(#linearGradient3769);fill-opacity:1"
+ d="M 58.881521,31.404366 C 56.000287,36.339341 57.178245,34.349073 55.218595,43.027385 C 54.993401,51.830687 50.759771,59.873191 54.945766,70.711621 C 63.415443,77.757922 67.080474,72.937073 69.897771,72.207797 C 73.047456,71.208231 76.427006,72.252763 79.659604,71.980058 C 82.855805,71.487141 84.690398,68.763237 86.859793,66.821699 C 89.380071,64.318073 90.40482,60.826936 90.606873,57.399425 C 90.882293,52.707861 89.875836,48.027292 89.393526,43.3539 C 88.858945,39.924949 87.222148,36.59805 84.51833,34.156942 C 81.612767,31.339689 77.591685,29.197115 76.149037,25.315459 C 75.199685,22.919729 75.048227,20.128635 73.206901,18.114169 C 71.606347,16.803768 69.395131,17.125064 67.525127,17.298914 C 64.503928,16.661659 67.748461,18.402064 62.940977,20.575882 C 57.865551,25.261663 62.110495,25.086559 58.881521,31.404366 z"
+ id="path4004"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3771);fill-opacity:1"
+ d="M 75.227592,35.200491 C 72.459711,34.664872 70.729521,37.280625 69.964882,39.356696 C 68.582874,40.478548 66.274467,41.627954 66.912664,43.736153 C 67.078665,45.291351 66.602863,47.410132 68.354158,48.366101 C 70.235942,48.276414 72.395112,48.849757 73.348085,50.558888 C 74.658876,51.763306 76.756649,50.712852 76.972687,49.191378 C 77.157925,47.958291 77.251975,46.413061 78.848395,46.120809 C 80.307001,45.388185 82.732981,45.837039 83.405993,44.098996 C 83.625549,42.313158 81.727609,41.081363 80.464547,40.002107 C 78.332763,38.762782 77.755305,35.846248 75.227592,35.200491 z"
+ id="path4006"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <svg:path
+ style="fill:url(#linearGradient3773);fill-opacity:1"
+ d="M 66.011748,50.682938 C 61.733134,50.263918 58.075859,53.550715 57.098666,57.260667 C 55.759741,60.249377 52.926536,62.709716 52.872823,66.161145 C 53.468756,67.458937 55.396567,67.456328 56.122749,68.698959 C 56.480553,69.39141 57.40289,68.930646 58.000925,69.335165 C 59.261728,69.731897 60.115399,70.794697 60.866505,71.724471 C 62.438867,72.305921 63.81788,71.037296 65.367967,71.041191 C 67.936577,70.544069 70.667441,69.246642 71.427736,66.702511 C 71.68423,66.224409 72.267269,65.498678 72.787099,65.628671 C 72.650154,65.904931 72.984166,66.448172 72.967728,65.843678 C 73.090605,63.494329 75.632964,61.921331 75.444101,59.525554 C 74.718972,57.685873 72.387337,57.519562 70.671076,57.14511 C 69.123246,56.69256 67.982174,55.207936 68.164365,53.687163 C 67.988115,52.48736 67.494014,50.924526 66.011748,50.682938 z M 71.909189,65.770596 C 71.89879,65.802128 71.887949,65.763153 71.909189,65.770596 z M 72.31831,72.308446 C 72.307643,72.340361 72.350653,72.283411 72.31831,72.308446 z"
+ id="path4008"
+ inkscape:export-filename="/home/usuario/Imágenes/asteroid1.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3749"
+ transform="translate(-23.464573,-4.4142685)">
+ <svg:text
+ id="text3751"
+ y="59.816612"
+ x="1.754913"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3514);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="59.816612"
+ x="1.754913"
+ id="tspan3753"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ <svg:text
+ id="text3755"
+ y="58.382454"
+ x="1.3317603"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="58.382454"
+ x="1.3317603"
+ id="tspan3757"
+ sodipodi:role="line">3/2</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3782"
+ transform="translate(7.6987915,12.24218)">
+ <svg:text
+ id="text3784"
+ y="51.160164"
+ x="70.434319"
+ style="font-size:40px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3532);font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="51.160164"
+ x="70.434319"
+ id="tspan3786"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ <svg:text
+ id="text3788"
+ y="49.725998"
+ x="70.250427"
+ style="font-size:40px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><svg:tspan
+ style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+ y="49.725998"
+ x="70.250427"
+ id="tspan3790"
+ sodipodi:role="line">2/3</svg:tspan></svg:text>
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/fractions0.png b/data/images/sprites/fractions0.png
new file mode 100644
index 0000000..4fb6a6c
Binary files /dev/null and b/data/images/sprites/fractions0.png differ
diff --git a/data/images/sprites/fractions1.png b/data/images/sprites/fractions1.png
new file mode 100644
index 0000000..ef2bd69
Binary files /dev/null and b/data/images/sprites/fractions1.png differ
diff --git a/data/images/sprites/fractions2.png b/data/images/sprites/fractions2.png
new file mode 100644
index 0000000..4c818c0
Binary files /dev/null and b/data/images/sprites/fractions2.png differ
diff --git a/data/images/sprites/fractions3.png b/data/images/sprites/fractions3.png
new file mode 100644
index 0000000..01565c5
Binary files /dev/null and b/data/images/sprites/fractions3.png differ
diff --git a/data/images/sprites/fractions4.png b/data/images/sprites/fractions4.png
new file mode 100644
index 0000000..6efc2df
Binary files /dev/null and b/data/images/sprites/fractions4.png differ
diff --git a/data/images/sprites/fractions5.png b/data/images/sprites/fractions5.png
new file mode 100644
index 0000000..fc8a9fb
Binary files /dev/null and b/data/images/sprites/fractions5.png differ
diff --git a/data/images/sprites/fractions6.png b/data/images/sprites/fractions6.png
new file mode 100644
index 0000000..ac927f2
Binary files /dev/null and b/data/images/sprites/fractions6.png differ
diff --git a/data/images/sprites/fractionsd.png b/data/images/sprites/fractionsd.png
new file mode 100644
index 0000000..07000c3
Binary files /dev/null and b/data/images/sprites/fractionsd.png differ
diff --git a/data/images/sprites/friends.svg b/data/images/sprites/friends.svg
new file mode 100644
index 0000000..33d79ad
--- /dev/null
+++ b/data/images/sprites/friends.svg
@@ -0,0 +1,3460 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="friends.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>1 frame</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:filter
+ id="filter3563"
+ inkscape:collect="always">
+ <svg:feGaussianBlur
+ id="feGaussianBlur3565"
+ stdDeviation="14.901949"
+ inkscape:collect="always" />
+ </svg:filter>
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:clipPath
+ id="clipPath3699"
+ clipPathUnits="userSpaceOnUse">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3701"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </svg:clipPath>
+ <svg:clipPath
+ id="clipPath3695"
+ clipPathUnits="userSpaceOnUse">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3697"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </svg:clipPath>
+ <svg:clipPath
+ id="clipPath3691"
+ clipPathUnits="userSpaceOnUse">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3693"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </svg:clipPath>
+ <svg:clipPath
+ id="clipPath3687"
+ clipPathUnits="userSpaceOnUse">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3689"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </svg:clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3677" />
+ <svg:linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient3675"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient3673"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective3671"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3665">
+ <svg:stop
+ id="stop3667"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3669"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3659">
+ <svg:stop
+ id="stop3661"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <svg:stop
+ id="stop3663"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3653">
+ <svg:stop
+ id="stop3655"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <svg:stop
+ id="stop3657"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3647">
+ <svg:stop
+ id="stop3649"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <svg:stop
+ id="stop3651"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3641">
+ <svg:stop
+ id="stop3643"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3645"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1120187,-1.4993522e-3,-4.2627845e-3,0.2968305,104.02369,909.25382)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1640609,-9.2465106e-3,-4.7825931e-3,0.1243758,-8.7493642,928.67039)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3757"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1179543,0,0,0.1785201,-10.686764,923.74021)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3759"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1048032,-8.3786141e-3,1.8260737e-2,0.2326369,-19.630374,924.00628)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3761"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1624648,0,0,0.1323393,-12.475934,925.44358)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3763"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1483829,0,0,0.1150195,-7.7649242,931.6519)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3765"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.296103e-2,0,0,0.2538211,-10.686764,923.82437)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3767"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.3100355e-2,0,0,0.2533945,-10.686764,923.82437)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1467813,0,0,0.1434593,-10.686764,923.82436)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.3993726e-2,3.3221883e-2,-2.6107554e-2,6.724695e-2,49.112249,959.57615)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3773"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.136986,4.9606279e-2,5.4636832e-2,0.1338989,52.336614,918.44758)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3775"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1105621,4.0213051e-2,4.885316e-2,0.110137,50.709633,935.80045)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3777"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1165314,-6.0668154e-3,-2.0209567e-3,0.1214607,-3.8680542,939.96534)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3779"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.3444707e-2,1.8487482e-2,-1.4039188e-2,3.7421814e-2,51.893043,980.21989)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3783"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3785"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3787"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3789"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3791"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1120187,-1.4993522e-3,-4.2627845e-3,0.2968305,104.02369,909.25382)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3963"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1640609,-9.2465106e-3,-4.7825931e-3,0.1243758,-8.7493642,928.67039)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3965"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1179543,0,0,0.1785201,-10.686764,923.74021)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3967"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1048032,-8.3786141e-3,1.8260737e-2,0.2326369,-19.630374,924.00628)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3969"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1624648,0,0,0.1323393,-12.475934,925.44358)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3971"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1483829,0,0,0.1150195,-7.7649242,931.6519)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3973"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.296103e-2,0,0,0.2538211,-10.686764,923.82437)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3975"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.3100355e-2,0,0,0.2533945,-10.686764,923.82437)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3977"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1467813,0,0,0.1434593,-10.686764,923.82436)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3979"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.3993726e-2,3.3221883e-2,-2.6107554e-2,6.724695e-2,49.112249,959.57615)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3981"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.136986,4.9606279e-2,5.4636832e-2,0.1338989,52.336614,918.44758)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3983"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1105621,4.0213051e-2,4.885316e-2,0.110137,50.709633,935.80045)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3985"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1165314,-6.0668154e-3,-2.0209567e-3,0.1214607,-3.8680542,939.96534)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3987"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.3444707e-2,1.8487482e-2,-1.4039188e-2,3.7421814e-2,51.893043,980.21989)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3989"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3991"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3993"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3995"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3997"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3999"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2892"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1120187,-1.4993522e-3,-4.2627845e-3,0.2968305,104.02369,909.25382)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2894"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1640609,-9.2465106e-3,-4.7825931e-3,0.1243758,-8.7493642,928.67039)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2896"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1179543,0,0,0.1785201,-10.686764,923.74021)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2898"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1048032,-8.3786141e-3,1.8260737e-2,0.2326369,-19.630374,924.00628)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2900"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1624648,0,0,0.1323393,-12.475934,925.44358)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2902"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1483829,0,0,0.1150195,-7.7649242,931.6519)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.296103e-2,0,0,0.2538211,-10.686764,923.82437)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.3100355e-2,0,0,0.2533945,-10.686764,923.82437)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2908"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1467813,0,0,0.1434593,-10.686764,923.82436)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2910"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.3993726e-2,3.3221883e-2,-2.6107554e-2,6.724695e-2,49.112249,959.57615)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.136986,4.9606279e-2,5.4636832e-2,0.1338989,52.336614,918.44758)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1105621,4.0213051e-2,4.885316e-2,0.110137,50.709633,935.80045)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2916"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1165314,-6.0668154e-3,-2.0209567e-3,0.1214607,-3.8680542,939.96534)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.3444707e-2,1.8487482e-2,-1.4039188e-2,3.7421814e-2,51.893043,980.21989)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2920"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2926"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2932"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1120187,-1.4993522e-3,-4.2627845e-3,0.2968305,104.02369,909.25382)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1640609,-9.2465106e-3,-4.7825931e-3,0.1243758,-8.7493642,928.67039)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1179543,0,0,0.1785201,-10.686764,923.74021)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2938"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1048032,-8.3786141e-3,1.8260737e-2,0.2326369,-19.630374,924.00628)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1624648,0,0,0.1323393,-12.475934,925.44358)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1483829,0,0,0.1150195,-7.7649242,931.6519)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.296103e-2,0,0,0.2538211,-10.686764,923.82437)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.3100355e-2,0,0,0.2533945,-10.686764,923.82437)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1467813,0,0,0.1434593,-10.686764,923.82436)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(7.3993726e-2,3.3221883e-2,-2.6107554e-2,6.724695e-2,49.112249,959.57615)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.136986,4.9606279e-2,5.4636832e-2,0.1338989,52.336614,918.44758)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2954"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1105621,4.0213051e-2,4.885316e-2,0.110137,50.709633,935.80045)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2956"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1165314,-6.0668154e-3,-2.0209567e-3,0.1214607,-3.8680542,939.96534)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.3444707e-2,1.8487482e-2,-1.4039188e-2,3.7421814e-2,51.893043,980.21989)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2960"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2962"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2966"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2968"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2970"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.9322071"
+ inkscape:cx="-40.416099"
+ inkscape:cy="76.614513"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g3703"
+ inkscape:label="button">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3861"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="rect3855"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="rect3575"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g2764"
+ transform="matrix(-0.9441851,0,0,0.9441851,101.95095,-892.34348)">
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="shadow"
+ id="g2766">
+ <svg:path
+ id="path2768"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 58.50953,1015.5694 C 61.758279,1010.8935 62.391833,995.69152 54.811082,986.33969 C 51.054736,981.85315 50.096422,978.72644 49.80025,974.52866 C 49.598691,969.74304 53.184967,955.45497 39.65945,954.36635 C 25.960089,953.27337 26.695802,966.79656 26.774597,973.95272 C 26.840043,979.99515 22.33797,983.41991 19.258422,988.12935 C 13.558602,996.78233 14.040661,1011.6809 20.332099,1019.745 C 28.301166,1029.8401 35.126613,1025.4621 39.65945,1025.8295 C 48.147435,1026.2942 48.428079,1030.82 58.50953,1015.5694 z"
+ id="path2770" />
+ <svg:path
+ style="fill:url(#linearGradient2892);stroke:none;stroke-width:0.99464899"
+ d="M 25.418368,989.01363 C 23.065756,991.17927 16.942726,1000.9271 26.624857,1006.9917 C 30.038037,1009.1036 23.581717,1017.1935 20.481675,1013.2749 C 15.011012,1006.2403 18.499804,995.03718 21.781575,991.02295 C 24.010097,988.17733 27.41782,987.07472 25.418368,989.01363 z"
+ id="path2772" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.18138897"
+ d="M 26.08371,987.6843 C 22.205364,990.81824 15.143718,1001.8515 25.443389,1009.0182 C 28.826108,1011.2527 22.44568,1018.2984 18.862957,1014.6944 C 6.4064858,1002.1671 19.187987,987.7623 23.587859,982.81011 C 27.520148,978.50339 31.003356,983.82758 26.08371,987.6843 z"
+ id="path2774" />
+ <svg:path
+ style="fill:url(#linearGradient2894);stroke:none;stroke-width:1.26498997"
+ id="path2776"
+ d="M 31.664753,961.1954 C 31.802902,964.7881 35.756645,967.91708 40.495684,968.18418 C 45.234723,968.45127 48.964483,965.75533 48.826334,962.16264 C 48.688185,958.56994 44.734442,955.44096 39.995403,955.17386 C 35.256364,954.90677 31.526604,957.60271 31.664753,961.1954 z" />
+ <svg:path
+ style="fill:url(#linearGradient2896);stroke:none;stroke-width:1.25"
+ d="M 53.419757,995.63189 C 51.557111,991.40871 47.598769,983.9902 47.51446,978.25367 C 47.51446,973.69108 33.848039,972.60144 32.751289,977.15692 C 31.654539,981.71239 28.870873,988.54567 27.099211,991.83578 C 25.327694,995.12574 20.161593,1005.5771 25.664933,1014.6975 C 30.621493,1022.772 45.650362,1029.1601 53.672831,1013.6009 C 56.372333,1008.2017 55.890854,1001.5109 53.419757,995.63189 z"
+ id="path2778" />
+ <svg:path
+ style="fill:url(#linearGradient2898);stroke:none;stroke-width:1.15804005"
+ d="M 55.103847,992.49792 C 56.695394,995.51028 60.007226,1003.4327 51.935435,1007.7673 C 43.246362,1012.3692 43.288142,1021.8403 53.717546,1017.3339 C 63.252261,1013.2606 59.037013,996.80137 56.370337,992.86324 C 54.621862,990.10499 51.999531,986.72882 55.103847,992.49792 z"
+ id="path2780" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.1813889"
+ d="M 53.737405,989.08374 C 56.271771,993.22057 62.353667,1002.9873 54.21453,1008.0531 C 43.248628,1014.7797 46.353426,1021.5065 56.36203,1015.45 C 70.453627,1006.9953 58.077969,989.96617 52.42502,983.47651 C 45.975701,976.19193 51.18374,984.79513 53.737405,989.08374 z"
+ id="path2782" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2900);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 29.039149,997.2349 C 29.039149,1001.8451 33.463852,1007.8339 41.060459,1007.7801 C 48.894686,1007.8449 52.238456,1001.8451 52.238456,997.2349 C 52.238456,992.62469 47.041789,988.88312 40.638728,988.88312 C 34.235818,988.88312 29.039149,992.62469 29.039149,997.2349 z"
+ id="path2784" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2902);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 33.173005,982.72504 C 33.257323,987.50319 36.366614,988.63033 40.301448,988.63033 C 44.236419,988.63033 47.092618,987.92499 47.430028,982.72504 C 47.430028,979.46536 44.236419,977.57898 40.301448,977.57898 C 36.366614,977.57898 33.173005,979.46536 33.173005,982.72504 z"
+ id="path2786" />
+ <svg:path
+ style="fill:url(#linearGradient2904);stroke:none;stroke-width:1.25"
+ d="M 56.962935,990.06397 C 54.392147,986.14655 48.979647,980.14359 55.950495,990.9075 C 61.602717,999.76552 58.040531,1005.4582 56.203569,1007.0205 C 50.903095,1011.7456 51.129613,1014.9071 55.275583,1012.4195 C 64.218057,1007.1047 62.362084,998.16263 56.962935,990.06397 z"
+ id="path2788" />
+ <svg:path
+ style="fill:url(#linearGradient2906);stroke:none;stroke-width:1.25"
+ d="M 19.759781,991.66672 C 21.982738,987.06656 29.066337,975.4285 19.422252,988.96722 C 10.648688,1001.1997 16.80706,1009.72 17.903809,1010.5637 C 19.000414,1011.4072 22.712357,1013.0944 21.615607,1010.1418 C 20.519002,1007.1893 15.05165,1001.5842 19.759781,991.66672 z"
+ id="path2790" />
+ <svg:path
+ style="fill:url(#linearGradient2908);stroke:#e68c3f;stroke-width:0.90694451"
+ d="M 58.90307,1027.8576 C 64.771656,1024.7499 73.305641,1028.456 70.207518,1020.012 C 69.587024,1018.091 71.1326,1015.2222 70.123208,1013.3476 C 68.942149,1011.0697 66.411264,1011.576 64.892678,1010.0574 C 63.395421,1008.477 62.44625,1005.755 59.662292,1006.1768 C 56.878481,1006.5987 55.026718,1010.0166 53.082373,1014.1912 C 51.64824,1017.186 46.560934,1021.398 46.893384,1024.7492 C 47.284604,1029.9006 53.13708,1030.8714 58.90307,1027.8576 z"
+ id="path2792" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2910);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 16.127521,1008.0402 C 17.029167,1009.731 20.746135,1012.414 23.223281,1011.7147 C 25.750905,1011.0288 26.88919,1007.2029 26.394207,1004.3074 C 25.934699,1001.0466 23.223359,1000.8845 19.823242,1002.493 C 16.16776,1004.2734 15.062317,1005.7994 16.127521,1008.0402 z"
+ id="path2794" />
+ <svg:path
+ style="fill:url(#linearGradient2912);stroke:#e68c3f;stroke-width:0.90694427"
+ d="M 18.179162,1026.4089 C 13.87474,1021.189 4.3192958,1022.2598 10.763527,1015.1027 C 12.126993,1013.5683 11.720015,1010.2418 13.376347,1008.8368 C 15.34654,1007.114 17.519866,1008.5269 19.51685,1007.6259 C 21.517397,1006.6601 23.608349,1004.7825 26.050398,1006.118 C 28.492312,1007.4534 28.755053,1010.9277 28.985349,1015.4758 C 29.187274,1018.7519 32.172611,1024.2302 30.587623,1027.2404 C 28.263196,1031.9082 22.283252,1031.2902 18.179162,1026.4089 z"
+ id="path2796" />
+ <svg:path
+ style="fill:url(#linearGradient2914);stroke:none;stroke-width:1.52532005"
+ d="M 20.051175,1019.4313 C 13.388316,1009.5962 18.354168,1009.6678 20.017535,1008.924 C 21.685745,1008.1269 23.455098,1006.5822 25.41687,1007.6705 C 27.378532,1008.7586 27.490792,1011.6059 27.544602,1015.3334 C 27.612897,1018.0184 29.860678,1022.481 28.508731,1024.9728 C 26.887077,1027.8773 22.95143,1023.6588 20.051175,1019.4313 z"
+ id="path2798" />
+ <svg:path
+ style="fill:url(#linearGradient2916);stroke:none;stroke-width:1.52532005"
+ d="M 60.266957,1020.8476 C 70.239388,1014.392 65.574377,1012.2002 64.060516,1011.1862 C 62.245075,1009.8858 62.230977,1007.3514 60.000086,1007.5878 C 57.76931,1007.8243 56.470616,1010.5707 54.966546,1013.9818 C 53.855983,1016.4273 50.045026,1019.6591 50.317498,1022.4809 C 50.677257,1025.7879 55.947028,1023.6082 60.266957,1020.8476 z"
+ id="path2800" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 16.725817,1007.9484 C 17.502928,1009.3035 20.706515,1011.4538 22.841527,1010.8933 C 25.020043,1010.3436 26.001118,1007.2773 25.574505,1004.9567 C 25.178468,1002.3433 22.841611,1002.2134 19.911105,1003.5025 C 16.760504,1004.9294 15.80774,1006.1524 16.725817,1007.9484 z"
+ id="path2802" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2918);stroke:none;stroke-width:2.85509992"
+ d="M 18.87234,1007.1894 C 19.36751,1008.1303 21.478825,1009.6233 22.926515,1009.2342 C 24.403253,1008.8525 25.125721,1006.7234 24.88601,1005.1121 C 24.672835,1003.2975 23.103423,1003.2073 21.10574,1004.1024 C 18.957185,1005.0932 18.29132,1005.9424 18.87234,1007.1894 z"
+ id="path2804" />
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g2806">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2808"
+ style="fill:url(#linearGradient2920);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2810"
+ style="fill:url(#linearGradient2922);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2812"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2814"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2816"
+ style="fill:url(#linearGradient2924);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2818"
+ style="fill:url(#linearGradient2926);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="g2820">
+ <svg:path
+ id="path2822"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2928);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2824"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2826"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient2930);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g2828"
+ transform="matrix(0.9441851,0,0,0.9441851,-2.6867747,-886.10569)">
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="shadow"
+ id="g2830">
+ <svg:path
+ id="path2832"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 58.50953,1015.5694 C 61.758279,1010.8935 62.391833,995.69152 54.811082,986.33969 C 51.054736,981.85315 50.096422,978.72644 49.80025,974.52866 C 49.598691,969.74304 53.184967,955.45497 39.65945,954.36635 C 25.960089,953.27337 26.695802,966.79656 26.774597,973.95272 C 26.840043,979.99515 22.33797,983.41991 19.258422,988.12935 C 13.558602,996.78233 14.040661,1011.6809 20.332099,1019.745 C 28.301166,1029.8401 35.126613,1025.4621 39.65945,1025.8295 C 48.147435,1026.2942 48.428079,1030.82 58.50953,1015.5694 z"
+ id="path2834" />
+ <svg:path
+ style="fill:url(#linearGradient2932);stroke:none;stroke-width:0.99464899"
+ d="M 25.418368,989.01363 C 23.065756,991.17927 16.942726,1000.9271 26.624857,1006.9917 C 30.038037,1009.1036 23.581717,1017.1935 20.481675,1013.2749 C 15.011012,1006.2403 18.499804,995.03718 21.781575,991.02295 C 24.010097,988.17733 27.41782,987.07472 25.418368,989.01363 z"
+ id="path2836" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.18138897"
+ d="M 26.08371,987.6843 C 22.205364,990.81824 15.143718,1001.8515 25.443389,1009.0182 C 28.826108,1011.2527 22.44568,1018.2984 18.862957,1014.6944 C 6.4064858,1002.1671 19.187987,987.7623 23.587859,982.81011 C 27.520148,978.50339 31.003356,983.82758 26.08371,987.6843 z"
+ id="path2838" />
+ <svg:path
+ style="fill:url(#linearGradient2934);stroke:none;stroke-width:1.26498997"
+ id="path2840"
+ d="M 31.664753,961.1954 C 31.802902,964.7881 35.756645,967.91708 40.495684,968.18418 C 45.234723,968.45127 48.964483,965.75533 48.826334,962.16264 C 48.688185,958.56994 44.734442,955.44096 39.995403,955.17386 C 35.256364,954.90677 31.526604,957.60271 31.664753,961.1954 z" />
+ <svg:path
+ style="fill:url(#linearGradient2936);stroke:none;stroke-width:1.25"
+ d="M 53.419757,995.63189 C 51.557111,991.40871 47.598769,983.9902 47.51446,978.25367 C 47.51446,973.69108 33.848039,972.60144 32.751289,977.15692 C 31.654539,981.71239 28.870873,988.54567 27.099211,991.83578 C 25.327694,995.12574 20.161593,1005.5771 25.664933,1014.6975 C 30.621493,1022.772 45.650362,1029.1601 53.672831,1013.6009 C 56.372333,1008.2017 55.890854,1001.5109 53.419757,995.63189 z"
+ id="path2842" />
+ <svg:path
+ style="fill:url(#linearGradient2938);stroke:none;stroke-width:1.15804005"
+ d="M 55.103847,992.49792 C 56.695394,995.51028 60.007226,1003.4327 51.935435,1007.7673 C 43.246362,1012.3692 43.288142,1021.8403 53.717546,1017.3339 C 63.252261,1013.2606 59.037013,996.80137 56.370337,992.86324 C 54.621862,990.10499 51.999531,986.72882 55.103847,992.49792 z"
+ id="path2844" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.1813889"
+ d="M 53.737405,989.08374 C 56.271771,993.22057 62.353667,1002.9873 54.21453,1008.0531 C 43.248628,1014.7797 46.353426,1021.5065 56.36203,1015.45 C 70.453627,1006.9953 58.077969,989.96617 52.42502,983.47651 C 45.975701,976.19193 51.18374,984.79513 53.737405,989.08374 z"
+ id="path2846" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2940);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 29.039149,997.2349 C 29.039149,1001.8451 33.463852,1007.8339 41.060459,1007.7801 C 48.894686,1007.8449 52.238456,1001.8451 52.238456,997.2349 C 52.238456,992.62469 47.041789,988.88312 40.638728,988.88312 C 34.235818,988.88312 29.039149,992.62469 29.039149,997.2349 z"
+ id="path2848" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2942);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 33.173005,982.72504 C 33.257323,987.50319 36.366614,988.63033 40.301448,988.63033 C 44.236419,988.63033 47.092618,987.92499 47.430028,982.72504 C 47.430028,979.46536 44.236419,977.57898 40.301448,977.57898 C 36.366614,977.57898 33.173005,979.46536 33.173005,982.72504 z"
+ id="path2850" />
+ <svg:path
+ style="fill:url(#linearGradient2944);stroke:none;stroke-width:1.25"
+ d="M 56.962935,990.06397 C 54.392147,986.14655 48.979647,980.14359 55.950495,990.9075 C 61.602717,999.76552 58.040531,1005.4582 56.203569,1007.0205 C 50.903095,1011.7456 51.129613,1014.9071 55.275583,1012.4195 C 64.218057,1007.1047 62.362084,998.16263 56.962935,990.06397 z"
+ id="path2852" />
+ <svg:path
+ style="fill:url(#linearGradient2946);stroke:none;stroke-width:1.25"
+ d="M 19.759781,991.66672 C 21.982738,987.06656 29.066337,975.4285 19.422252,988.96722 C 10.648688,1001.1997 16.80706,1009.72 17.903809,1010.5637 C 19.000414,1011.4072 22.712357,1013.0944 21.615607,1010.1418 C 20.519002,1007.1893 15.05165,1001.5842 19.759781,991.66672 z"
+ id="path2854" />
+ <svg:path
+ style="fill:url(#linearGradient2948);stroke:#e68c3f;stroke-width:0.90694451"
+ d="M 58.90307,1027.8576 C 64.771656,1024.7499 73.305641,1028.456 70.207518,1020.012 C 69.587024,1018.091 71.1326,1015.2222 70.123208,1013.3476 C 68.942149,1011.0697 66.411264,1011.576 64.892678,1010.0574 C 63.395421,1008.477 62.44625,1005.755 59.662292,1006.1768 C 56.878481,1006.5987 55.026718,1010.0166 53.082373,1014.1912 C 51.64824,1017.186 46.560934,1021.398 46.893384,1024.7492 C 47.284604,1029.9006 53.13708,1030.8714 58.90307,1027.8576 z"
+ id="path2856" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2950);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 16.127521,1008.0402 C 17.029167,1009.731 20.746135,1012.414 23.223281,1011.7147 C 25.750905,1011.0288 26.88919,1007.2029 26.394207,1004.3074 C 25.934699,1001.0466 23.223359,1000.8845 19.823242,1002.493 C 16.16776,1004.2734 15.062317,1005.7994 16.127521,1008.0402 z"
+ id="path2858" />
+ <svg:path
+ style="fill:url(#linearGradient2952);stroke:#e68c3f;stroke-width:0.90694427"
+ d="M 18.179162,1026.4089 C 13.87474,1021.189 4.3192958,1022.2598 10.763527,1015.1027 C 12.126993,1013.5683 11.720015,1010.2418 13.376347,1008.8368 C 15.34654,1007.114 17.519866,1008.5269 19.51685,1007.6259 C 21.517397,1006.6601 23.608349,1004.7825 26.050398,1006.118 C 28.492312,1007.4534 28.755053,1010.9277 28.985349,1015.4758 C 29.187274,1018.7519 32.172611,1024.2302 30.587623,1027.2404 C 28.263196,1031.9082 22.283252,1031.2902 18.179162,1026.4089 z"
+ id="path2860" />
+ <svg:path
+ style="fill:url(#linearGradient2954);stroke:none;stroke-width:1.52532005"
+ d="M 20.051175,1019.4313 C 13.388316,1009.5962 18.354168,1009.6678 20.017535,1008.924 C 21.685745,1008.1269 23.455098,1006.5822 25.41687,1007.6705 C 27.378532,1008.7586 27.490792,1011.6059 27.544602,1015.3334 C 27.612897,1018.0184 29.860678,1022.481 28.508731,1024.9728 C 26.887077,1027.8773 22.95143,1023.6588 20.051175,1019.4313 z"
+ id="path2862" />
+ <svg:path
+ style="fill:url(#linearGradient2956);stroke:none;stroke-width:1.52532005"
+ d="M 60.266957,1020.8476 C 70.239388,1014.392 65.574377,1012.2002 64.060516,1011.1862 C 62.245075,1009.8858 62.230977,1007.3514 60.000086,1007.5878 C 57.76931,1007.8243 56.470616,1010.5707 54.966546,1013.9818 C 53.855983,1016.4273 50.045026,1019.6591 50.317498,1022.4809 C 50.677257,1025.7879 55.947028,1023.6082 60.266957,1020.8476 z"
+ id="path2864" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 16.725817,1007.9484 C 17.502928,1009.3035 20.706515,1011.4538 22.841527,1010.8933 C 25.020043,1010.3436 26.001118,1007.2773 25.574505,1004.9567 C 25.178468,1002.3433 22.841611,1002.2134 19.911105,1003.5025 C 16.760504,1004.9294 15.80774,1006.1524 16.725817,1007.9484 z"
+ id="path2866" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient2958);stroke:none;stroke-width:2.85509992"
+ d="M 18.87234,1007.1894 C 19.36751,1008.1303 21.478825,1009.6233 22.926515,1009.2342 C 24.403253,1008.8525 25.125721,1006.7234 24.88601,1005.1121 C 24.672835,1003.2975 23.103423,1003.2073 21.10574,1004.1024 C 18.957185,1005.0932 18.29132,1005.9424 18.87234,1007.1894 z"
+ id="path2868" />
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g2870">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2872"
+ style="fill:url(#linearGradient2960);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2874"
+ style="fill:url(#linearGradient2962);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2876"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2878"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2880"
+ style="fill:url(#linearGradient2964);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2882"
+ style="fill:url(#linearGradient2966);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="g2884">
+ <svg:path
+ id="path2886"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2968);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2888"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2890"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient2970);stroke:none" />
+ </svg:g>
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:label="frame0"
+ inkscape:groupmode="layer"
+ id="frame0"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="layer9"
+ inkscape:label="shadow2"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#radialGradient3570);stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;display:inline"
+ id="path175"
+ d="M 0,611.00469 C 0,653.7537 129.41776,688.40863 289.06266,688.40863 C 448.70754,688.40863 578.12532,653.7537 578.12532,611.00469 C 578.12532,568.25568 448.70754,533.60077 289.06266,533.60077 C 129.41776,533.60077 0,568.25568 0,611.00469 z" />
+ </svg:g>
+ <svg:g
+ id="layer6"
+ inkscape:label="frame1"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#linearGradient2642);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path2630"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 361.85468,127.67443 359.00739,118.24128 357.00895,114.86192 C 355.89587,112.9797 347.27105,112.19826 339.85502,111.76885 C 331.55177,111.28806 321.52642,113.19669 319.72949,114.88767 C 317.92276,116.58787 314.73576,126.38584 314.16831,133.61019 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:url(#linearGradient2644);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path2632"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 228.91667,114.09809 230.38619,112.5739 C 232.54915,110.33047 249.46451,107.81662 256.9201,107.46145 C 265.42816,107.05613 281.71312,107.50204 283.80551,109.29 C 285.65087,110.86686 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path2634"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path2636"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient2646);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path2638"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient2648);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path2640"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ </svg:g>
+ <svg:g
+ id="layer7"
+ inkscape:label="frame2"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#linearGradient2663);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path2651"
+ d="M 314.16831,133.61019 C 314.29181,154.36704 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 361.90297,156.48561 361.35673,136.34258 C 359.1013,136.26549 352.88574,136.61422 339.85502,135.8597 C 326.82429,135.10517 314.0448,131.82755 314.16831,133.61019 z"
+ sodipodi:nodetypes="cccsc" />
+ <svg:path
+ style="fill:url(#linearGradient2665);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path2653"
+ d="M 290.51788,135.15074 C 290.89516,158.85246 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.88427,156.82455 225.01154,133.35969 C 225.01964,131.86711 249.46169,133.54777 262.24994,133.89742 C 272.68072,134.18262 290.71918,133.18492 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path2655"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path2657"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient2667);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path2659"
+ d="M 272.10899,134.17243 C 271.95738,141.29898 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.11387,141.57602 254.73332,134.42518 C 254.67174,133.26805 272.4738,133.65486 272.10899,134.17243 z"
+ sodipodi:nodetypes="cssc" />
+ <svg:path
+ style="fill:url(#linearGradient2669);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path2661"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.82508,142.37083 345.59316,136.4163 C 345.78597,134.92152 333.72754,134.51079 332.68196,134.9396 z"
+ sodipodi:nodetypes="cssc" />
+ </svg:g>
+ <svg:g
+ id="layer8"
+ inkscape:label="frame3"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)" />
+ <svg:g
+ style="display:inline"
+ id="g2754"
+ inkscape:label="button"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:g
+ id="g2756">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2758"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2760"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2762"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3897"
+ transform="matrix(-0.9441851,0,0,0.9441851,101.95095,60.018698)">
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="shadow"
+ id="g3899">
+ <svg:path
+ id="path3901"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 58.50953,1015.5694 C 61.758279,1010.8935 62.391833,995.69152 54.811082,986.33969 C 51.054736,981.85315 50.096422,978.72644 49.80025,974.52866 C 49.598691,969.74304 53.184967,955.45497 39.65945,954.36635 C 25.960089,953.27337 26.695802,966.79656 26.774597,973.95272 C 26.840043,979.99515 22.33797,983.41991 19.258422,988.12935 C 13.558602,996.78233 14.040661,1011.6809 20.332099,1019.745 C 28.301166,1029.8401 35.126613,1025.4621 39.65945,1025.8295 C 48.147435,1026.2942 48.428079,1030.82 58.50953,1015.5694 z"
+ id="path3903" />
+ <svg:path
+ style="fill:url(#linearGradient3961);stroke:none;stroke-width:0.99464899"
+ d="M 25.418368,989.01363 C 23.065756,991.17927 16.942726,1000.9271 26.624857,1006.9917 C 30.038037,1009.1036 23.581717,1017.1935 20.481675,1013.2749 C 15.011012,1006.2403 18.499804,995.03718 21.781575,991.02295 C 24.010097,988.17733 27.41782,987.07472 25.418368,989.01363 z"
+ id="path3905" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.18138897"
+ d="M 26.08371,987.6843 C 22.205364,990.81824 15.143718,1001.8515 25.443389,1009.0182 C 28.826108,1011.2527 22.44568,1018.2984 18.862957,1014.6944 C 6.4064858,1002.1671 19.187987,987.7623 23.587859,982.81011 C 27.520148,978.50339 31.003356,983.82758 26.08371,987.6843 z"
+ id="path3907" />
+ <svg:path
+ style="fill:url(#linearGradient3963);stroke:none;stroke-width:1.26498997"
+ id="path3909"
+ d="M 31.664753,961.1954 C 31.802902,964.7881 35.756645,967.91708 40.495684,968.18418 C 45.234723,968.45127 48.964483,965.75533 48.826334,962.16264 C 48.688185,958.56994 44.734442,955.44096 39.995403,955.17386 C 35.256364,954.90677 31.526604,957.60271 31.664753,961.1954 z" />
+ <svg:path
+ style="fill:url(#linearGradient3965);stroke:none;stroke-width:1.25"
+ d="M 53.419757,995.63189 C 51.557111,991.40871 47.598769,983.9902 47.51446,978.25367 C 47.51446,973.69108 33.848039,972.60144 32.751289,977.15692 C 31.654539,981.71239 28.870873,988.54567 27.099211,991.83578 C 25.327694,995.12574 20.161593,1005.5771 25.664933,1014.6975 C 30.621493,1022.772 45.650362,1029.1601 53.672831,1013.6009 C 56.372333,1008.2017 55.890854,1001.5109 53.419757,995.63189 z"
+ id="path3911" />
+ <svg:path
+ style="fill:url(#linearGradient3967);stroke:none;stroke-width:1.15804005"
+ d="M 55.103847,992.49792 C 56.695394,995.51028 60.007226,1003.4327 51.935435,1007.7673 C 43.246362,1012.3692 43.288142,1021.8403 53.717546,1017.3339 C 63.252261,1013.2606 59.037013,996.80137 56.370337,992.86324 C 54.621862,990.10499 51.999531,986.72882 55.103847,992.49792 z"
+ id="path3913" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.1813889"
+ d="M 53.737405,989.08374 C 56.271771,993.22057 62.353667,1002.9873 54.21453,1008.0531 C 43.248628,1014.7797 46.353426,1021.5065 56.36203,1015.45 C 70.453627,1006.9953 58.077969,989.96617 52.42502,983.47651 C 45.975701,976.19193 51.18374,984.79513 53.737405,989.08374 z"
+ id="path3915" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3969);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 29.039149,997.2349 C 29.039149,1001.8451 33.463852,1007.8339 41.060459,1007.7801 C 48.894686,1007.8449 52.238456,1001.8451 52.238456,997.2349 C 52.238456,992.62469 47.041789,988.88312 40.638728,988.88312 C 34.235818,988.88312 29.039149,992.62469 29.039149,997.2349 z"
+ id="path3917" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3971);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 33.173005,982.72504 C 33.257323,987.50319 36.366614,988.63033 40.301448,988.63033 C 44.236419,988.63033 47.092618,987.92499 47.430028,982.72504 C 47.430028,979.46536 44.236419,977.57898 40.301448,977.57898 C 36.366614,977.57898 33.173005,979.46536 33.173005,982.72504 z"
+ id="path3919" />
+ <svg:path
+ style="fill:url(#linearGradient3973);stroke:none;stroke-width:1.25"
+ d="M 56.962935,990.06397 C 54.392147,986.14655 48.979647,980.14359 55.950495,990.9075 C 61.602717,999.76552 58.040531,1005.4582 56.203569,1007.0205 C 50.903095,1011.7456 51.129613,1014.9071 55.275583,1012.4195 C 64.218057,1007.1047 62.362084,998.16263 56.962935,990.06397 z"
+ id="path3921" />
+ <svg:path
+ style="fill:url(#linearGradient3975);stroke:none;stroke-width:1.25"
+ d="M 19.759781,991.66672 C 21.982738,987.06656 29.066337,975.4285 19.422252,988.96722 C 10.648688,1001.1997 16.80706,1009.72 17.903809,1010.5637 C 19.000414,1011.4072 22.712357,1013.0944 21.615607,1010.1418 C 20.519002,1007.1893 15.05165,1001.5842 19.759781,991.66672 z"
+ id="path3923" />
+ <svg:path
+ style="fill:url(#linearGradient3977);stroke:#e68c3f;stroke-width:0.90694451"
+ d="M 58.90307,1027.8576 C 64.771656,1024.7499 73.305641,1028.456 70.207518,1020.012 C 69.587024,1018.091 71.1326,1015.2222 70.123208,1013.3476 C 68.942149,1011.0697 66.411264,1011.576 64.892678,1010.0574 C 63.395421,1008.477 62.44625,1005.755 59.662292,1006.1768 C 56.878481,1006.5987 55.026718,1010.0166 53.082373,1014.1912 C 51.64824,1017.186 46.560934,1021.398 46.893384,1024.7492 C 47.284604,1029.9006 53.13708,1030.8714 58.90307,1027.8576 z"
+ id="path3925" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3979);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 16.127521,1008.0402 C 17.029167,1009.731 20.746135,1012.414 23.223281,1011.7147 C 25.750905,1011.0288 26.88919,1007.2029 26.394207,1004.3074 C 25.934699,1001.0466 23.223359,1000.8845 19.823242,1002.493 C 16.16776,1004.2734 15.062317,1005.7994 16.127521,1008.0402 z"
+ id="path3927" />
+ <svg:path
+ style="fill:url(#linearGradient3981);stroke:#e68c3f;stroke-width:0.90694427"
+ d="M 18.179162,1026.4089 C 13.87474,1021.189 4.3192958,1022.2598 10.763527,1015.1027 C 12.126993,1013.5683 11.720015,1010.2418 13.376347,1008.8368 C 15.34654,1007.114 17.519866,1008.5269 19.51685,1007.6259 C 21.517397,1006.6601 23.608349,1004.7825 26.050398,1006.118 C 28.492312,1007.4534 28.755053,1010.9277 28.985349,1015.4758 C 29.187274,1018.7519 32.172611,1024.2302 30.587623,1027.2404 C 28.263196,1031.9082 22.283252,1031.2902 18.179162,1026.4089 z"
+ id="path3929" />
+ <svg:path
+ style="fill:url(#linearGradient3983);stroke:none;stroke-width:1.52532005"
+ d="M 20.051175,1019.4313 C 13.388316,1009.5962 18.354168,1009.6678 20.017535,1008.924 C 21.685745,1008.1269 23.455098,1006.5822 25.41687,1007.6705 C 27.378532,1008.7586 27.490792,1011.6059 27.544602,1015.3334 C 27.612897,1018.0184 29.860678,1022.481 28.508731,1024.9728 C 26.887077,1027.8773 22.95143,1023.6588 20.051175,1019.4313 z"
+ id="path3931" />
+ <svg:path
+ style="fill:url(#linearGradient3985);stroke:none;stroke-width:1.52532005"
+ d="M 60.266957,1020.8476 C 70.239388,1014.392 65.574377,1012.2002 64.060516,1011.1862 C 62.245075,1009.8858 62.230977,1007.3514 60.000086,1007.5878 C 57.76931,1007.8243 56.470616,1010.5707 54.966546,1013.9818 C 53.855983,1016.4273 50.045026,1019.6591 50.317498,1022.4809 C 50.677257,1025.7879 55.947028,1023.6082 60.266957,1020.8476 z"
+ id="path3933" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 16.725817,1007.9484 C 17.502928,1009.3035 20.706515,1011.4538 22.841527,1010.8933 C 25.020043,1010.3436 26.001118,1007.2773 25.574505,1004.9567 C 25.178468,1002.3433 22.841611,1002.2134 19.911105,1003.5025 C 16.760504,1004.9294 15.80774,1006.1524 16.725817,1007.9484 z"
+ id="path3935" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3987);stroke:none;stroke-width:2.85509992"
+ d="M 18.87234,1007.1894 C 19.36751,1008.1303 21.478825,1009.6233 22.926515,1009.2342 C 24.403253,1008.8525 25.125721,1006.7234 24.88601,1005.1121 C 24.672835,1003.2975 23.103423,1003.2073 21.10574,1004.1024 C 18.957185,1005.0932 18.29132,1005.9424 18.87234,1007.1894 z"
+ id="path3937" />
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g3939">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path3941"
+ style="fill:url(#linearGradient3989);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path3943"
+ style="fill:url(#linearGradient3991);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path3945"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path3947"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path3949"
+ style="fill:url(#linearGradient3993);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path3951"
+ style="fill:url(#linearGradient3995);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="g3953">
+ <svg:path
+ id="path3955"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3997);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path3957"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path3959"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient3999);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ id="g3720"
+ transform="matrix(0.9441851,0,0,0.9441851,-2.6867747,66.256491)">
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="shadow"
+ id="layer3">
+ <svg:path
+ id="path2662"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 58.50953,1015.5694 C 61.758279,1010.8935 62.391833,995.69152 54.811082,986.33969 C 51.054736,981.85315 50.096422,978.72644 49.80025,974.52866 C 49.598691,969.74304 53.184967,955.45497 39.65945,954.36635 C 25.960089,953.27337 26.695802,966.79656 26.774597,973.95272 C 26.840043,979.99515 22.33797,983.41991 19.258422,988.12935 C 13.558602,996.78233 14.040661,1011.6809 20.332099,1019.745 C 28.301166,1029.8401 35.126613,1025.4621 39.65945,1025.8295 C 48.147435,1026.2942 48.428079,1030.82 58.50953,1015.5694 z"
+ id="path106" />
+ <svg:path
+ style="fill:url(#linearGradient3753);stroke:none;stroke-width:0.99464899"
+ d="M 25.418368,989.01363 C 23.065756,991.17927 16.942726,1000.9271 26.624857,1006.9917 C 30.038037,1009.1036 23.581717,1017.1935 20.481675,1013.2749 C 15.011012,1006.2403 18.499804,995.03718 21.781575,991.02295 C 24.010097,988.17733 27.41782,987.07472 25.418368,989.01363 z"
+ id="path113" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.18138897"
+ d="M 26.08371,987.6843 C 22.205364,990.81824 15.143718,1001.8515 25.443389,1009.0182 C 28.826108,1011.2527 22.44568,1018.2984 18.862957,1014.6944 C 6.4064858,1002.1671 19.187987,987.7623 23.587859,982.81011 C 27.520148,978.50339 31.003356,983.82758 26.08371,987.6843 z"
+ id="path111" />
+ <svg:path
+ style="fill:url(#linearGradient3755);stroke:none;stroke-width:1.26498997"
+ id="path114"
+ d="M 31.664753,961.1954 C 31.802902,964.7881 35.756645,967.91708 40.495684,968.18418 C 45.234723,968.45127 48.964483,965.75533 48.826334,962.16264 C 48.688185,958.56994 44.734442,955.44096 39.995403,955.17386 C 35.256364,954.90677 31.526604,957.60271 31.664753,961.1954 z" />
+ <svg:path
+ style="fill:url(#linearGradient3757);stroke:none;stroke-width:1.25"
+ d="M 53.419757,995.63189 C 51.557111,991.40871 47.598769,983.9902 47.51446,978.25367 C 47.51446,973.69108 33.848039,972.60144 32.751289,977.15692 C 31.654539,981.71239 28.870873,988.54567 27.099211,991.83578 C 25.327694,995.12574 20.161593,1005.5771 25.664933,1014.6975 C 30.621493,1022.772 45.650362,1029.1601 53.672831,1013.6009 C 56.372333,1008.2017 55.890854,1001.5109 53.419757,995.63189 z"
+ id="path128" />
+ <svg:path
+ style="fill:url(#linearGradient3759);stroke:none;stroke-width:1.15804005"
+ d="M 55.103847,992.49792 C 56.695394,995.51028 60.007226,1003.4327 51.935435,1007.7673 C 43.246362,1012.3692 43.288142,1021.8403 53.717546,1017.3339 C 63.252261,1013.2606 59.037013,996.80137 56.370337,992.86324 C 54.621862,990.10499 51.999531,986.72882 55.103847,992.49792 z"
+ id="path112" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.1813889"
+ d="M 53.737405,989.08374 C 56.271771,993.22057 62.353667,1002.9873 54.21453,1008.0531 C 43.248628,1014.7797 46.353426,1021.5065 56.36203,1015.45 C 70.453627,1006.9953 58.077969,989.96617 52.42502,983.47651 C 45.975701,976.19193 51.18374,984.79513 53.737405,989.08374 z"
+ id="path109" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3761);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 29.039149,997.2349 C 29.039149,1001.8451 33.463852,1007.8339 41.060459,1007.7801 C 48.894686,1007.8449 52.238456,1001.8451 52.238456,997.2349 C 52.238456,992.62469 47.041789,988.88312 40.638728,988.88312 C 34.235818,988.88312 29.039149,992.62469 29.039149,997.2349 z"
+ id="path125" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3763);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 33.173005,982.72504 C 33.257323,987.50319 36.366614,988.63033 40.301448,988.63033 C 44.236419,988.63033 47.092618,987.92499 47.430028,982.72504 C 47.430028,979.46536 44.236419,977.57898 40.301448,977.57898 C 36.366614,977.57898 33.173005,979.46536 33.173005,982.72504 z"
+ id="path127" />
+ <svg:path
+ style="fill:url(#linearGradient3765);stroke:none;stroke-width:1.25"
+ d="M 56.962935,990.06397 C 54.392147,986.14655 48.979647,980.14359 55.950495,990.9075 C 61.602717,999.76552 58.040531,1005.4582 56.203569,1007.0205 C 50.903095,1011.7456 51.129613,1014.9071 55.275583,1012.4195 C 64.218057,1007.1047 62.362084,998.16263 56.962935,990.06397 z"
+ id="path129" />
+ <svg:path
+ style="fill:url(#linearGradient3767);stroke:none;stroke-width:1.25"
+ d="M 19.759781,991.66672 C 21.982738,987.06656 29.066337,975.4285 19.422252,988.96722 C 10.648688,1001.1997 16.80706,1009.72 17.903809,1010.5637 C 19.000414,1011.4072 22.712357,1013.0944 21.615607,1010.1418 C 20.519002,1007.1893 15.05165,1001.5842 19.759781,991.66672 z"
+ id="path131" />
+ <svg:path
+ style="fill:url(#linearGradient3769);stroke:#e68c3f;stroke-width:0.90694451"
+ d="M 58.90307,1027.8576 C 64.771656,1024.7499 73.305641,1028.456 70.207518,1020.012 C 69.587024,1018.091 71.1326,1015.2222 70.123208,1013.3476 C 68.942149,1011.0697 66.411264,1011.576 64.892678,1010.0574 C 63.395421,1008.477 62.44625,1005.755 59.662292,1006.1768 C 56.878481,1006.5987 55.026718,1010.0166 53.082373,1014.1912 C 51.64824,1017.186 46.560934,1021.398 46.893384,1024.7492 C 47.284604,1029.9006 53.13708,1030.8714 58.90307,1027.8576 z"
+ id="path132" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3771);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 16.127521,1008.0402 C 17.029167,1009.731 20.746135,1012.414 23.223281,1011.7147 C 25.750905,1011.0288 26.88919,1007.2029 26.394207,1004.3074 C 25.934699,1001.0466 23.223359,1000.8845 19.823242,1002.493 C 16.16776,1004.2734 15.062317,1005.7994 16.127521,1008.0402 z"
+ id="path177" />
+ <svg:path
+ style="fill:url(#linearGradient3773);stroke:#e68c3f;stroke-width:0.90694427"
+ d="M 18.179162,1026.4089 C 13.87474,1021.189 4.3192958,1022.2598 10.763527,1015.1027 C 12.126993,1013.5683 11.720015,1010.2418 13.376347,1008.8368 C 15.34654,1007.114 17.519866,1008.5269 19.51685,1007.6259 C 21.517397,1006.6601 23.608349,1004.7825 26.050398,1006.118 C 28.492312,1007.4534 28.755053,1010.9277 28.985349,1015.4758 C 29.187274,1018.7519 32.172611,1024.2302 30.587623,1027.2404 C 28.263196,1031.9082 22.283252,1031.2902 18.179162,1026.4089 z"
+ id="path133" />
+ <svg:path
+ style="fill:url(#linearGradient3775);stroke:none;stroke-width:1.52532005"
+ d="M 20.051175,1019.4313 C 13.388316,1009.5962 18.354168,1009.6678 20.017535,1008.924 C 21.685745,1008.1269 23.455098,1006.5822 25.41687,1007.6705 C 27.378532,1008.7586 27.490792,1011.6059 27.544602,1015.3334 C 27.612897,1018.0184 29.860678,1022.481 28.508731,1024.9728 C 26.887077,1027.8773 22.95143,1023.6588 20.051175,1019.4313 z"
+ id="path134" />
+ <svg:path
+ style="fill:url(#linearGradient3777);stroke:none;stroke-width:1.52532005"
+ d="M 60.266957,1020.8476 C 70.239388,1014.392 65.574377,1012.2002 64.060516,1011.1862 C 62.245075,1009.8858 62.230977,1007.3514 60.000086,1007.5878 C 57.76931,1007.8243 56.470616,1010.5707 54.966546,1013.9818 C 53.855983,1016.4273 50.045026,1019.6591 50.317498,1022.4809 C 50.677257,1025.7879 55.947028,1023.6082 60.266957,1020.8476 z"
+ id="path135" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 16.725817,1007.9484 C 17.502928,1009.3035 20.706515,1011.4538 22.841527,1010.8933 C 25.020043,1010.3436 26.001118,1007.2773 25.574505,1004.9567 C 25.178468,1002.3433 22.841611,1002.2134 19.911105,1003.5025 C 16.760504,1004.9294 15.80774,1006.1524 16.725817,1007.9484 z"
+ id="path136" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3779);stroke:none;stroke-width:2.85509992"
+ d="M 18.87234,1007.1894 C 19.36751,1008.1303 21.478825,1009.6233 22.926515,1009.2342 C 24.403253,1008.8525 25.125721,1006.7234 24.88601,1005.1121 C 24.672835,1003.2975 23.103423,1003.2073 21.10574,1004.1024 C 18.957185,1005.0932 18.29132,1005.9424 18.87234,1007.1894 z"
+ id="path137" />
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="layer2">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2609"
+ style="fill:url(#linearGradient3781);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2611"
+ style="fill:url(#linearGradient3783);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2613"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2615"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2617"
+ style="fill:url(#linearGradient3785);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2619"
+ style="fill:url(#linearGradient3787);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(0.1160889,0,0,0.1160889,6.6320188,954.32961)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="layer5">
+ <svg:path
+ id="path2599"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3789);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2601"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2603"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient3791);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ id="layer10"
+ inkscape:label="frame4"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#linearGradient2616);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67176 C 329.91754,152.20926 307.83754,126.83926 266.40004,153.47801 C 258.69754,158.49051 252.44754,158.94926 237.62379,165.29676 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.78301 339.68129,161.45801 338.85129,160.67176 z"
+ id="path2610" />
+ <svg:path
+ style="fill:url(#linearGradient2618);stroke:none;display:inline"
+ d="M 324.76632,158.35216 C 320.27883,154.3195 306.12379,143.25322 287.35191,154.58278 C 283.39686,156.82606 279.31247,159.2677 273.23831,162.60283 C 261.20678,169.60072 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40067 C 329.56462,162.01789 325.18324,158.72683 324.76632,158.35216 z"
+ id="path2614" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 265.875,171.875 C 256.47389,171.95554 246.74579,182.59415 239.84375,184.34375 L 237.21875,184.3125 C 237.70756,184.34124 238.24774,184.42388 238.78125,184.53125 C 238.61143,184.55093 238.44706,184.58754 238.28125,184.59375 L 239.03125,184.59375 C 252.0621,187.46313 277.76657,211.9375 304.8125,211.9375 C 333.15376,211.9375 349.85875,185.78125 354.21875,185.78125 L 353.5625,185.78125 L 353.46875,185.78125 C 350.74993,185.51397 339.47792,172.52285 332.65625,172.34375 C 324.28987,172.1241 306.641,181.90625 300.09375,181.90625 C 291.30804,181.90625 278.12176,171.77225 265.875,171.875 z"
+ id="path2612" />
+ <svg:path
+ style="fill:url(#linearGradient3438);stroke:none;stroke-width:1.17873001;display:inline"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ id="path3412" />
+ <svg:path
+ style="fill:url(#linearGradient3440);stroke:none;stroke-width:0.93138498;display:inline"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ id="path3414" />
+ <svg:path
+ style="fill:url(#radialGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ id="path3397"
+ sodipodi:nodetypes="cszzzzczc" />
+ </svg:g>
+ <svg:g
+ id="layer4"
+ inkscape:label="frame5"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#linearGradient2602);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path2596" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 301.375,150.5 C 273.91941,150.5 244.17136,182.32401 238.375,184.3125 L 238.3125,184.3125 L 237.21875,184.3125 C 237.45623,184.32646 237.72063,184.37333 237.96875,184.40625 C 250.62831,186.08577 277.01605,211.9375 304.8125,211.9375 C 332.20521,211.9375 348.73745,187.51092 353.75,185.875 L 354.875,185.875 C 354.65566,185.86175 354.43846,185.81549 354.21875,185.78125 L 354.1875,185.78125 C 342.04133,183.83524 329.18955,150.5 301.375,150.5 z"
+ id="path2598" />
+ <svg:path
+ style="fill:url(#radialGradient3432);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ id="path3430"
+ sodipodi:nodetypes="cszzzzczc" />
+ <svg:path
+ style="fill:url(#linearGradient3446);stroke:none;stroke-width:1.17873001;display:inline"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ id="path3442" />
+ <svg:path
+ style="fill:url(#linearGradient3448);stroke:none;stroke-width:0.93138498;display:inline"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ id="path3444" />
+ </svg:g>
+ <svg:g
+ id="layer11"
+ inkscape:label="frame6"
+ style="display:none"
+ transform="translate(-110.12799,737.33839)">
+ <svg:path
+ style="fill:url(#linearGradient3469);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path3457"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305384 339.85502,98.550864 C 326.82429,97.796334 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient3471);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path3459"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761874 258.62565,92.111524 C 269.05643,92.396714 278.22021,98.924644 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path3461"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path3463"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient3473);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path3465"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient3475);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path3467"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ <svg:path
+ style="fill:url(#linearGradient3479);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path3477" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 265.87475,171.87463 C 256.47364,171.95517 246.74554,182.59378 239.8435,184.34338 L 237.2185,184.31213 C 237.70731,184.34087 238.24749,184.42351 238.781,184.53088 C 238.61118,184.55056 238.44681,184.58717 238.281,184.59338 L 239.031,184.59338 C 252.06185,187.46276 277.76632,211.93713 304.81225,211.93713 C 333.15351,211.93713 349.8585,185.78088 354.2185,185.78088 L 353.56225,185.78088 L 353.4685,185.78088 C 350.74968,185.5136 339.47767,172.52248 332.656,172.34338 C 324.28962,172.12373 306.64075,181.90588 300.0935,181.90588 C 291.30779,181.90588 278.12151,171.77188 265.87475,171.87463 z"
+ id="path3451" />
+ <svg:path
+ style="fill:url(#radialGradient3455);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 276.99975,203.10139 C 277.42239,203.10139 278.46486,199.56398 281.21364,196.39448 C 284.01125,193.16867 284.81034,192.03244 287.78926,191.19338 C 290.76818,190.35432 295.86748,192.58702 299.94928,192.66092 C 304.03108,192.73482 312.96245,188.4849 315.34678,192.29017 C 318.60697,195.37826 318.37974,196.78578 319.4955,198.91129 C 320.61126,201.03681 322.73807,206.43234 322.73807,206.43234 C 322.73807,206.43234 314.52142,210.94477 301.27205,210.35513 C 287.85858,209.75819 276.99975,203.10139 276.99975,203.10139 z"
+ id="path3453"
+ sodipodi:nodetypes="cszzzzczc" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/friends0.png b/data/images/sprites/friends0.png
new file mode 100644
index 0000000..7e894b0
Binary files /dev/null and b/data/images/sprites/friends0.png differ
diff --git a/data/images/sprites/friendsd.png b/data/images/sprites/friendsd.png
new file mode 100644
index 0000000..1a21af5
Binary files /dev/null and b/data/images/sprites/friendsd.png differ
diff --git a/data/images/sprites/goldstar.svg b/data/images/sprites/goldstar.svg
new file mode 100644
index 0000000..f5468e9
--- /dev/null
+++ b/data/images/sprites/goldstar.svg
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="goldstar.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3240">
+ <svg:stop
+ id="stop3242"
+ offset="0"
+ style="stop-color:#ffff98;stop-opacity:1;" />
+ <svg:stop
+ id="stop3244"
+ offset="1"
+ style="stop-color:#ffff00;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3265">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3267" />
+ <svg:stop
+ style="stop-color:#ffff00;stop-opacity:1;"
+ offset="1"
+ id="stop3269" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3271"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081"
+ gradientTransform="matrix(1,0,0,0.9861851,-0.846694,0.3701448)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3277">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.0288425"
+ id="feGaussianBlur3279" />
+ </svg:filter>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-4.135947,951.61041)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3293"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-4.135947,-0.75179)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient2444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-4.135947,-0.7517926)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3240"
+ id="radialGradient2448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-104.42559,-4.1455586)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3236">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.0038426"
+ id="feGaussianBlur3238" />
+ </svg:filter>
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.5431926"
+ inkscape:cx="-36.086517"
+ inkscape:cy="48.694768"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00000b;fill-opacity:0.8821918;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3277)"
+ d="M 12.797933,990.84276 C 17.031403,990.2783 40.174373,988.58491 40.174373,988.58491 L 52.874784,961.77293 L 63.599574,988.30268 L 93.516094,990.2783 L 72.913214,1013.7035 L 77.993374,1039.951 L 51.745854,1026.6862 L 27.473963,1041.3622 L 32.271896,1012.5746 L 12.797933,990.84276 z"
+ id="path3273" />
+ <svg:path
+ style="fill:url(#radialGradient3287);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 8,987.45598 C 12.23347,986.89152 35.37644,985.19813 35.37644,985.19813 L 48.076854,958.38615 L 58.801644,984.9159 L 88.718164,986.89152 L 68.115274,1010.3167 L 73.195444,1036.5643 L 46.947924,1023.2994 L 22.67603,1037.9754 L 27.473963,1009.1878 L 8,987.45598 z"
+ id="path2493" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00000b;fill-opacity:0.8821918;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3277)"
+ d="M 12.797933,38.48056 C 17.031403,37.9161 40.174373,36.22271 40.174373,36.22271 L 52.874784,9.41073 L 63.599574,35.94048 L 93.516091,37.9161 L 72.913214,61.3413 L 77.993374,87.5888 L 51.745854,74.324 L 27.473963,89 L 32.271896,60.2124 L 12.797933,38.48056 z"
+ id="path3289" />
+ <svg:path
+ style="fill:url(#radialGradient3293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 8,35.09378 C 12.23347,34.52932 35.37644,32.83593 35.37644,32.83593 L 48.076854,6.02395 L 58.801644,32.5537 L 88.718161,34.52932 L 68.115274,57.9545 L 73.195444,84.2021 L 46.947924,70.9372 L 22.67603,85.6132 L 27.473963,56.8256 L 8,35.09378 z"
+ id="path3291" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00000b;fill-opacity:0.8821918;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3277)"
+ d="M 12.797933,38.480557 C 17.031403,37.916097 40.174373,36.222707 40.174373,36.222707 L 52.874784,9.4107276 L 63.599574,35.940477 L 93.516091,37.916097 L 72.913214,61.341297 L 77.993374,87.588797 L 51.745854,74.323997 L 27.473963,88.999997 L 32.271896,60.212397 L 12.797933,38.480557 z"
+ id="path2440" />
+ <svg:path
+ style="fill:url(#radialGradient2444);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 8,35.093777 C 12.23347,34.529317 35.37644,32.835927 35.37644,32.835927 L 48.076854,6.0239478 L 58.801644,32.553697 L 88.718161,34.529317 L 68.115274,57.954497 L 73.195444,84.202097 L 46.947924,70.937197 L 22.67603,85.613197 L 27.473963,56.825597 L 8,35.093777 z"
+ id="path2442" />
+ <svg:path
+ style="opacity:0.9;fill:url(#radialGradient2448);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3236)"
+ d="M -92.289644,31.700011 C -88.056178,31.135551 -64.913208,29.442161 -64.913208,29.442161 L -52.212794,2.6301818 L -41.488004,29.159931 L -11.571487,31.135551 L -32.174374,54.560731 L -27.094204,80.808331 L -53.341724,67.543431 L -77.613618,82.219431 L -72.815685,53.431831 L -92.289644,31.700011 z"
+ id="path2446"
+ transform="matrix(1.1013986,0,0,1.1013986,105.88116,-1.1133907)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/goldstar0.png b/data/images/sprites/goldstar0.png
new file mode 100644
index 0000000..84547b8
Binary files /dev/null and b/data/images/sprites/goldstar0.png differ
diff --git a/data/images/sprites/goldstar1.png b/data/images/sprites/goldstar1.png
new file mode 100644
index 0000000..f4aefc2
Binary files /dev/null and b/data/images/sprites/goldstar1.png differ
diff --git a/data/images/sprites/goldstard.png b/data/images/sprites/goldstard.png
new file mode 100644
index 0000000..4baeabb
Binary files /dev/null and b/data/images/sprites/goldstard.png differ
diff --git a/data/images/sprites/help.svg b/data/images/sprites/help.svg
new file mode 100644
index 0000000..b25f510
--- /dev/null
+++ b/data/images/sprites/help.svg
@@ -0,0 +1,3137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="help.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc
+ id="desc3">4 frames</desc>
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4970">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4972" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop4974" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4954">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4956" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4958" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient4150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,335.14782,1659.0939)"
+ x1="-2236.8433"
+ y1="-7407.168"
+ x2="-2447.6731"
+ y2="-7407.168" />
+ <linearGradient
+ id="linearGradient11752">
+ <stop
+ id="stop11753"
+ offset="0"
+ style="stop-color:#ffe426;stop-opacity:1;" />
+ <stop
+ id="stop11754"
+ offset="1.0000000"
+ style="stop-color:#faee89;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient12377">
+ <stop
+ id="stop12378"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop12379"
+ offset="1.0000000"
+ style="stop-color:#c8c8c8;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient14252">
+ <stop
+ id="stop14253"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop14254"
+ offset="1.0000000"
+ style="stop-color:#303030;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3333">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3323">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3313">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3303">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3291">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </filter>
+ <filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </filter>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient4976"
+ x1="-26.143368"
+ y1="1002.4703"
+ x2="-63.662094"
+ y2="1002.9692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6128427,0,0,0.6128427,-66.10651,381.16831)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient5018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.9778145e-2,0,0,5.4029493e-2,139.28639,1397.932)"
+ x1="-2236.8433"
+ y1="-7407.168"
+ x2="-2447.6731"
+ y2="-7407.168" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3215">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3217"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ id="clipPath2426"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2428"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath2605"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2607"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2595" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient2593"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient2591"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2589"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient2583">
+ <stop
+ id="stop2585"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop2587"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2577">
+ <stop
+ id="stop2579"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop2581"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2571">
+ <stop
+ id="stop2573"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop2575"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2565">
+ <stop
+ id="stop2567"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop2569"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2559">
+ <stop
+ id="stop2561"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop2563"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <clipPath
+ id="clipPath3228"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3230"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3224"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3226"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath2642"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2644"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath2638"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2640"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2628" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient2626"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient2624"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective2622"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient2616">
+ <stop
+ id="stop2618"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop2620"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2610">
+ <stop
+ id="stop2612"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop2614"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2604">
+ <stop
+ id="stop2606"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop2608"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2598">
+ <stop
+ id="stop2600"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop2602"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2592">
+ <stop
+ id="stop2594"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop2596"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient2533"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient2537"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ x1="-1686.5973"
+ y1="-7241.0674"
+ x2="-1978.8965"
+ y2="-7238.2173" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient2554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ x1="69.248741"
+ y1="1012.9612"
+ x2="-66.424004"
+ y2="1012.9612" />
+ <filter
+ inkscape:collect="always"
+ id="filter3374">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.0186603"
+ id="feGaussianBlur3376" />
+ </filter>
+ <clipPath
+ id="clipPath3556"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3558"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3552"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3554"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3548"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3550"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3544"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3546"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3534" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient3532"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient3530"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective3528"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3522">
+ <stop
+ id="stop3524"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3526"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3516">
+ <stop
+ id="stop3518"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop3520"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3510">
+ <stop
+ id="stop3512"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop3514"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3504">
+ <stop
+ id="stop3506"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop3508"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3498">
+ <stop
+ id="stop3500"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3502"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-157.42421,64.203445)"
+ x1="985.66992"
+ y1="290.77927"
+ x2="853.91925"
+ y2="293.5256" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-187.21637,63.973645)"
+ x1="1032.963"
+ y1="291.95251"
+ x2="784.28351"
+ y2="293.8248" />
+ <filter
+ inkscape:collect="always"
+ id="filter3605">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.44431192"
+ id="feGaussianBlur3607" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3626"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-159.96764,69.290339)"
+ x1="992.18494"
+ y1="285.37817"
+ x2="825.92224"
+ y2="285.37817" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3628"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-189.7598,69.060539)"
+ x1="1050.0568"
+ y1="285.82458"
+ x2="784.28351"
+ y2="285.82458" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3902"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-172.94262,70.365513)"
+ x1="1020.6828"
+ y1="284.93652"
+ x2="825.92224"
+ y2="285.37817" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3904"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-202.73478,70.135713)"
+ x1="1078.5547"
+ y1="285.38293"
+ x2="784.28351"
+ y2="285.82458" />
+ <filter
+ inkscape:collect="always"
+ id="filter3910">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.41514433"
+ id="feGaussianBlur3912" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3927"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-175.66184,63.794999)"
+ x1="1030.9056"
+ y1="299.34677"
+ x2="825.92224"
+ y2="299.34677" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3929"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-205.454,63.565199)"
+ x1="1088.7775"
+ y1="299.79315"
+ x2="792.51794"
+ y2="299.79315" />
+ <filter
+ inkscape:collect="always"
+ id="filter3939">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="0.44729627"
+ id="feGaussianBlur3941" />
+ </filter>
+ <linearGradient
+ id="linearGradient2558">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2560" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop2562" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2564">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop2566" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop2568" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2570">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop2572" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2574" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2576">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop2578" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2580" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2582">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2584" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2586" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2588" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient2590"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient4273"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective2594"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2604">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2606"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2608">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2610"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4264">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect4266"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4260">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect4262"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient4256">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2535" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop2537" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2539">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop2541" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop2543" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2545">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop2547" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2549" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2551">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop2553" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2555" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2557">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2559" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4245" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2563" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient4240"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient2567"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective2569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2579">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2581"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4232">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect4234"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ id="clipPath4228"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect4230"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective4218" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient4216"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient4214"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective4212"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient4206">
+ <stop
+ id="stop4208"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop4210"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4200">
+ <stop
+ id="stop4202"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop4204"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4194">
+ <stop
+ id="stop4196"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop4198"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4188">
+ <stop
+ id="stop4190"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop4192"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4182">
+ <stop
+ id="stop4184"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop4186"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ id="filter4317">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.0635472"
+ id="feGaussianBlur4319" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient2680"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ x1="69.248741"
+ y1="1012.9612"
+ x2="-66.424004"
+ y2="1012.9612" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient2682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient2684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient2686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ x1="-1686.5973"
+ y1="-7241.0674"
+ x2="-1978.8965"
+ y2="-7238.2173" />
+ <linearGradient
+ id="linearGradient3648">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3650" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3652" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3642">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3644" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3646" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3636">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3638" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3640" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3630">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3632" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3634" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3624">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3626" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3628" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3622" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3620"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3618"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3616"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3612">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3614"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ id="clipPath3608"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3610"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3604"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3606"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3602" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient3600"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient3598"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective3596"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3590">
+ <stop
+ id="stop3592"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3594"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3584">
+ <stop
+ id="stop3586"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop3588"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3578">
+ <stop
+ id="stop3580"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop3582"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3572">
+ <stop
+ id="stop3574"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop3576"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3565">
+ <stop
+ id="stop3567"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3569"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <clipPath
+ id="clipPath3561"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3563"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3557"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3559"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3553"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3555"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <clipPath
+ id="clipPath3549"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3551"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3547" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient3545"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient3543"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective3541"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3535">
+ <stop
+ id="stop3537"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3539"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3529">
+ <stop
+ id="stop3531"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop3533"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3523">
+ <stop
+ id="stop3525"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop3527"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3517">
+ <stop
+ id="stop3519"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop3521"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3511">
+ <stop
+ id="stop3513"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3515"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ y2="299.79315"
+ x2="792.51794"
+ y1="299.79315"
+ x1="1088.7775"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-205.454,63.565199)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3505"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="299.34677"
+ x2="825.92224"
+ y1="299.34677"
+ x1="1030.9056"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-175.66184,63.794999)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3502"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="285.82458"
+ x2="784.28351"
+ y1="285.38293"
+ x1="1078.5547"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-202.73478,70.135713)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3496"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="285.37817"
+ x2="825.92224"
+ y1="284.93652"
+ x1="1020.6828"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-172.94262,70.365513)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3494"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="285.82458"
+ x2="784.28351"
+ y1="285.82458"
+ x1="1050.0568"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-189.7598,69.060539)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3492"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="285.37817"
+ x2="825.92224"
+ y1="285.37817"
+ x1="992.18494"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-159.96764,69.290339)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3490"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <filter
+ id="filter3618"
+ inkscape:collect="always">
+ <feGaussianBlur
+ id="feGaussianBlur3620"
+ stdDeviation="0.42026196"
+ inkscape:collect="always" />
+ </filter>
+ <linearGradient
+ y2="293.8248"
+ x2="784.28351"
+ y1="291.95251"
+ x1="1032.963"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-187.21637,63.973645)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3482"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="293.5256"
+ x2="853.91925"
+ y1="290.77927"
+ x1="985.66992"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-157.42421,64.203445)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient4954"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3474">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3476" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3478" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3468">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3470" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3472" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3462">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3464" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3466" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3456">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3458" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3460" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3450">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3452" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3454" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3448" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3446"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3444"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3442"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3438">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3440"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3434">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3436"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3430">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3432"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3426">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <linearGradient
+ y2="1012.9612"
+ x2="-66.424004"
+ y1="1012.9612"
+ x1="69.248741"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3420"
+ xlink:href="#linearGradient4970"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="-7238.2173"
+ x2="-1978.8965"
+ y1="-7241.0674"
+ x1="-1686.5973"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient11752"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="184.89015"
+ x2="400.74783"
+ y1="185.66209"
+ x1="386.07327"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient12377"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="181.03044"
+ x2="403.19357"
+ y1="182.57433"
+ x1="388.02988"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3414"
+ xlink:href="#linearGradient12377"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3408">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3410" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3412" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3402">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3404" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3406" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3396">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3398" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3400" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3390">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3392" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3394" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3384">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3386" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3388" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3382" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3380"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3378"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3376"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3372">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3374"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3368">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3370"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3364">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3366"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3360">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3362"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <linearGradient
+ id="linearGradient3354">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3356" />
+ <stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3358" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3348">
+ <stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3350" />
+ <stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3352" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3342">
+ <stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3344" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3346" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3336">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3338" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3340" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3330">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3332" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3334" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3328" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3326"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3324"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3322"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3318">
+ <rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3320"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3314">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3316"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </clipPath>
+ <clipPath
+ id="clipPath3310"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3312"
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <linearGradient
+ y2="-7407.168"
+ x2="-2447.6731"
+ y1="-7407.168"
+ x1="-2236.8433"
+ gradientTransform="matrix(9.9778145e-2,0,0,5.4029493e-2,139.28639,1397.932)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3308"
+ xlink:href="#linearGradient11752"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="matrix(0.6128427,0,0,0.6128427,-66.10651,381.16831)"
+ gradientUnits="userSpaceOnUse"
+ y2="1002.9692"
+ x2="-63.662094"
+ y1="1002.4703"
+ x1="-26.143368"
+ id="linearGradient3306"
+ xlink:href="#linearGradient4970"
+ inkscape:collect="always" />
+ <clipPath
+ id="clipPath3302"
+ clipPathUnits="userSpaceOnUse">
+ <rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3304"
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </clipPath>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective3292" />
+ <linearGradient
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)"
+ gradientUnits="userSpaceOnUse"
+ y2="450.35599"
+ x2="205.40018"
+ y1="269.16965"
+ x1="202.06032"
+ id="linearGradient3290"
+ xlink:href="#linearGradient3333"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientTransform="translate(-0.8349641,-0.8349603)"
+ gradientUnits="userSpaceOnUse"
+ y2="320.93719"
+ x2="194.1282"
+ y1="357.67545"
+ x1="194.1282"
+ id="linearGradient3288"
+ xlink:href="#linearGradient3303"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ id="perspective3286"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ id="linearGradient3280">
+ <stop
+ id="stop3282"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3284"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3274">
+ <stop
+ id="stop3276"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:0.51239669;" />
+ <stop
+ id="stop3278"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3268">
+ <stop
+ id="stop3270"
+ offset="0"
+ style="stop-color:#fdffff;stop-opacity:0.64462811;" />
+ <stop
+ id="stop3272"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3262">
+ <stop
+ id="stop3264"
+ offset="0"
+ style="stop-color:#fffbff;stop-opacity:1;" />
+ <stop
+ id="stop3266"
+ offset="1"
+ style="stop-color:#f3f7f9;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3256">
+ <stop
+ id="stop3258"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3260"
+ offset="1"
+ style="stop-color:#0033ea;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3250">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop3252" />
+ <stop
+ style="stop-color:#303030;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3254" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3244">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop3246" />
+ <stop
+ style="stop-color:#c8c8c8;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3248" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3238">
+ <stop
+ style="stop-color:#ffe426;stop-opacity:1;"
+ offset="0"
+ id="stop3240" />
+ <stop
+ style="stop-color:#faee89;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop3242" />
+ </linearGradient>
+ <linearGradient
+ y2="-7407.168"
+ x2="-2447.6731"
+ y1="-7407.168"
+ x1="-2236.8433"
+ gradientTransform="matrix(0.162812,0,0,8.816209e-2,335.14782,1659.0939)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient11752"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient3224">
+ <stop
+ id="stop3226"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop3228"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient3728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ x1="69.248741"
+ y1="1012.9612"
+ x2="-66.424004"
+ y2="1012.9612" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3730"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3732"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ x1="-1686.5973"
+ y1="-7241.0674"
+ x2="-1978.8965"
+ y2="-7238.2173" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3736"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-159.96764,69.290339)"
+ x1="992.18494"
+ y1="285.37817"
+ x2="825.92224"
+ y2="285.37817" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4954"
+ id="linearGradient3738"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.5147957,0,0,0.5147957,-189.7598,69.060539)"
+ x1="1050.0568"
+ y1="285.82458"
+ x2="784.28351"
+ y2="285.82458" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient3768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ x1="69.248741"
+ y1="1012.9612"
+ x2="-66.424004"
+ y2="1012.9612" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ x1="-1686.5973"
+ y1="-7241.0674"
+ x2="-1978.8965"
+ y2="-7238.2173" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4970"
+ id="linearGradient3804"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.2015839e-6,4.61854e-6)"
+ x1="69.248741"
+ y1="1012.9612"
+ x2="-66.424004"
+ y2="1012.9612" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3806"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1650.832,2978.1842)"
+ x1="388.02988"
+ y1="182.57433"
+ x2="403.19357"
+ y2="181.03044" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12377"
+ id="linearGradient3808"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4624044,0,0,0.5731231,1617.1903,2977.2078)"
+ x1="386.07327"
+ y1="185.66209"
+ x2="400.74783"
+ y2="184.89015" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11752"
+ id="linearGradient3810"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.162812,0,0,8.8162094e-2,335.14785,1659.0942)"
+ x1="-1686.5973"
+ y1="-7241.0674"
+ x2="-1978.8965"
+ y2="-7238.2173" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.3534441"
+ inkscape:cx="51.046299"
+ inkscape:cy="44.495742"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:description>4 frames</dc:description>
+ <dc:title>a</dc:title>
+ <dc:date>b</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>c</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:rights>
+ <cc:Agent>
+ <dc:title>d</dc:title>
+ </cc:Agent>
+ </dc:rights>
+ <dc:publisher>
+ <cc:Agent>
+ <dc:title>e</dc:title>
+ </cc:Agent>
+ </dc:publisher>
+ <dc:identifier>f</dc:identifier>
+ <dc:source>g</dc:source>
+ <dc:relation>h</dc:relation>
+ <dc:language>i</dc:language>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>j</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <dc:coverage>k</dc:coverage>
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>l</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="default"
+ inkscape:label="default"
+ style="display:inline">
+ <g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g2634"
+ inkscape:label="button">
+ <g
+ id="g2636">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2638"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2640"
+ clip-path="url(#clipPath3228)" />
+ <path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2642"
+ clip-path="url(#clipPath3224)" />
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:43.8699913px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter4317);font-family:Bitstream Vera Sans"
+ x="32.657143"
+ y="79.893623"
+ id="text4313"><tspan
+ sodipodi:role="line"
+ id="tspan4315"
+ x="32.657143"
+ y="79.893623"
+ style="font-size:75.20568848px;fill:#000000;fill-opacity:1">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:43.8699913px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="29.907064"
+ y="76.360031"
+ id="text4999"><tspan
+ sodipodi:role="line"
+ id="tspan5001"
+ x="29.907064"
+ y="76.360031"
+ style="font-size:75.20568848px;fill:#ffffff">?</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g2688"
+ inkscape:label="button">
+ <g
+ id="g2690">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2692"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2694"
+ clip-path="url(#clipPath3228)" />
+ <path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2696"
+ clip-path="url(#clipPath3224)" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ id="g2662"
+ transform="translate(-0.174262,-952.62986)">
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 32.704586,1029.1528 C 32.704586,1029.1528 28.63202,997.00553 48.558469,996.71463 C 68.484938,996.42373 70.521218,1009.5153 70.521218,1009.5153 C 70.521218,1009.5153 73.742868,1032.9697 70.610748,1036.1479 C 65.262788,1036.8622 32.122783,1036.5712 32.122783,1036.5712 L 32.704586,1029.1528 z"
+ id="path2664"
+ style="opacity:0.75271738;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3374)" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 30.756065,1026.9292 C 30.756065,1026.9292 26.683499,994.78202 46.609948,994.49109 C 66.536416,994.20018 68.5727,1007.2917 68.5727,1007.2917 C 68.5727,1007.2917 71.794346,1030.7461 68.66223,1033.9243 C 63.314263,1034.6386 30.174262,1034.3476 30.174262,1034.3476 L 30.756065,1026.9292 z"
+ id="path2666"
+ style="fill:url(#linearGradient2680);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path2668"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient2682);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-37.759582,963.20149)" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path2670"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient2684);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-22.097641,963.67138)" />
+ <path
+ d="M 35.264961,1020.5287 C 35.264961,1020.5287 43.119184,1015.1467 48.500794,1016.0196 C 53.882386,1016.8923 61.300261,1018.3469 62.172938,1019.8014 C 63.045633,1021.256 67.409093,1027.3653 59.554869,1029.8384 C 51.700647,1032.3112 39.192073,1033.9113 35.701309,1027.5109 C 32.210545,1021.1107 36.864897,1019.2196 36.864897,1019.2196"
+ id="path2672"
+ style="fill:url(#linearGradient2686);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.05818209pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ d="M 36.43898,1025.6645 C 36.43898,1025.6645 47.047616,1024.4623 61.486742,1025.696"
+ id="path2674"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.85859305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 43.264639,1018.3469 C 43.754174,1018.3943 44.537339,1018.0013 45.010012,1017.7651"
+ id="path2676"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 49.664364,1017.9104 C 49.7564,1017.8156 50.570801,1018.291 50.973407,1018.4924"
+ id="path2678"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <path
+ style="fill:url(#linearGradient3569);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path2838"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.2505926,0,0,0.2505907,-45.85247,3.6964857)" />
+ <path
+ transform="matrix(0.2505926,0,0,0.2505907,-30.465762,3.8151757)"
+ style="fill:url(#linearGradient3571);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path2842"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3605);font-family:Bitstream Vera Sans"
+ x="-26.341635"
+ y="101.11694"
+ id="text3577"
+ transform="matrix(0.4991418,-0.8665203,0.8665203,0.4991418,-51.626465,-14.783913)"
+ inkscape:transform-center-y="-16.440993"
+ inkscape:transform-center-x="7.4139078"><tspan
+ sodipodi:role="line"
+ id="tspan3579"
+ x="-26.341635"
+ y="101.11694"
+ style="fill:#000000;fill-opacity:1">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ x="-38.387325"
+ y="47.005466"
+ id="text2967"
+ transform="matrix(0.4991418,-0.8665203,0.8665203,0.4991418,0,0)"
+ inkscape:transform-center-y="-16.440993"
+ inkscape:transform-center-x="7.4139078"><tspan
+ sodipodi:role="line"
+ id="tspan2969"
+ x="-38.387325"
+ y="47.005466"
+ style="fill:#00ff00">?</tspan></text>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <g
+ id="layer2"
+ inkscape:label="button"
+ style="display:inline"
+ transform="translate(0,-2.6171875e-6)">
+ <g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g3560"
+ inkscape:label="button">
+ <g
+ id="g3232">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3861"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="rect3855"
+ clip-path="url(#clipPath3228)" />
+ <path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="rect3575"
+ clip-path="url(#clipPath3224)" />
+ </g>
+ </g>
+ </g>
+ <g
+ inkscape:label="head"
+ id="g3711"
+ transform="translate(-0.174262,-952.62986)"
+ style="display:inline">
+ <path
+ style="opacity:0.75271738;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3374)"
+ id="path2556"
+ d="M 32.704586,1029.1528 C 32.704586,1029.1528 28.63202,997.00553 48.558469,996.71463 C 68.484938,996.42373 70.521218,1009.5153 70.521218,1009.5153 C 70.521218,1009.5153 73.742868,1032.9697 70.610748,1036.1479 C 65.262788,1036.8622 32.122783,1036.5712 32.122783,1036.5712 L 32.704586,1029.1528 z"
+ sodipodi:nodetypes="cscccc" />
+ <path
+ style="fill:url(#linearGradient3728);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2834"
+ d="M 30.756065,1026.9292 C 30.756065,1026.9292 26.683499,994.78202 46.609948,994.49109 C 66.536416,994.20018 68.5727,1007.2917 68.5727,1007.2917 C 68.5727,1007.2917 71.794346,1030.7461 68.66223,1033.9243 C 63.314263,1034.6386 30.174262,1034.3476 30.174262,1034.3476 L 30.756065,1026.9292 z"
+ sodipodi:nodetypes="cscccc" />
+ <path
+ transform="matrix(0.2258876,0,0,0.2335043,-37.759582,963.20149)"
+ style="fill:url(#linearGradient3730);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path2836"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ transform="matrix(0.2258876,0,0,0.2335043,-22.097641,963.67138)"
+ style="fill:url(#linearGradient3732);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="27.5"
+ sodipodi:rx="22.1875"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="207.98718"
+ sodipodi:cx="346.5625"
+ id="path2840"
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114" />
+ <path
+ style="fill:url(#linearGradient3734);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.05818209pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="path2863"
+ d="M 35.264961,1020.5287 C 35.264961,1020.5287 43.119184,1015.1467 48.500794,1016.0196 C 53.882386,1016.8923 61.300261,1018.3469 62.172938,1019.8014 C 63.045633,1021.256 67.409093,1027.3653 59.554869,1029.8384 C 51.700647,1032.3112 39.192073,1033.9113 35.701309,1027.5109 C 32.210545,1021.1107 36.864897,1019.2196 36.864897,1019.2196" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.85859305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2865"
+ d="M 36.43898,1025.6645 C 36.43898,1025.6645 47.047616,1024.4623 61.486742,1025.696"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2867"
+ d="M 43.264639,1018.3469 C 43.754174,1018.3943 44.537339,1018.0013 45.010012,1017.7651" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path2869"
+ d="M 49.664364,1017.9104 C 49.7564,1017.8156 50.570801,1018.291 50.973407,1018.4924" />
+ </g>
+ <g
+ id="layer4"
+ inkscape:label="frame2"
+ style="display:inline"
+ transform="translate(0,-2.6171875e-6)">
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3618);font-family:Bitstream Vera Sans"
+ x="83.658012"
+ y="73.376328"
+ id="text3614"
+ transform="matrix(0.9337096,-0.3580312,0.3580312,0.9337096,-70.23456,3.3992734)"
+ inkscape:transform-center-y="-3.6262602"
+ inkscape:transform-center-x="31.215965"><tspan
+ sodipodi:role="line"
+ id="tspan3616"
+ x="83.658012"
+ y="73.376328"
+ style="fill:#000000;fill-opacity:1">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;fill:#ff00ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ x="16.139177"
+ y="49.833031"
+ id="text3610"
+ transform="matrix(0.9337096,-0.3580312,0.3580312,0.9337096,0,0)"
+ inkscape:transform-center-y="-3.6262602"
+ inkscape:transform-center-x="31.215965"><tspan
+ sodipodi:role="line"
+ id="tspan3612"
+ x="16.139177"
+ y="49.833031"
+ style="fill:#ff00ff">?</tspan></text>
+ <path
+ style="fill:url(#linearGradient3736);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3622"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.2505926,0,0,0.2505907,-45.215105,2.4217586)" />
+ <path
+ transform="matrix(0.2505926,0,0,0.2505907,-29.828397,2.5404486)"
+ style="fill:url(#linearGradient3738);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3624"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ </g>
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g3740"
+ inkscape:label="button">
+ <g
+ id="g3742">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3744"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path3746"
+ clip-path="url(#clipPath3228)" />
+ <path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path3748"
+ clip-path="url(#clipPath3224)" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ id="g3750"
+ transform="translate(-0.174262,-952.62986)">
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 32.704586,1029.1528 C 32.704586,1029.1528 28.63202,997.00553 48.558469,996.71463 C 68.484938,996.42373 70.521218,1009.5153 70.521218,1009.5153 C 70.521218,1009.5153 73.742868,1032.9697 70.610748,1036.1479 C 65.262788,1036.8622 32.122783,1036.5712 32.122783,1036.5712 L 32.704586,1029.1528 z"
+ id="path3752"
+ style="opacity:0.75271738;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3374)" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 30.756065,1026.9292 C 30.756065,1026.9292 26.683499,994.78202 46.609948,994.49109 C 66.536416,994.20018 68.5727,1007.2917 68.5727,1007.2917 C 68.5727,1007.2917 71.794346,1030.7461 68.66223,1033.9243 C 63.314263,1034.6386 30.174262,1034.3476 30.174262,1034.3476 L 30.756065,1026.9292 z"
+ id="path3754"
+ style="fill:url(#linearGradient3768);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3756"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3770);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-37.759582,963.20149)" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3758"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-22.097641,963.67138)" />
+ <path
+ d="M 35.264961,1020.5287 C 35.264961,1020.5287 43.119184,1015.1467 48.500794,1016.0196 C 53.882386,1016.8923 61.300261,1018.3469 62.172938,1019.8014 C 63.045633,1021.256 67.409093,1027.3653 59.554869,1029.8384 C 51.700647,1032.3112 39.192073,1033.9113 35.701309,1027.5109 C 32.210545,1021.1107 36.864897,1019.2196 36.864897,1019.2196"
+ id="path3760"
+ style="fill:url(#linearGradient3774);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.05818209pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ d="M 36.43898,1025.6645 C 36.43898,1025.6645 47.047616,1024.4623 61.486742,1025.696"
+ id="path3762"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.85859305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 43.264639,1018.3469 C 43.754174,1018.3943 44.537339,1018.0013 45.010012,1017.7651"
+ id="path3764"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 49.664364,1017.9104 C 49.7564,1017.8156 50.570801,1018.291 50.973407,1018.4924"
+ id="path3766"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;opacity:0.9;fill:#020000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3910);font-family:Bitstream Vera Sans"
+ x="79.692833"
+ y="15.565605"
+ id="text3906"
+ transform="matrix(0.9428809,0.3331301,-0.3331301,0.9428809,-12.747275,-4.4615464)"
+ inkscape:transform-center-y="33.857136"
+ inkscape:transform-center-x="65.793918"><tspan
+ sodipodi:role="line"
+ id="tspan3908"
+ x="79.692833"
+ y="15.565605"
+ style="fill:#020000;fill-opacity:1">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75733376px;font-style:normal;font-weight:normal;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ x="65.032387"
+ y="14.846382"
+ id="text3894"
+ transform="matrix(0.9428809,0.3331301,-0.3331301,0.9428809,0,0)"
+ inkscape:transform-center-y="33.857136"
+ inkscape:transform-center-x="65.793918"><tspan
+ sodipodi:role="line"
+ id="tspan3896"
+ x="65.032387"
+ y="14.846382"
+ style="fill:#ffff00">?</tspan></text>
+ <path
+ style="fill:url(#linearGradient3902);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3898"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.2505926,0,0,0.2505907,-41.96367,2.1523299)" />
+ <path
+ transform="matrix(0.2505926,0,0,0.2505907,-26.576962,2.2710199)"
+ style="fill:url(#linearGradient3904);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3900"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <g
+ style="display:inline"
+ transform="translate(0,-952.36218)"
+ id="g3776"
+ inkscape:label="button">
+ <g
+ id="g3778">
+ <rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3780"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path3782"
+ clip-path="url(#clipPath3228)" />
+ <path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path3784"
+ clip-path="url(#clipPath3224)" />
+ </g>
+ </g>
+ <g
+ style="display:inline"
+ id="g3786"
+ transform="translate(-0.17426,-952.62986)">
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 32.704586,1029.1528 C 32.704586,1029.1528 28.63202,997.00553 48.558469,996.71463 C 68.484938,996.42373 70.521218,1009.5153 70.521218,1009.5153 C 70.521218,1009.5153 73.742868,1032.9697 70.610748,1036.1479 C 65.262788,1036.8622 32.122783,1036.5712 32.122783,1036.5712 L 32.704586,1029.1528 z"
+ id="path3788"
+ style="opacity:0.75271738;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter3374)" />
+ <path
+ sodipodi:nodetypes="cscccc"
+ d="M 30.756065,1026.9292 C 30.756065,1026.9292 26.683499,994.78202 46.609948,994.49109 C 66.536416,994.20018 68.5727,1007.2917 68.5727,1007.2917 C 68.5727,1007.2917 71.794346,1030.7461 68.66223,1033.9243 C 63.314263,1034.6386 30.174262,1034.3476 30.174262,1034.3476 L 30.756065,1026.9292 z"
+ id="path3790"
+ style="fill:url(#linearGradient3804);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3792"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3806);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-37.759582,963.20149)" />
+ <path
+ d="M 368.70567,206.24959 A 22.1875,27.5 0 1 1 368.66842,205.63114"
+ id="path3794"
+ sodipodi:cx="346.5625"
+ sodipodi:cy="207.98718"
+ sodipodi:end="12.480591"
+ sodipodi:open="true"
+ sodipodi:rx="22.1875"
+ sodipodi:ry="27.5"
+ sodipodi:start="6.2199579"
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient3808);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ transform="matrix(0.2258876,0,0,0.2335043,-22.097641,963.67138)" />
+ <path
+ d="M 35.264961,1020.5287 C 35.264961,1020.5287 43.119184,1015.1467 48.500794,1016.0196 C 53.882386,1016.8923 61.300261,1018.3469 62.172938,1019.8014 C 63.045633,1021.256 67.409093,1027.3653 59.554869,1029.8384 C 51.700647,1032.3112 39.192073,1033.9113 35.701309,1027.5109 C 32.210545,1021.1107 36.864897,1019.2196 36.864897,1019.2196"
+ id="path3796"
+ style="fill:url(#linearGradient3810);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.05818209pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ d="M 36.43898,1025.6645 C 36.43898,1025.6645 47.047616,1024.4623 61.486742,1025.696"
+ id="path3798"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.85859305;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 43.264639,1018.3469 C 43.754174,1018.3943 44.537339,1018.0013 45.010012,1017.7651"
+ id="path3800"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ d="M 49.664364,1017.9104 C 49.7564,1017.8156 50.570801,1018.291 50.973407,1018.4924"
+ id="path3802"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.87219065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75732994px;font-style:normal;font-weight:normal;opacity:0.9;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3939);font-family:Bitstream Vera Sans"
+ x="80.677032"
+ y="-45.13036"
+ id="text3931"
+ transform="matrix(0.5217159,0.8531193,-0.8531193,0.5217159,-8.7106382,2.3370005)"
+ inkscape:transform-center-y="76.821657"
+ inkscape:transform-center-x="111.11411"><tspan
+ sodipodi:role="line"
+ id="tspan3933"
+ x="80.677032"
+ y="-45.13036"
+ style="fill:#000000;fill-opacity:1">?</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:28.75732994px;font-style:normal;font-weight:normal;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ x="76.226646"
+ y="-36.072651"
+ id="text3919"
+ transform="matrix(0.5217159,0.8531193,-0.8531193,0.5217159,0,0)"
+ inkscape:transform-center-y="76.821657"
+ inkscape:transform-center-x="111.11411"><tspan
+ sodipodi:role="line"
+ id="tspan3921"
+ x="76.226646"
+ y="-36.072651"
+ style="fill:#ff0000">?</tspan></text>
+ <path
+ style="fill:url(#linearGradient3927);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3923"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715"
+ transform="matrix(0.2505926,0,0,0.2505907,-41.282252,3.7988393)" />
+ <path
+ transform="matrix(0.2505926,0,0,0.2505907,-25.895544,3.9175293)"
+ style="fill:url(#linearGradient3929);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block"
+ sodipodi:type="arc"
+ sodipodi:start="6.2199579"
+ sodipodi:ry="17.1875"
+ sodipodi:rx="16.25"
+ sodipodi:open="true"
+ sodipodi:end="12.480591"
+ sodipodi:cy="217.04968"
+ sodipodi:cx="336.25"
+ id="path3925"
+ d="M 352.46753,215.96369 A 16.25,17.1875 0 1 1 352.44025,215.57715" />
+ </g>
+</svg>
diff --git a/data/images/sprites/help0.png b/data/images/sprites/help0.png
new file mode 100644
index 0000000..c53ed76
Binary files /dev/null and b/data/images/sprites/help0.png differ
diff --git a/data/images/sprites/help1.png b/data/images/sprites/help1.png
new file mode 100644
index 0000000..a204f7a
Binary files /dev/null and b/data/images/sprites/help1.png differ
diff --git a/data/images/sprites/help2.png b/data/images/sprites/help2.png
new file mode 100644
index 0000000..e50b96a
Binary files /dev/null and b/data/images/sprites/help2.png differ
diff --git a/data/images/sprites/help3.png b/data/images/sprites/help3.png
new file mode 100644
index 0000000..28d812d
Binary files /dev/null and b/data/images/sprites/help3.png differ
diff --git a/data/images/sprites/helpd.png b/data/images/sprites/helpd.png
new file mode 100644
index 0000000..15cfbc0
Binary files /dev/null and b/data/images/sprites/helpd.png differ
diff --git a/data/images/sprites/icon-bak.xcf b/data/images/sprites/icon-bak.xcf
new file mode 100644
index 0000000..0a59b7b
Binary files /dev/null and b/data/images/sprites/icon-bak.xcf differ
diff --git a/data/images/sprites/lan.svg b/data/images/sprites/lan.svg
new file mode 100644
index 0000000..8b9a5d4
--- /dev/null
+++ b/data/images/sprites/lan.svg
@@ -0,0 +1,872 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="lan.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3813">
+ <svg:stop
+ style="stop-color:#7a8381;stop-opacity:1;"
+ offset="0"
+ id="stop3815" />
+ <svg:stop
+ id="stop3817"
+ offset="0.82099605"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;"
+ offset="1"
+ id="stop3819" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3793">
+ <svg:stop
+ style="stop-color:#767674;stop-opacity:1;"
+ offset="0"
+ id="stop3795" />
+ <svg:stop
+ id="stop3797"
+ offset="0.82099605"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;"
+ offset="1"
+ id="stop3799" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2825">
+ <svg:stop
+ id="stop2827"
+ offset="0"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 1;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;"
+ offset="0.82099605"
+ id="stop3726" />
+ <svg:stop
+ id="stop2829"
+ offset="1"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4619">
+ <svg:stop
+ id="stop4621"
+ offset="0"
+ style="stop-color: white; stop-opacity: 1;" />
+ <svg:stop
+ style="stop-color: rgb(5, 6, 6); stop-opacity: 0.90625;"
+ offset="1"
+ id="stop4631" />
+ <svg:stop
+ id="stop4623"
+ offset="1"
+ style="stop-color: white; stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5518">
+ <svg:stop
+ id="stop5520"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <svg:stop
+ id="stop5522"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective2617"
+ inkscape:persp3d-origin="357.43277 : 207.07776 : 1"
+ inkscape:vp_z="714.86554 : 310.61664 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 310.61664 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3541">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.0794184"
+ id="feGaussianBlur3543" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3601"
+ gradientUnits="userSpaceOnUse"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3606"
+ gradientUnits="userSpaceOnUse"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3638"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3640"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3678"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3680"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3718"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3720"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3793"
+ id="linearGradient3785"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,23.168524,38.43867)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3801"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3813"
+ id="linearGradient3805"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-11.018092,55.53197)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8081164"
+ inkscape:cx="27.800704"
+ inkscape:cy="45.643263"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3620"
+ transform="translate(36.176444,-16.195864)">
+ <svg:g
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)"
+ transform="matrix(0.8622367,0,0,0.8622367,80.299921,1016.0178)"
+ id="g3622">
+ <svg:path
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ id="path3624"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3626"
+ width="21.952976"
+ height="4.0480661"
+ x="-66.110733"
+ y="21.098656"
+ rx="2.6841817"
+ ry="2.6841817"
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)" />
+ </svg:g>
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.3144"
+ rx="2.3144"
+ y="1022.2761"
+ x="101.67277"
+ height="3.4903913"
+ width="18.928661"
+ id="rect3628"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3630"
+ d="M 6.5105285,987.85059 L 6.0726722,1025.5492 L 6.6564814,1026.2798 L 52.631425,1030.5172 L 53.215232,1030.0789 L 54.674751,989.16566 L 54.382847,987.85059 L 7.678146,987.70447 L 6.5105285,987.85059 z"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3632"
+ d="M 11.412016,992.79965 L 10.828208,1020.8544 L 48.629826,1023.7768 L 49.651489,993.38412 L 11.412016,992.79965 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:url(#linearGradient3638);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11.338843,992.80682 L 10.755034,1020.8616 L 48.556658,1023.784 L 49.578321,993.39129 L 11.338843,992.80682 z"
+ id="path3634"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,-10.736473,1003.1327)"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ sodipodi:ry="11.175791"
+ sodipodi:rx="13.570603"
+ sodipodi:cy="246.88182"
+ sodipodi:cx="724.03162"
+ id="path3636"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:g
+ id="g3610"
+ transform="translate(1.9898278,0.8974455)">
+ <svg:g
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)"
+ transform="matrix(0.8622367,0,0,0.8622367,80.299921,1016.0178)"
+ id="g3537">
+ <svg:path
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ id="path3520"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3526"
+ width="21.952976"
+ height="4.0480661"
+ x="-66.110733"
+ y="21.098656"
+ rx="2.6841817"
+ ry="2.6841817"
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)" />
+ </svg:g>
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.3144"
+ rx="2.3144"
+ y="1022.2761"
+ x="101.67277"
+ height="3.4903913"
+ width="18.928661"
+ id="rect3493"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path1934"
+ d="M 6.5105285,987.85059 L 6.0726722,1025.5492 L 6.6564814,1026.2798 L 52.631425,1030.5172 L 53.215232,1030.0789 L 54.674751,989.16566 L 54.382847,987.85059 L 7.678146,987.70447 L 6.5105285,987.85059 z"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path2837"
+ d="M 11.412016,992.79965 L 10.828208,1020.8544 L 48.629826,1023.7768 L 49.651489,993.38412 L 11.412016,992.79965 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:url(#linearGradient3640);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11.338843,992.80682 L 10.755034,1020.8616 L 48.556658,1023.784 L 49.578321,993.39129 L 11.338843,992.80682 z"
+ id="path3730"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,-10.736473,1003.1327)"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ sodipodi:ry="11.175791"
+ sodipodi:rx="13.570603"
+ sodipodi:cy="246.88182"
+ sodipodi:cx="724.03162"
+ id="path3495"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3644"
+ transform="matrix(0.8622367,0,0,0.8622367,116.47636,47.45977)"
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)">
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3646"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.6841817"
+ rx="2.6841817"
+ y="21.098656"
+ x="-66.110733"
+ height="4.0480661"
+ width="21.952976"
+ id="rect3648"
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ <svg:rect
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3650"
+ width="18.928661"
+ height="3.4903913"
+ x="60.07579"
+ y="53.93578"
+ rx="2.3144"
+ ry="2.3144"
+ transform="matrix(0.9967806,8.0177908e-2,-8.0177908e-2,0.9967806,0,0)" />
+ <svg:path
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 42.686972,19.29256 L 42.249116,56.99117 L 42.832925,57.72177 L 88.807869,61.95917 L 89.391676,61.52087 L 90.851195,20.60763 L 90.559291,19.29256 L 43.85459,19.14644 L 42.686972,19.29256 z"
+ id="path3652"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 47.58846,24.24162 L 47.004652,52.29637 L 84.80627,55.21877 L 85.827933,24.82609 L 47.58846,24.24162 z"
+ id="path3654"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3656"
+ d="M 47.515287,24.24879 L 46.931478,52.30357 L 84.733102,55.22597 L 85.754765,24.83326 L 47.515287,24.24879 z"
+ style="fill:url(#linearGradient3785);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3658"
+ sodipodi:cx="724.03162"
+ sodipodi:cy="246.88182"
+ sodipodi:rx="13.570603"
+ sodipodi:ry="11.175791"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,25.439971,34.57467)" />
+ <svg:g
+ style="display:inline"
+ id="g3660"
+ transform="translate(1.9898278,-951.46473)">
+ <svg:g
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)"
+ transform="matrix(0.8622367,0,0,0.8622367,80.299921,1016.0178)"
+ id="g3662">
+ <svg:path
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ id="path3664"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3666"
+ width="21.952976"
+ height="4.0480661"
+ x="-66.110733"
+ y="21.098656"
+ rx="2.6841817"
+ ry="2.6841817"
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)" />
+ </svg:g>
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.3144"
+ rx="2.3144"
+ y="1022.2761"
+ x="101.67277"
+ height="3.4903913"
+ width="18.928661"
+ id="rect3668"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3670"
+ d="M 6.5105285,987.85059 L 6.0726722,1025.5492 L 6.6564814,1026.2798 L 52.631425,1030.5172 L 53.215232,1030.0789 L 54.674751,989.16566 L 54.382847,987.85059 L 7.678146,987.70447 L 6.5105285,987.85059 z"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3672"
+ d="M 11.412016,992.79965 L 10.828208,1020.8544 L 48.629826,1023.7768 L 49.651489,993.38412 L 11.412016,992.79965 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:url(#linearGradient3680);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11.338843,992.80682 L 10.755034,1020.8616 L 48.556658,1023.784 L 49.578321,993.39129 L 11.338843,992.80682 z"
+ id="path3674"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,-10.736473,1003.1327)"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ sodipodi:ry="11.175791"
+ sodipodi:rx="13.570603"
+ sodipodi:cy="246.88182"
+ sodipodi:cx="724.03162"
+ id="path3676"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3682"
+ transform="translate(36.176443,-968.55803)">
+ <svg:g
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)"
+ transform="matrix(0.8622367,0,0,0.8622367,80.299921,1016.0178)"
+ id="g3684">
+ <svg:path
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ id="path3686"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3688"
+ width="21.952976"
+ height="4.0480661"
+ x="-66.110733"
+ y="21.098656"
+ rx="2.6841817"
+ ry="2.6841817"
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)" />
+ </svg:g>
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.3144"
+ rx="2.3144"
+ y="1022.2761"
+ x="101.67277"
+ height="3.4903913"
+ width="18.928661"
+ id="rect3690"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3692"
+ d="M 6.5105285,987.85059 L 6.0726722,1025.5492 L 6.6564814,1026.2798 L 52.631425,1030.5172 L 53.215232,1030.0789 L 54.674751,989.16566 L 54.382847,987.85059 L 7.678146,987.70447 L 6.5105285,987.85059 z"
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3694"
+ d="M 11.412016,992.79965 L 10.828208,1020.8544 L 48.629826,1023.7768 L 49.651489,993.38412 L 11.412016,992.79965 z"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:url(#linearGradient3718);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 11.338843,992.80682 L 10.755034,1020.8616 L 48.556658,1023.784 L 49.578321,993.39129 L 11.338843,992.80682 z"
+ id="path3696"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,-10.736473,1003.1327)"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ sodipodi:ry="11.175791"
+ sodipodi:rx="13.570603"
+ sodipodi:cy="246.88182"
+ sodipodi:cx="724.03162"
+ id="path3698"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ <svg:g
+ id="g3702"
+ transform="matrix(0.8622367,0,0,0.8622367,82.289749,64.55307)"
+ style="fill:#000000;fill-opacity:0.87671234;filter:url(#filter3541)">
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ id="path3704"
+ d="M -82.516934,-29.833137 L -83.024749,13.888752 L -82.347662,14.736075 L -29.027102,19.650552 L -28.350017,19.142157 L -26.657305,-28.307954 L -26.995847,-29.833137 L -81.162762,-30.002601 L -82.516934,-29.833137 z"
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:evenodd;stroke:#000000;stroke-width:0.12287532;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:rect
+ transform="matrix(0.9967806,8.017791e-2,-8.017791e-2,0.9967806,0,0)"
+ ry="2.6841817"
+ rx="2.6841817"
+ y="21.098656"
+ x="-66.110733"
+ height="4.0480661"
+ width="21.952976"
+ id="rect3706"
+ style="fill:#000000;fill-opacity:0.87671234;fill-rule:nonzero;stroke:#000000;stroke-width:0.10697955;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ <svg:rect
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.09224169;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3708"
+ width="18.928661"
+ height="3.4903913"
+ x="27.369741"
+ y="73.715057"
+ rx="2.3144"
+ ry="2.3144"
+ transform="matrix(0.9967806,8.0177908e-2,-8.0177908e-2,0.9967806,0,0)" />
+ <svg:path
+ style="fill:#bdbcbc;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.10594761;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8.5003563,36.38586 L 8.0625,74.08447 L 8.6463092,74.81507 L 54.621253,79.05247 L 55.20506,78.61417 L 56.664579,37.70093 L 56.372675,36.38586 L 9.6679738,36.23974 L 8.5003563,36.38586 z"
+ id="path3710"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 13.401844,41.33492 L 12.818036,69.38967 L 50.619654,72.31207 L 51.641317,41.91939 L 13.401844,41.33492 z"
+ id="path3712"
+ sodipodi:nodetypes="ccccc" />
+ <svg:path
+ sodipodi:nodetypes="ccccc"
+ id="path3714"
+ d="M 13.328671,41.34209 L 12.744862,69.39687 L 50.546486,72.31927 L 51.568149,41.92656 L 13.328671,41.34209 z"
+ style="fill:url(#linearGradient3805);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.07228384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.25999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3716"
+ sodipodi:cx="724.03162"
+ sodipodi:cy="246.88182"
+ sodipodi:rx="13.570603"
+ sodipodi:ry="11.175791"
+ d="M 737.60222,246.88182 A 13.570603,11.175791 0 1 1 710.46101,246.88182 A 13.570603,11.175791 0 1 1 737.60222,246.88182 z"
+ transform="matrix(7.9001333e-2,0,0,9.5930189e-2,-8.7466452,51.66797)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/lan0.png b/data/images/sprites/lan0.png
new file mode 100644
index 0000000..aec06fd
Binary files /dev/null and b/data/images/sprites/lan0.png differ
diff --git a/data/images/sprites/lan1.png b/data/images/sprites/lan1.png
new file mode 100644
index 0000000..e88355f
Binary files /dev/null and b/data/images/sprites/lan1.png differ
diff --git a/data/images/sprites/lan2.png b/data/images/sprites/lan2.png
new file mode 100644
index 0000000..9087cb6
Binary files /dev/null and b/data/images/sprites/lan2.png differ
diff --git a/data/images/sprites/lan3.png b/data/images/sprites/lan3.png
new file mode 100644
index 0000000..e88355f
Binary files /dev/null and b/data/images/sprites/lan3.png differ
diff --git a/data/images/sprites/land.png b/data/images/sprites/land.png
new file mode 100644
index 0000000..32b8b81
Binary files /dev/null and b/data/images/sprites/land.png differ
diff --git a/data/images/sprites/lesson.svg b/data/images/sprites/lesson.svg
new file mode 100644
index 0000000..d6ed4d3
--- /dev/null
+++ b/data/images/sprites/lesson.svg
@@ -0,0 +1,895 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="lesson.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>4 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3312">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3314" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3316" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3304">
+ <svg:stop
+ style="stop-color:#ffff00;stop-opacity:1;"
+ offset="0"
+ id="stop3306" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3308" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3282">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3284" />
+ <svg:stop
+ style="stop-color:#7c7e83;stop-opacity:1;"
+ offset="1"
+ id="stop3286" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#838583;stop-opacity:1;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2504"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3370"
+ x="-0.21091638"
+ width="1.4218328"
+ y="-0.063079801"
+ height="1.1261596">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.4825154"
+ id="feGaussianBlur3372" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3374">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.4825154"
+ id="feGaussianBlur3376" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3378"
+ x="-0.047475555"
+ width="1.0949511"
+ y="-0.10779542"
+ height="1.2155908">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.4825154"
+ id="feGaussianBlur3380" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3400"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3402"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-0.9185218,13.803487)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3404"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3433"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705"
+ gradientTransform="matrix(0.9591951,0.2827451,-0.2827451,0.9591951,9.443758,-9.4653607)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-2.2234768,8.5799773)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3439"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987"
+ gradientTransform="translate(-1.304955,-5.2235097)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3442"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291"
+ gradientTransform="translate(-1.304955,-5.2235097)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.304955,-5.2235116)"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1.304955,-5.2235116)"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-2.223477,8.5799754)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9591951,0.2827451,-0.2827451,0.9591951,9.443758,-9.4653626)"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3503"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3505"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3507"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-0.9185218,13.803487)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3509"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-0.9185218,13.803487)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3547"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705"
+ gradientTransform="matrix(0.9633819,-0.2681329,0.2681329,0.9633819,-9.3700307,2.677108)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-2.2234718,8.5799322)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3553"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987"
+ gradientTransform="translate(-1.30495,-5.2235548)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3556"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291"
+ gradientTransform="translate(-1.30495,-5.2235548)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3282"
+ id="linearGradient3588"
+ gradientUnits="userSpaceOnUse"
+ x1="45.157013"
+ y1="59.5574"
+ x2="92.78965"
+ y2="15.677291" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3291"
+ id="linearGradient3590"
+ gradientUnits="userSpaceOnUse"
+ x1="34.496685"
+ y1="55.550987"
+ x2="74.444611"
+ y2="55.550987" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3312"
+ id="linearGradient3592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0027428,0,0,0.8122123,-0.9185218,13.803487)"
+ x1="3.9512403"
+ y1="65.708344"
+ x2="92.571884"
+ y2="65.708344" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3304"
+ id="linearGradient3594"
+ gradientUnits="userSpaceOnUse"
+ x1="40.705776"
+ y1="63.321686"
+ x2="-19.256193"
+ y2="74.328705" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.2938095"
+ inkscape:cx="61.230561"
+ inkscape:cy="30.956763"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g3382"
+ transform="translate(-92.180323,-48.50305)">
+ <svg:path
+ id="path3342"
+ d="M 110.37953,1042.6124 L 149.89192,1018.0583 L 184.32414,1043.1769 C 184.32414,1043.1769 171.90596,1049.386 169.93034,1049.9504 C 167.95472,1050.5149 127.03118,1048.8215 127.03118,1048.8215 L 110.37953,1042.6124 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3378)" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3344"
+ d="M 129.57126,1045.4347 C 129.57126,1046.5637 129.57126,1062.6508 129.57126,1062.6508 C 129.57126,1062.6508 132.39358,1074.2223 147.35184,1074.5046 C 162.3101,1074.7868 167.95472,1064.8087 167.95472,1064.8087 L 168.51919,1046.5637 C 168.51919,1046.5637 163.72125,1035.2744 149.04522,1035.2744 C 134.36919,1035.2744 130.41796,1045.4347 129.57126,1045.4347 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3374)" />
+ <svg:path
+ id="path3348"
+ d="M 120.82209,1034.7099 L 120.25763,1063.7798 C 120.25763,1063.7798 117.43531,1063.4975 117.71755,1066.0376 C 117.99978,1068.5777 120.25763,1069.9889 120.25763,1069.9889 L 120.25763,1072.8112 C 120.25763,1072.8112 114.89523,1079.0203 114.89523,1083.8182 C 114.89523,1088.6161 121.66878,1090.3095 122.79771,1090.5917 C 123.92663,1090.874 131.26465,1088.6161 131.26465,1083.8182 C 131.26465,1079.0203 126.74895,1075.6335 127.03118,1071.9645 C 127.31341,1068.2955 126.46672,1067.731 126.46672,1067.731 C 126.46672,1067.731 128.72457,1068.0132 128.72457,1065.7554 C 128.72457,1063.4975 125.90225,1062.3686 125.90225,1062.3686 L 123.07994,1062.0864 L 123.36217,1034.9922 L 120.82209,1034.7099 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3370)" />
+ </svg:g>
+ <svg:g
+ id="g3320"
+ transform="translate(-1.304955,947.13867)">
+ <svg:path
+ id="path2510"
+ d="M 15.804955,43.2715 L 55.317343,18.717373 L 89.749567,43.835963 C 89.749567,43.835963 77.331388,50.045052 75.355768,50.609515 C 73.380149,51.173978 32.456604,49.48059 32.456604,49.48059 L 15.804955,43.2715 z"
+ style="fill:url(#linearGradient3398);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3290"
+ d="M 34.996686,46.093814 C 34.996686,47.222739 34.996686,63.309925 34.996686,63.309925 C 34.996686,63.309925 37.819,74.88141 52.777261,75.163642 C 67.735522,75.445873 73.380149,65.467797 73.380149,65.467797 L 73.944611,47.222739 C 73.944611,47.222739 69.146679,35.933485 54.470649,35.933485 C 39.794619,35.933485 35.84338,46.093814 34.996686,46.093814 z"
+ style="fill:url(#linearGradient3400);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3300"
+ d="M 35.46031,65.29575 C 35.46031,65.29575 42.583407,58.87726 55.318653,59.106493 C 68.053897,59.335724 73.431001,66.20874 73.431001,66.20874 C 73.431001,66.20874 64.738741,75.622993 52.569507,75.393762 C 40.400273,75.16453 35.46031,65.524982 35.46031,65.29575 z"
+ style="fill:url(#linearGradient3402);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90246332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path3302"
+ d="M 26.247515,35.369022 L 25.683052,64.438851 C 25.683052,64.438851 22.860739,64.156619 23.14297,66.696701 C 23.425201,69.236783 25.683052,70.64794 25.683052,70.64794 L 25.683052,73.470254 C 25.683052,73.470254 20.320656,79.679343 20.320656,84.477276 C 20.320656,89.275209 27.094209,90.968597 28.223134,91.250828 C 29.352059,91.533059 36.690074,89.275209 36.690074,84.477276 C 36.690074,79.679343 32.174373,76.292567 32.456604,72.623559 C 32.738836,68.954552 31.892141,68.390089 31.892141,68.390089 C 31.892141,68.390089 34.149992,68.672321 34.149992,66.41447 C 34.149992,64.156619 31.327679,63.027694 31.327679,63.027694 L 28.505365,62.745463 L 28.787597,35.651254 L 26.247515,35.369022 z"
+ style="fill:url(#linearGradient3404);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3378)"
+ d="M 18.199207,41.7472 L 57.711597,17.1931 L 92.143817,42.3117 C 92.143817,42.3117 79.725637,48.5208 77.750017,49.0852 C 75.774397,49.6497 34.850857,47.9563 34.850857,47.9563 L 18.199207,41.7472 z"
+ id="path3408" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3374)"
+ d="M 37.390937,44.5695 C 37.390937,45.6985 37.390937,61.7856 37.390937,61.7856 C 37.390937,61.7856 40.213257,73.3571 55.171517,73.6394 C 70.129777,73.9216 75.774397,63.9435 75.774397,63.9435 L 76.338867,45.6985 C 76.338867,45.6985 71.540927,34.4092 56.864897,34.4092 C 42.188867,34.4092 38.237637,44.5695 37.390937,44.5695 z"
+ id="path3410"
+ sodipodi:nodetypes="ccsccsc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3370)"
+ d="M 28.641767,33.8447 L 28.077307,62.9146 C 28.077307,62.9146 25.254987,62.6323 25.537227,65.1724 C 25.819457,67.7125 28.077307,69.1237 28.077307,69.1237 L 28.077307,71.946 C 28.077307,71.946 22.714907,78.1551 22.714907,82.953 C 22.714907,87.7509 29.488457,89.4443 30.617387,89.7265 C 31.746307,90.0088 39.084327,87.7509 39.084327,82.953 C 39.084327,78.1551 34.568627,74.7683 34.850857,71.0993 C 35.133087,67.4303 34.286397,66.8658 34.286397,66.8658 C 34.286397,66.8658 36.544247,67.148 36.544247,64.8902 C 36.544247,62.6323 33.721927,61.5034 33.721927,61.5034 L 30.899617,61.2212 L 31.181847,34.127 L 28.641767,33.8447 z"
+ id="path3412"
+ transform="matrix(0.9561533,0.2928666,-0.2928666,0.9561533,10.823778,-5.1062046)" />
+ <svg:path
+ style="fill:url(#linearGradient3442);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 14.5,38.04799 L 54.012388,13.493863 L 88.444612,38.612453 C 88.444612,38.612453 76.026433,44.821542 74.050813,45.386005 C 72.075194,45.950468 31.151649,44.25708 31.151649,44.25708 L 14.5,38.04799 z"
+ id="path3416" />
+ <svg:path
+ style="fill:url(#linearGradient3439);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 33.691731,40.870304 C 33.691731,41.999229 33.691731,58.086415 33.691731,58.086415 C 33.691731,58.086415 36.514045,69.6579 51.472306,69.940132 C 66.430567,70.222363 72.075194,60.244287 72.075194,60.244287 L 72.639656,41.999229 C 72.639656,41.999229 67.841724,30.709975 53.165694,30.709975 C 38.489664,30.709975 34.538425,40.870304 33.691731,40.870304 z"
+ id="path3418"
+ sodipodi:nodetypes="ccsccsc" />
+ <svg:path
+ style="fill:url(#linearGradient3436);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90246332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 34.155355,60.07224 C 34.155355,60.07224 41.278452,53.65375 54.013698,53.882983 C 66.748942,54.112214 72.126046,60.98523 72.126046,60.98523 C 72.126046,60.98523 63.433786,70.399483 51.264552,70.170252 C 39.095318,69.94102 34.155355,60.301472 34.155355,60.07224 z"
+ id="path3420"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ style="fill:url(#linearGradient3433);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 24.619827,31.881787 L 15.859045,59.605825 C 15.859045,59.605825 13.231696,58.537115 12.784215,61.053348 C 12.336734,63.569582 14.103456,65.561553 14.103456,65.561553 L 13.30546,68.268703 C 13.30546,68.268703 6.4062869,72.708239 5.0496948,77.310393 C 3.6931027,81.912546 9.7114643,85.452025 10.714524,86.041937 C 11.717584,86.63185 19.394568,86.540919 20.75116,81.938766 C 22.107752,77.336612 18.733908,72.811241 20.042017,69.371746 C 21.350126,65.932252 20.69758,65.151423 20.69758,65.151423 C 20.69758,65.151423 22.7835,66.060535 23.421896,63.894815 C 24.060292,61.729096 21.672342,59.848241 21.672342,59.848241 L 19.044991,58.779531 L 26.976462,32.870699 L 24.619827,31.881787 z"
+ id="path3422" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3477">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3479"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3481"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3483"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3485"
+ transform="translate(-92.180319,-1000.8652)">
+ <svg:path
+ id="path3487"
+ d="M 110.37953,1042.6124 L 149.89192,1018.0583 L 184.32414,1043.1769 C 184.32414,1043.1769 171.90596,1049.386 169.93034,1049.9504 C 167.95472,1050.5149 127.03118,1048.8215 127.03118,1048.8215 L 110.37953,1042.6124 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3378)" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3489"
+ d="M 129.57126,1045.4347 C 129.57126,1046.5637 129.57126,1062.6508 129.57126,1062.6508 C 129.57126,1062.6508 132.39358,1074.2223 147.35184,1074.5046 C 162.3101,1074.7868 167.95472,1064.8087 167.95472,1064.8087 L 168.51919,1046.5637 C 168.51919,1046.5637 163.72125,1035.2744 149.04522,1035.2744 C 134.36919,1035.2744 130.41796,1045.4347 129.57126,1045.4347 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3374)" />
+ <svg:path
+ id="path3491"
+ d="M 120.82209,1034.7099 L 120.25763,1063.7798 C 120.25763,1063.7798 117.43531,1063.4975 117.71755,1066.0376 C 117.99978,1068.5777 120.25763,1069.9889 120.25763,1069.9889 L 120.25763,1072.8112 C 120.25763,1072.8112 114.89523,1079.0203 114.89523,1083.8182 C 114.89523,1088.6161 121.66878,1090.3095 122.79771,1090.5917 C 123.92663,1090.874 131.26465,1088.6161 131.26465,1083.8182 C 131.26465,1079.0203 126.74895,1075.6335 127.03118,1071.9645 C 127.31341,1068.2955 126.46672,1067.731 126.46672,1067.731 C 126.46672,1067.731 128.72457,1068.0132 128.72457,1065.7554 C 128.72457,1063.4975 125.90225,1062.3686 125.90225,1062.3686 L 123.07994,1062.0864 L 123.36217,1034.9922 L 120.82209,1034.7099 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3370)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3493"
+ transform="translate(-1.304955,-5.2235174)">
+ <svg:path
+ id="path3495"
+ d="M 15.804955,43.2715 L 55.317343,18.717373 L 89.749567,43.835963 C 89.749567,43.835963 77.331388,50.045052 75.355768,50.609515 C 73.380149,51.173978 32.456604,49.48059 32.456604,49.48059 L 15.804955,43.2715 z"
+ style="fill:url(#linearGradient3503);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3497"
+ d="M 34.996686,46.093814 C 34.996686,47.222739 34.996686,63.309925 34.996686,63.309925 C 34.996686,63.309925 37.819,74.88141 52.777261,75.163642 C 67.735522,75.445873 73.380149,65.467797 73.380149,65.467797 L 73.944611,47.222739 C 73.944611,47.222739 69.146679,35.933485 54.470649,35.933485 C 39.794619,35.933485 35.84338,46.093814 34.996686,46.093814 z"
+ style="fill:url(#linearGradient3505);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3499"
+ d="M 35.46031,65.29575 C 35.46031,65.29575 42.583407,58.87726 55.318653,59.106493 C 68.053897,59.335724 73.431001,66.20874 73.431001,66.20874 C 73.431001,66.20874 64.738741,75.622993 52.569507,75.393762 C 40.400273,75.16453 35.46031,65.524982 35.46031,65.29575 z"
+ style="fill:url(#linearGradient3507);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90246332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path3501"
+ d="M 26.247515,35.369022 L 25.683052,64.438851 C 25.683052,64.438851 22.860739,64.156619 23.14297,66.696701 C 23.425201,69.236783 25.683052,70.64794 25.683052,70.64794 L 25.683052,73.470254 C 25.683052,73.470254 20.320656,79.679343 20.320656,84.477276 C 20.320656,89.275209 27.094209,90.968597 28.223134,91.250828 C 29.352059,91.533059 36.690074,89.275209 36.690074,84.477276 C 36.690074,79.679343 32.174373,76.292567 32.456604,72.623559 C 32.738836,68.954552 31.892141,68.390089 31.892141,68.390089 C 31.892141,68.390089 34.149992,68.672321 34.149992,66.41447 C 34.149992,64.156619 31.327679,63.027694 31.327679,63.027694 L 28.505365,62.745463 L 28.787597,35.651254 L 26.247515,35.369022 z"
+ style="fill:url(#linearGradient3509);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36215)"
+ style="display:inline"
+ id="g3512">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3514"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3516"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3518"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3378)"
+ d="M 18.199213,41.7471 L 57.711603,17.193 L 92.143823,42.3116 C 92.143823,42.3116 79.725643,48.5207 77.750023,49.0851 C 75.774403,49.6496 34.850863,47.9562 34.850863,47.9562 L 18.199213,41.7471 z"
+ id="path3522" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3374)"
+ d="M 37.390943,44.5694 C 37.390943,45.6984 37.390943,61.7855 37.390943,61.7855 C 37.390943,61.7855 40.213263,73.357 55.171523,73.6393 C 70.129783,73.9215 75.774403,63.9434 75.774403,63.9434 L 76.338873,45.6984 C 76.338873,45.6984 71.540933,34.4091 56.864903,34.4091 C 42.188873,34.4091 38.237643,44.5694 37.390943,44.5694 z"
+ id="path3524"
+ sodipodi:nodetypes="ccsccsc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3370)"
+ d="M 28.641773,33.8446 L 28.077313,62.9145 C 28.077313,62.9145 25.254993,62.6322 25.537233,65.1723 C 25.819463,67.7124 28.077313,69.1236 28.077313,69.1236 L 28.077313,71.9459 C 28.077313,71.9459 22.714913,78.155 22.714913,82.9529 C 22.714913,87.7508 29.488463,89.4442 30.617393,89.7264 C 31.746313,90.0087 39.084333,87.7508 39.084333,82.9529 C 39.084333,78.155 34.568633,74.7682 34.850863,71.0992 C 35.133093,67.4302 34.286403,66.8657 34.286403,66.8657 C 34.286403,66.8657 36.544253,67.1479 36.544253,64.8901 C 36.544253,62.6322 33.721933,61.5033 33.721933,61.5033 L 30.899623,61.2211 L 31.181853,34.1269 L 28.641773,33.8446 z"
+ id="path3526"
+ transform="matrix(0.9489076,-0.315554,0.315554,0.9489076,-10.069658,8.8053197)" />
+ <svg:path
+ style="fill:url(#linearGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 14.500005,38.047945 L 54.012393,13.493818 L 88.444617,38.612408 C 88.444617,38.612408 76.026438,44.821497 74.050818,45.38596 C 72.075199,45.950423 31.151654,44.257035 31.151654,44.257035 L 14.500005,38.047945 z"
+ id="path3530" />
+ <svg:path
+ style="fill:url(#linearGradient3553);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 33.691736,40.870259 C 33.691736,41.999184 33.691736,58.08637 33.691736,58.08637 C 33.691736,58.08637 36.51405,69.657855 51.472311,69.940087 C 66.430572,70.222318 72.075199,60.244242 72.075199,60.244242 L 72.639661,41.999184 C 72.639661,41.999184 67.841729,30.70993 53.165699,30.70993 C 38.489669,30.70993 34.53843,40.870259 33.691736,40.870259 z"
+ id="path3532"
+ sodipodi:nodetypes="ccsccsc" />
+ <svg:path
+ style="fill:url(#linearGradient3550);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90246332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 34.15536,60.072195 C 34.15536,60.072195 41.278457,53.653705 54.013703,53.882938 C 66.748947,54.112169 72.126051,60.985185 72.126051,60.985185 C 72.126051,60.985185 63.433791,70.399438 51.264557,70.170207 C 39.095323,69.940975 34.15536,60.301427 34.15536,60.072195 z"
+ id="path3534"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ style="fill:url(#linearGradient3547);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 25.399949,29.713164 L 32.650732,57.869863 C 32.650732,57.869863 29.856091,58.354721 30.809066,60.726114 C 31.762042,63.097508 34.315593,63.851587 34.315593,63.851587 L 35.072348,66.570553 C 35.072348,66.570553 31.571173,73.990112 32.857657,78.612354 C 34.14414,83.234596 41.123712,83.049764 42.286973,83.018958 C 43.450235,82.988152 49.914142,78.845417 48.627658,74.223175 C 47.341175,69.600933 42.082724,67.548982 41.370839,63.938651 C 40.658955,60.32832 39.691913,60.011553 39.691913,60.011553 C 39.691913,60.011553 41.942761,59.678047 41.337357,57.502874 C 40.731953,55.327701 37.710286,54.99687 37.710286,54.99687 L 34.915644,55.481729 L 27.922693,29.303981 L 25.399949,29.713164 z"
+ id="path3536" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3562">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3564"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3566"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3568"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3570"
+ transform="translate(-92.180319,-1000.8652)">
+ <svg:path
+ id="path3572"
+ d="M 110.37953,1042.6124 L 149.89192,1018.0583 L 184.32414,1043.1769 C 184.32414,1043.1769 171.90596,1049.386 169.93034,1049.9504 C 167.95472,1050.5149 127.03118,1048.8215 127.03118,1048.8215 L 110.37953,1042.6124 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3378)" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3574"
+ d="M 129.57126,1045.4347 C 129.57126,1046.5637 129.57126,1062.6508 129.57126,1062.6508 C 129.57126,1062.6508 132.39358,1074.2223 147.35184,1074.5046 C 162.3101,1074.7868 167.95472,1064.8087 167.95472,1064.8087 L 168.51919,1046.5637 C 168.51919,1046.5637 163.72125,1035.2744 149.04522,1035.2744 C 134.36919,1035.2744 130.41796,1045.4347 129.57126,1045.4347 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3374)" />
+ <svg:path
+ id="path3576"
+ d="M 120.82209,1034.7099 L 120.25763,1063.7798 C 120.25763,1063.7798 117.43531,1063.4975 117.71755,1066.0376 C 117.99978,1068.5777 120.25763,1069.9889 120.25763,1069.9889 L 120.25763,1072.8112 C 120.25763,1072.8112 114.89523,1079.0203 114.89523,1083.8182 C 114.89523,1088.6161 121.66878,1090.3095 122.79771,1090.5917 C 123.92663,1090.874 131.26465,1088.6161 131.26465,1083.8182 C 131.26465,1079.0203 126.74895,1075.6335 127.03118,1071.9645 C 127.31341,1068.2955 126.46672,1067.731 126.46672,1067.731 C 126.46672,1067.731 128.72457,1068.0132 128.72457,1065.7554 C 128.72457,1063.4975 125.90225,1062.3686 125.90225,1062.3686 L 123.07994,1062.0864 L 123.36217,1034.9922 L 120.82209,1034.7099 z"
+ style="fill:#000000;fill-opacity:0.90751444;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3370)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3578"
+ transform="translate(-1.304955,-5.2235086)">
+ <svg:path
+ id="path3580"
+ d="M 15.804955,43.2715 L 55.317343,18.717373 L 89.749567,43.835963 C 89.749567,43.835963 77.331388,50.045052 75.355768,50.609515 C 73.380149,51.173978 32.456604,49.48059 32.456604,49.48059 L 15.804955,43.2715 z"
+ style="fill:url(#linearGradient3588);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3582"
+ d="M 34.996686,46.093814 C 34.996686,47.222739 34.996686,63.309925 34.996686,63.309925 C 34.996686,63.309925 37.819,74.88141 52.777261,75.163642 C 67.735522,75.445873 73.380149,65.467797 73.380149,65.467797 L 73.944611,47.222739 C 73.944611,47.222739 69.146679,35.933485 54.470649,35.933485 C 39.794619,35.933485 35.84338,46.093814 34.996686,46.093814 z"
+ style="fill:url(#linearGradient3590);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3584"
+ d="M 35.46031,65.29575 C 35.46031,65.29575 42.583407,58.87726 55.318653,59.106493 C 68.053897,59.335724 73.431001,66.20874 73.431001,66.20874 C 73.431001,66.20874 64.738741,75.622993 52.569507,75.393762 C 40.400273,75.16453 35.46031,65.524982 35.46031,65.29575 z"
+ style="fill:url(#linearGradient3592);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.90246332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path3586"
+ d="M 26.247515,35.369022 L 25.683052,64.438851 C 25.683052,64.438851 22.860739,64.156619 23.14297,66.696701 C 23.425201,69.236783 25.683052,70.64794 25.683052,70.64794 L 25.683052,73.470254 C 25.683052,73.470254 20.320656,79.679343 20.320656,84.477276 C 20.320656,89.275209 27.094209,90.968597 28.223134,91.250828 C 29.352059,91.533059 36.690074,89.275209 36.690074,84.477276 C 36.690074,79.679343 32.174373,76.292567 32.456604,72.623559 C 32.738836,68.954552 31.892141,68.390089 31.892141,68.390089 C 31.892141,68.390089 34.149992,68.672321 34.149992,66.41447 C 34.149992,64.156619 31.327679,63.027694 31.327679,63.027694 L 28.505365,62.745463 L 28.787597,35.651254 L 26.247515,35.369022 z"
+ style="fill:url(#linearGradient3594);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/lesson0.png b/data/images/sprites/lesson0.png
new file mode 100644
index 0000000..5f291b9
Binary files /dev/null and b/data/images/sprites/lesson0.png differ
diff --git a/data/images/sprites/lesson1.png b/data/images/sprites/lesson1.png
new file mode 100644
index 0000000..9ae17ba
Binary files /dev/null and b/data/images/sprites/lesson1.png differ
diff --git a/data/images/sprites/lesson2.png b/data/images/sprites/lesson2.png
new file mode 100644
index 0000000..2010b0b
Binary files /dev/null and b/data/images/sprites/lesson2.png differ
diff --git a/data/images/sprites/lesson3.png b/data/images/sprites/lesson3.png
new file mode 100644
index 0000000..c8ad9b1
Binary files /dev/null and b/data/images/sprites/lesson3.png differ
diff --git a/data/images/sprites/lessond.png b/data/images/sprites/lessond.png
new file mode 100644
index 0000000..04f0c25
Binary files /dev/null and b/data/images/sprites/lessond.png differ
diff --git a/data/images/sprites/main.svg b/data/images/sprites/main.svg
new file mode 100644
index 0000000..1b50e18
--- /dev/null
+++ b/data/images/sprites/main.svg
@@ -0,0 +1,783 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="main.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>8 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3424">
+ <svg:stop
+ id="stop3426"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <svg:stop
+ id="stop3428"
+ offset="1"
+ style="stop-color:#00ffff;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3416">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3418" />
+ <svg:stop
+ style="stop-color:#00ffff;stop-opacity:1;"
+ offset="1"
+ id="stop3420" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3350">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3352" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop3354" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2562"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3394"
+ x="-0.11708876"
+ width="1.2341775"
+ y="-0.1230597"
+ height="1.2461194">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.2882813"
+ id="feGaussianBlur3396" />
+ </svg:filter>
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.4811316"
+ inkscape:cx="-77.695871"
+ inkscape:cy="78.258942"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2446"
+ transform="translate(-0.5139142,952.67548)">
+ <svg:g
+ id="g2457">
+ <svg:g
+ id="g3232"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3861"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="rect3855"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="rect3575"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3380"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path3372"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2464"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2466">
+ <svg:g
+ id="g2468"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2470"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2472"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2474"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2477"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2480"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 67.869489,13.86265 C 73.267509,22.719 83.681269,29.21867 84.290749,46.92723 C 84.837909,63.13751 74.380599,68.93931 74.380599,68.93931 C 74.380599,68.93931 70.547969,70.92231 70.147129,59.34351 C 67.701419,70.32031 65.355969,76.86891 55.471099,82.48651 C 61.821309,84.63391 76.458279,88.09621 88.209949,73.73731 C 80.070529,75.42751 80.307459,72.04391 80.307459,72.04391 C 80.307459,72.04391 91.775879,62.38831 91.090259,47.31543 C 90.396729,31.82101 76.890589,17.86841 67.869489,13.86265 z"
+ id="path3432"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2482"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2484">
+ <svg:g
+ id="g2486"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2488"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2490"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2492"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2494"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2496"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 89.738221,29.247798 C 88.409739,39.534133 92.468701,51.119337 81.866838,65.316698 C 72.153584,78.306128 60.365609,76.291212 60.365609,76.291212 C 60.365609,76.291212 56.134974,75.440881 63.065219,66.156432 C 54.290687,73.190579 48.364383,76.832588 37.138248,75.032043 C 40.749362,80.679729 50.003236,92.536973 68.153851,88.685364 C 60.746242,84.912532 63.047663,82.420876 63.047663,82.420876 C 63.047663,82.420876 78.035197,82.06157 86.928939,69.872921 C 96.080198,57.350441 94.270672,38.016107 89.738221,29.247798 z"
+ id="path2461"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2498"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2500">
+ <svg:g
+ id="g2502"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2504"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2506"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2508"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2510"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2512"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 84.762347,61.537043 C 76.48412,67.785603 71.047716,78.791857 53.486568,81.152085 C 37.410163,83.301919 30.601258,73.47059 30.601258,73.47059 C 30.601258,73.47059 28.248447,69.853185 39.73063,68.307623 C 28.565583,66.961009 21.816897,65.27562 15.247978,55.995675 C 13.740019,62.527334 11.744292,77.435234 27.196416,87.707119 C 24.708448,79.775099 28.09888,79.675772 28.09888,79.675772 C 28.09888,79.675772 38.842772,90.131586 53.773656,87.956614 C 69.123225,85.732023 81.669672,70.910501 84.762347,61.537043 z"
+ id="path2464"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2514"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2516">
+ <svg:g
+ id="g2518"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2520"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2522"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2524"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2526"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2528"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 70.602103,84.190039 C 60.256786,83.449875 48.921698,88.162405 34.14327,78.386785 C 20.621454,69.429503 21.961368,57.545863 21.961368,57.545863 C 21.961368,57.545863 22.569241,53.273647 32.23352,59.663573 C 24.710795,51.304129 20.736999,45.594987 21.894911,34.284491 C 16.462183,38.21157 5.1515226,48.126074 10.031161,66.027714 C 13.375747,58.417151 15.994506,60.572854 15.994506,60.572854 C 15.994506,60.572854 17.207271,75.515559 29.882909,83.700292 C 42.906516,92.123105 62.106321,89.21478 70.602103,84.190039 z"
+ id="path2467"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2530"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2532">
+ <svg:g
+ id="g2534"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2536"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2538"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2540"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2542"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2544"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 38.203876,84.621658 C 31.483979,76.721248 20.179901,71.934807 16.801319,54.540845 C 13.719218,38.616873 23.137475,31.247159 23.137475,31.247159 C 23.137475,31.247159 26.611777,28.68775 28.823168,40.060481 C 29.517507,28.835976 30.807147,22.000611 39.688937,14.902589 C 33.080566,13.777448 18.081766,12.652994 8.7268794,28.676905 C 16.500599,25.731372 16.79714,29.110281 16.79714,29.110281 C 16.79714,29.110281 6.9845394,40.444657 10.025046,55.223587 C 13.139469,70.417618 28.666271,82.079928 38.203876,84.621658 z"
+ id="path2470"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2546"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2548">
+ <svg:g
+ id="g2550"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2552"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2554"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2556"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2558"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2560"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 15.332833,66.708398 C 17.124243,56.492509 13.592338,44.735899 24.824221,31.031536 C 35.11387,18.49378 46.798889,21.038704 46.798889,21.038704 C 46.798889,21.038704 50.986829,22.079132 43.644575,31.041305 C 52.727663,24.410383 58.812318,21.039573 69.945742,23.345 C 66.593218,17.540082 57.883976,5.277232 39.578011,8.305656 C 46.80778,12.408988 44.396232,14.794235 44.396232,14.794235 C 44.396232,14.794235 29.407758,14.476692 19.972932,26.251476 C 10.265773,38.348139 11.200765,57.744447 15.332833,66.708398 z"
+ id="path2473"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame6"
+ inkscape:label="frame6"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2562"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2564">
+ <svg:g
+ id="g2566"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2568"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2570"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2572"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2574"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2576"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 15.790477,34.095333 C 24.237972,28.077579 29.976021,17.225526 47.595621,15.350793 C 63.725216,13.645403 70.260247,23.660875 70.260247,23.660875 C 70.260247,23.660875 72.512335,27.34183 60.991874,28.569948 C 72.115509,30.224147 78.815122,32.095114 85.125463,41.552802 C 86.813072,35.065236 89.219419,20.218086 74.056633,9.5237225 C 76.324783,17.521373 72.932889,17.527103 72.932889,17.527103 C 72.932889,17.527103 62.481605,6.778799 47.496404,8.5409357 C 32.091289,10.341115 19.140622,24.810779 15.790477,34.095333 z"
+ id="path2476"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame7"
+ inkscape:label="frame7"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2578"
+ transform="translate(-0.5139142,0.3132974)">
+ <svg:g
+ id="g2580">
+ <svg:g
+ id="g2582"
+ style="display:inline"
+ transform="translate(0.5139142,-952.67548)">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="rect2584"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ <svg:path
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ id="path2586"
+ clip-path="url(#clipPath3228)" />
+ <svg:path
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ id="path2588"
+ clip-path="url(#clipPath3224)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path2590"
+ sodipodi:cx="52.918377"
+ sodipodi:cy="56.67749"
+ sodipodi:rx="14.252683"
+ sodipodi:ry="14.252683"
+ d="M 67.17106,56.67749 A 14.252683,14.252683 0 1 1 38.665694,56.67749 A 14.252683,14.252683 0 1 1 67.17106,56.67749 z"
+ transform="translate(-2.15178,-8.75704)" />
+ </svg:g>
+ <svg:path
+ id="path2592"
+ d="M 61.069114,38.56159 C 62.385929,40.72062 63.162864,43.22437 63.162864,45.93658 C 63.162866,53.8042 56.780345,60.2179 48.912864,60.2179 C 45.415045,60.2179 42.206339,58.9363 39.725364,56.8429 C 42.231131,60.934 46.735938,63.6867 51.881614,63.6867 C 59.749095,63.6867 66.131616,57.2729 66.131614,49.4054 C 66.131614,45.04422 64.158017,41.17668 61.069114,38.56159 z"
+ style="opacity:1;fill:#000000;fill-opacity:0.78356174;fill-rule:nonzero;stroke:none;stroke-width:1.39999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3394)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00a4ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 30.304014,15.197748 C 40.663444,15.703377 51.888879,10.735291 66.884952,20.173655 C 80.606192,28.82235 79.535809,40.733293 79.535809,40.733293 C 79.535809,40.733293 79.024861,45.018182 69.218322,38.848798 C 76.928471,47.035699 81.030571,52.653355 80.12915,63.987185 C 85.471529,59.938046 96.554709,49.769885 91.270818,31.98337 C 88.099489,39.667743 85.432573,37.571911 85.432573,37.571911 C 85.432573,37.571911 83.881638,22.66051 71.023853,14.765005 C 57.812799,6.6393596 38.683794,9.9818434 30.304014,15.197748 z"
+ id="path2479"
+ sodipodi:nodetypes="cscccccsc" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/main0.png b/data/images/sprites/main0.png
new file mode 100644
index 0000000..37d46f1
Binary files /dev/null and b/data/images/sprites/main0.png differ
diff --git a/data/images/sprites/main1.png b/data/images/sprites/main1.png
new file mode 100644
index 0000000..5ccd0c2
Binary files /dev/null and b/data/images/sprites/main1.png differ
diff --git a/data/images/sprites/main2.png b/data/images/sprites/main2.png
new file mode 100644
index 0000000..f0e571e
Binary files /dev/null and b/data/images/sprites/main2.png differ
diff --git a/data/images/sprites/main3.png b/data/images/sprites/main3.png
new file mode 100644
index 0000000..2d37556
Binary files /dev/null and b/data/images/sprites/main3.png differ
diff --git a/data/images/sprites/main4.png b/data/images/sprites/main4.png
new file mode 100644
index 0000000..db7071f
Binary files /dev/null and b/data/images/sprites/main4.png differ
diff --git a/data/images/sprites/main5.png b/data/images/sprites/main5.png
new file mode 100644
index 0000000..c39c946
Binary files /dev/null and b/data/images/sprites/main5.png differ
diff --git a/data/images/sprites/main6.png b/data/images/sprites/main6.png
new file mode 100644
index 0000000..71703da
Binary files /dev/null and b/data/images/sprites/main6.png differ
diff --git a/data/images/sprites/main7.png b/data/images/sprites/main7.png
new file mode 100644
index 0000000..9786d8d
Binary files /dev/null and b/data/images/sprites/main7.png differ
diff --git a/data/images/sprites/maind.png b/data/images/sprites/maind.png
new file mode 100644
index 0000000..abe12bb
Binary files /dev/null and b/data/images/sprites/maind.png differ
diff --git a/data/images/sprites/no_goldstar.svg b/data/images/sprites/no_goldstar.svg
new file mode 100644
index 0000000..19ca744
--- /dev/null
+++ b/data/images/sprites/no_goldstar.svg
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="no_goldstar.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>1 frame</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3265">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop3267" />
+ <svg:stop
+ style="stop-color:#232323;stop-opacity:1;"
+ offset="1"
+ id="stop3269" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3271"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081"
+ gradientTransform="matrix(1,0,0,0.9861851,-0.846694,0.3701448)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3277">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="2.0288425"
+ id="feGaussianBlur3279" />
+ </svg:filter>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3287"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-4.135947,951.61041)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3265"
+ id="radialGradient3293"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.9861851,-4.135947,-0.75179)"
+ cx="52.495029"
+ cy="47.22274"
+ fx="52.495029"
+ fy="47.22274"
+ r="40.859081" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.5431926"
+ inkscape:cx="5.5426055"
+ inkscape:cy="48.694768"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00000b;fill-opacity:0.8821918;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3277)"
+ d="M 12.797933,990.84276 C 17.031403,990.2783 40.174373,988.58491 40.174373,988.58491 L 52.874784,961.77293 L 63.599574,988.30268 L 93.516094,990.2783 L 72.913214,1013.7035 L 77.993374,1039.951 L 51.745854,1026.6862 L 27.473963,1041.3622 L 32.271896,1012.5746 L 12.797933,990.84276 z"
+ id="path3273" />
+ <svg:path
+ style="fill:url(#radialGradient3287);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 8,987.45598 C 12.23347,986.89152 35.37644,985.19813 35.37644,985.19813 L 48.076854,958.38615 L 58.801644,984.9159 L 88.718164,986.89152 L 68.115274,1010.3167 L 73.195444,1036.5643 L 46.947924,1023.2994 L 22.67603,1037.9754 L 27.473963,1009.1878 L 8,987.45598 z"
+ id="path2493" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#00000b;fill-opacity:0.8821918;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3277)"
+ d="M 12.797933,38.48056 C 17.031403,37.9161 40.174373,36.22271 40.174373,36.22271 L 52.874784,9.41073 L 63.599574,35.94048 L 93.516091,37.9161 L 72.913214,61.3413 L 77.993374,87.5888 L 51.745854,74.324 L 27.473963,89 L 32.271896,60.2124 L 12.797933,38.48056 z"
+ id="path3289" />
+ <svg:path
+ style="fill:url(#radialGradient3293);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 8,35.09378 C 12.23347,34.52932 35.37644,32.83593 35.37644,32.83593 L 48.076854,6.02395 L 58.801644,32.5537 L 88.718161,34.52932 L 68.115274,57.9545 L 73.195444,84.2021 L 46.947924,70.9372 L 22.67603,85.6132 L 27.473963,56.8256 L 8,35.09378 z"
+ id="path3291" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/no_goldstar0.png b/data/images/sprites/no_goldstar0.png
new file mode 100644
index 0000000..e6e7310
Binary files /dev/null and b/data/images/sprites/no_goldstar0.png differ
diff --git a/data/images/sprites/no_goldstard.png b/data/images/sprites/no_goldstard.png
new file mode 100644
index 0000000..2c01357
Binary files /dev/null and b/data/images/sprites/no_goldstard.png differ
diff --git a/data/images/sprites/nums.svg b/data/images/sprites/nums.svg
new file mode 100644
index 0000000..f5841e4
--- /dev/null
+++ b/data/images/sprites/nums.svg
@@ -0,0 +1,751 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="nums.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>8 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.5431926"
+ inkscape:cx="23.431148"
+ inkscape:cy="33.908566"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial"
+ x="10.007812"
+ y="1017.7762"
+ id="text3202"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3204"
+ x="10.007812"
+ y="1017.7762">000</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3233">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3235"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3237"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3239"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.00781"
+ y="65.414001"
+ id="text3241"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3243"
+ x="10.00781"
+ y="65.414001">000</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3220">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3222"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3224"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3226"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007812"
+ y="65.414001"
+ id="text3228"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3230"
+ x="10.007812"
+ y="65.414001">001</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3246">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3248"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3250"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3252"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007812"
+ y="65.413971"
+ id="text3254"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3256"
+ x="10.007812"
+ y="65.413971">010</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007813"
+ y="65.414001"
+ id="text3267"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3269"
+ x="10.007813"
+ y="65.414001">000</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3271">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3273"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3275"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3277"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007813"
+ y="65.413971"
+ id="text3279"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3281"
+ x="10.007813"
+ y="65.413971">011</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3284">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3286"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3288"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3290"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007818"
+ y="65.414001"
+ id="text3292"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3294"
+ x="10.007818"
+ y="65.414001">000</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3296">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3298"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3300"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3302"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007818"
+ y="65.413971"
+ id="text3304"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3306"
+ x="10.007818"
+ y="65.413971">100</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3309">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3311"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3313"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3315"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413994"
+ id="text3317"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3319"
+ x="10.007816"
+ y="65.413994">000</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3321">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3323"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3325"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3327"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413963"
+ id="text3329"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3331"
+ x="10.007816"
+ y="65.413963">101</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame6"
+ inkscape:label="frame6"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3334">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3336"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3338"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3340"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413986"
+ id="text3342"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3344"
+ x="10.007816"
+ y="65.413986">000</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3346">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3348"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3350"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3352"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413956"
+ id="text3354"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3356"
+ x="10.007816"
+ y="65.413956">110</svg:tspan></svg:text>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame7"
+ inkscape:label="frame7"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3359">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3361"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3363"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3365"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413979"
+ id="text3367"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3369"
+ x="10.007816"
+ y="65.413979">000</svg:tspan></svg:text>
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3371">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3373"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3375"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3377"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:text
+ xml:space="preserve"
+ style="font-size:48px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;font-family:Arial"
+ x="10.007816"
+ y="65.413948"
+ id="text3379"><svg:tspan
+ sodipodi:role="line"
+ id="tspan3381"
+ x="10.007816"
+ y="65.413948">111</svg:tspan></svg:text>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/nums0.png b/data/images/sprites/nums0.png
new file mode 100644
index 0000000..67b9fbc
Binary files /dev/null and b/data/images/sprites/nums0.png differ
diff --git a/data/images/sprites/nums1.png b/data/images/sprites/nums1.png
new file mode 100644
index 0000000..cb60db4
Binary files /dev/null and b/data/images/sprites/nums1.png differ
diff --git a/data/images/sprites/nums2.png b/data/images/sprites/nums2.png
new file mode 100644
index 0000000..e11b9a2
Binary files /dev/null and b/data/images/sprites/nums2.png differ
diff --git a/data/images/sprites/nums3.png b/data/images/sprites/nums3.png
new file mode 100644
index 0000000..0b318e5
Binary files /dev/null and b/data/images/sprites/nums3.png differ
diff --git a/data/images/sprites/nums4.png b/data/images/sprites/nums4.png
new file mode 100644
index 0000000..1f01816
Binary files /dev/null and b/data/images/sprites/nums4.png differ
diff --git a/data/images/sprites/nums5.png b/data/images/sprites/nums5.png
new file mode 100644
index 0000000..c1a1ffa
Binary files /dev/null and b/data/images/sprites/nums5.png differ
diff --git a/data/images/sprites/nums6.png b/data/images/sprites/nums6.png
new file mode 100644
index 0000000..8b09b97
Binary files /dev/null and b/data/images/sprites/nums6.png differ
diff --git a/data/images/sprites/nums7.png b/data/images/sprites/nums7.png
new file mode 100644
index 0000000..54605bf
Binary files /dev/null and b/data/images/sprites/nums7.png differ
diff --git a/data/images/sprites/numsd.png b/data/images/sprites/numsd.png
new file mode 100644
index 0000000..67b9fbc
Binary files /dev/null and b/data/images/sprites/numsd.png differ
diff --git a/data/images/sprites/quit.svg b/data/images/sprites/quit.svg
new file mode 100644
index 0000000..57e1bbd
--- /dev/null
+++ b/data/images/sprites/quit.svg
@@ -0,0 +1,1357 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="quit.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>7 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3352">
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:1;"
+ offset="0"
+ id="stop3354" />
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:0;"
+ offset="1"
+ id="stop3356" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3344">
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:1;"
+ offset="0"
+ id="stop3346" />
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:0;"
+ offset="1"
+ id="stop3348" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3336">
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:1;"
+ offset="0"
+ id="stop3338" />
+ <svg:stop
+ style="stop-color:#ff7f2a;stop-opacity:0;"
+ offset="1"
+ id="stop3340" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3327">
+ <svg:stop
+ style="stop-color:#803300;stop-opacity:1;"
+ offset="0"
+ id="stop3329" />
+ <svg:stop
+ style="stop-color:#a03300;stop-opacity:1;"
+ offset="1"
+ id="stop3331" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3319">
+ <svg:stop
+ style="stop-color:#803300;stop-opacity:1;"
+ offset="0"
+ id="stop3321" />
+ <svg:stop
+ style="stop-color:#ad3000;stop-opacity:1;"
+ offset="1"
+ id="stop3323" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3307">
+ <svg:stop
+ id="stop3309"
+ offset="0"
+ style="stop-color:#a56700;stop-opacity:1;" />
+ <svg:stop
+ id="stop3311"
+ offset="1"
+ style="stop-color:#ff8500;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2521"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3334"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3342"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3350"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3358"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3407"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3409"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3411"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3423"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3425"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3427"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3429"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3432"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73"
+ gradientTransform="translate(-3.8743019e-7,952.36218)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3435"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45"
+ gradientTransform="translate(-3.8743019e-7,952.36218)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3438"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45"
+ gradientTransform="translate(-3.8743019e-7,952.36218)" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3443">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.6050513"
+ id="feGaussianBlur3445" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3492"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3494"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3496"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3498"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3521"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3523"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3525"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3527"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3606"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3608"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3610"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3612"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3635"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3637"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3639"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3641"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3664"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3666"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3668"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3670"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3672"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3674"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3676"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3678"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3327"
+ id="linearGradient3701"
+ gradientUnits="userSpaceOnUse"
+ x1="55.456604"
+ y1="49.310131"
+ x2="85.508667"
+ y2="83.742355" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3336"
+ id="linearGradient3703"
+ gradientUnits="userSpaceOnUse"
+ x1="31.999996"
+ y1="13.000001"
+ x2="45.999996"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3344"
+ id="linearGradient3705"
+ gradientUnits="userSpaceOnUse"
+ x1="53.999996"
+ y1="13.000001"
+ x2="68"
+ y2="45" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3352"
+ id="linearGradient3707"
+ gradientUnits="userSpaceOnUse"
+ x1="33.693386"
+ y1="55"
+ x2="68"
+ y2="73" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.2750173"
+ inkscape:cx="17.812501"
+ inkscape:cy="57.435914"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter3443)"
+ id="rect3415"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="958.34979"
+ rx="0"
+ ry="0" />
+ <svg:g
+ id="g3360"
+ transform="matrix(0.8799025,0.3237932,0,1,2.7617213,944.91494)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect2527"
+ style="opacity:1;fill:url(#linearGradient3387);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3313"
+ style="opacity:1;fill:url(#linearGradient3389);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3315"
+ style="opacity:1;fill:url(#linearGradient3391);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3317"
+ style="opacity:1;fill:url(#linearGradient3393);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3681">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3683"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3685"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3687"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3689"
+ width="53.341724"
+ height="73.662376"
+ x="23.349998"
+ y="5.9876132"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3691"
+ transform="matrix(0.8799025,0.3237932,0,1,2.761722,-7.4472396)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3693"
+ style="opacity:1;fill:url(#linearGradient3701);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3695"
+ style="opacity:1;fill:url(#linearGradient3703);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3697"
+ style="opacity:1;fill:url(#linearGradient3705);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3699"
+ style="opacity:1;fill:url(#linearGradient3707);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3447"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876237"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3395"
+ transform="matrix(0.9004455,0.2597073,0,1,2.2897529,-5.9732683)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3397"
+ style="opacity:1;fill:url(#linearGradient3405);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3399"
+ style="opacity:1;fill:url(#linearGradient3407);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3401"
+ style="opacity:1;fill:url(#linearGradient3409);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3403"
+ style="opacity:1;fill:url(#linearGradient3411);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3469"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876237"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3451"
+ transform="matrix(0.9394016,0.2077659,0,1,1.3937626,-4.7786147)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3453"
+ style="opacity:1;fill:url(#linearGradient3461);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3455"
+ style="opacity:1;fill:url(#linearGradient3463);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3457"
+ style="opacity:1;fill:url(#linearGradient3465);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3459"
+ style="opacity:1;fill:url(#linearGradient3467);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3472">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3474"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3476"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3478"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3480"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876223"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3482"
+ transform="matrix(0.9653724,0.1385065,0,1,0.7964358,-3.1855453)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3484"
+ style="opacity:1;fill:url(#linearGradient3492);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3486"
+ style="opacity:1;fill:url(#linearGradient3494);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3488"
+ style="opacity:1;fill:url(#linearGradient3496);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3490"
+ style="opacity:1;fill:url(#linearGradient3498);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3501">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3503"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3505"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3507"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3509"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876204"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3511"
+ transform="matrix(0.9740293,0.1168683,0,1,0.5973268,-2.6879724)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3513"
+ style="opacity:1;fill:url(#linearGradient3672);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3515"
+ style="opacity:1;fill:url(#linearGradient3674);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3517"
+ style="opacity:1;fill:url(#linearGradient3676);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3519"
+ style="opacity:1;fill:url(#linearGradient3678);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3586">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3588"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3590"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3592"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3594"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876142"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3596"
+ transform="matrix(0.9783577,5.6269918e-2,0,1,0.4977724,-1.2942158)">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3598"
+ style="opacity:1;fill:url(#linearGradient3606);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3600"
+ style="opacity:1;fill:url(#linearGradient3608);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3602"
+ style="opacity:1;fill:url(#linearGradient3610);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3604"
+ style="opacity:1;fill:url(#linearGradient3612);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame6"
+ inkscape:label="frame6"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3615">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3617"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3619"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3621"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:rect
+ style="fill:#000000;fill-opacity:0.8583815;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline;filter:url(#filter3443)"
+ id="rect3623"
+ width="53.341724"
+ height="73.662376"
+ x="23.35"
+ y="5.9876227"
+ rx="0"
+ ry="0" />
+ <svg:g
+ style="display:inline"
+ id="g3625">
+ <svg:rect
+ ry="0"
+ rx="0"
+ y="5.9876237"
+ x="23.35"
+ height="73.662376"
+ width="53.341724"
+ id="rect3627"
+ style="opacity:1;fill:url(#linearGradient3635);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.69999999;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="32.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3629"
+ style="opacity:1;fill:url(#linearGradient3637);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="13.343788"
+ x="54.343784"
+ height="31.312426"
+ width="13.312425"
+ id="rect3631"
+ style="opacity:1;fill:url(#linearGradient3639);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.68757468;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <svg:rect
+ y="55.413826"
+ x="32.413826"
+ height="17.172346"
+ width="35.172344"
+ id="rect3633"
+ style="opacity:1;fill:url(#linearGradient3641);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.82765323;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/quit0.png b/data/images/sprites/quit0.png
new file mode 100644
index 0000000..51b9921
Binary files /dev/null and b/data/images/sprites/quit0.png differ
diff --git a/data/images/sprites/quit1.png b/data/images/sprites/quit1.png
new file mode 100644
index 0000000..975af9a
Binary files /dev/null and b/data/images/sprites/quit1.png differ
diff --git a/data/images/sprites/quit2.png b/data/images/sprites/quit2.png
new file mode 100644
index 0000000..6eabc67
Binary files /dev/null and b/data/images/sprites/quit2.png differ
diff --git a/data/images/sprites/quit3.png b/data/images/sprites/quit3.png
new file mode 100644
index 0000000..bb8b400
Binary files /dev/null and b/data/images/sprites/quit3.png differ
diff --git a/data/images/sprites/quit4.png b/data/images/sprites/quit4.png
new file mode 100644
index 0000000..74a3a38
Binary files /dev/null and b/data/images/sprites/quit4.png differ
diff --git a/data/images/sprites/quit5.png b/data/images/sprites/quit5.png
new file mode 100644
index 0000000..39b9e3b
Binary files /dev/null and b/data/images/sprites/quit5.png differ
diff --git a/data/images/sprites/quit6.png b/data/images/sprites/quit6.png
new file mode 100644
index 0000000..aecf3a9
Binary files /dev/null and b/data/images/sprites/quit6.png differ
diff --git a/data/images/sprites/quit7.png b/data/images/sprites/quit7.png
new file mode 100644
index 0000000..3eb3496
Binary files /dev/null and b/data/images/sprites/quit7.png differ
diff --git a/data/images/sprites/quit8.png b/data/images/sprites/quit8.png
new file mode 100644
index 0000000..fc77116
Binary files /dev/null and b/data/images/sprites/quit8.png differ
diff --git a/data/images/sprites/quitd.png b/data/images/sprites/quitd.png
new file mode 100644
index 0000000..d016ec6
Binary files /dev/null and b/data/images/sprites/quitd.png differ
diff --git a/data/images/sprites/trophy.svg b/data/images/sprites/trophy.svg
new file mode 100644
index 0000000..547fe62
--- /dev/null
+++ b/data/images/sprites/trophy.svg
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="trophy.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3813">
+ <svg:stop
+ style="stop-color:#7a8381;stop-opacity:1;"
+ offset="0"
+ id="stop3815" />
+ <svg:stop
+ id="stop3817"
+ offset="0.82099605"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;"
+ offset="1"
+ id="stop3819" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3793">
+ <svg:stop
+ style="stop-color:#767674;stop-opacity:1;"
+ offset="0"
+ id="stop3795" />
+ <svg:stop
+ id="stop3797"
+ offset="0.82099605"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;"
+ offset="1"
+ id="stop3799" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient2825">
+ <svg:stop
+ id="stop2827"
+ offset="0"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 1;" />
+ <svg:stop
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0.498039;"
+ offset="0.82099605"
+ id="stop3726" />
+ <svg:stop
+ id="stop2829"
+ offset="1"
+ style="stop-color: rgb(13, 14, 18); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4619">
+ <svg:stop
+ id="stop4621"
+ offset="0"
+ style="stop-color: white; stop-opacity: 1;" />
+ <svg:stop
+ style="stop-color: rgb(5, 6, 6); stop-opacity: 0.90625;"
+ offset="1"
+ id="stop4631" />
+ <svg:stop
+ id="stop4623"
+ offset="1"
+ style="stop-color: white; stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient5518">
+ <svg:stop
+ id="stop5520"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <svg:stop
+ id="stop5522"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective2617"
+ inkscape:persp3d-origin="357.43277 : 207.07776 : 1"
+ inkscape:vp_z="714.86554 : 310.61664 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 310.61664 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3601"
+ gradientUnits="userSpaceOnUse"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3606"
+ gradientUnits="userSpaceOnUse"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3678"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3720"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3781"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2825"
+ id="linearGradient3801"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(8.4085406e-2,0,0,8.4085406e-2,-13.00792,1006.9967)"
+ x1="582.32495"
+ y1="63.341202"
+ x2="88.568726"
+ y2="-327.81149" />
+ <svg:linearGradient
+ y2="299.59677"
+ x2="-484.42929"
+ y1="398.57648"
+ x1="-496.55112"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3276"
+ xlink:href="#linearGradient3181"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="169.15302"
+ fy="472.11707"
+ fx="-497.56128"
+ cy="472.11707"
+ cx="-497.56128"
+ gradientTransform="matrix(1,0,0,0.7674503,0,109.79069)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3274"
+ xlink:href="#linearGradient3189"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="132.3125"
+ fy="743.31287"
+ fx="-490.93591"
+ cy="743.31287"
+ cx="-490.93591"
+ gradientTransform="matrix(0.568122,-1.6913754e-7,3.4813001e-7,1.169346,-212.02469,-125.87714)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3272"
+ xlink:href="#linearGradient3189"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.7674503,0,109.79069)"
+ r="169.15302"
+ fy="472.11707"
+ fx="-497.56128"
+ cy="472.11707"
+ cx="-497.56128"
+ id="radialGradient3263"
+ xlink:href="#linearGradient3189"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.568122,-1.6913754e-7,3.4813001e-7,1.169346,-212.02469,-125.87714)"
+ r="132.3125"
+ fy="743.31287"
+ fx="-490.93591"
+ cy="743.31287"
+ cx="-490.93591"
+ id="radialGradient3195"
+ xlink:href="#linearGradient3189"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="299.59677"
+ x2="-484.42929"
+ y1="398.57648"
+ x1="-496.55112"
+ id="linearGradient3187"
+ xlink:href="#linearGradient3181"
+ inkscape:collect="always" />
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective2390" />
+ <inkscape:perspective
+ id="perspective2608"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3181">
+ <svg:stop
+ id="stop3183"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3185"
+ offset="1"
+ style="stop-color:#625d61;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3189">
+ <svg:stop
+ id="stop3191"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <svg:stop
+ id="stop3193"
+ offset="1"
+ style="stop-color:#ffff00;stop-opacity:1" />
+ </svg:linearGradient>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient2632"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.568122,-1.6913754e-7,3.4813001e-7,1.169346,-212.02469,-125.87714)"
+ cx="-490.93591"
+ cy="743.31287"
+ fx="-490.93591"
+ fy="743.31287"
+ r="132.3125" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient2634"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.7674503,0,109.79069)"
+ cx="-497.56128"
+ cy="472.11707"
+ fx="-497.56128"
+ fy="472.11707"
+ r="169.15302" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="linearGradient2636"
+ gradientUnits="userSpaceOnUse"
+ x1="-496.55112"
+ y1="398.57648"
+ x2="-484.42929"
+ y2="299.59677" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3446">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="20.793519"
+ id="feGaussianBlur3448" />
+ </svg:filter>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient3476"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.568122,-1.6913754e-7,3.4813001e-7,1.169346,-212.02469,-125.87714)"
+ cx="-490.93591"
+ cy="743.31287"
+ fx="-490.93591"
+ fy="743.31287"
+ r="132.3125" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient3478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.7674503,0,109.79069)"
+ cx="-497.56128"
+ cy="472.11707"
+ fx="-497.56128"
+ fy="472.11707"
+ r="169.15302" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="linearGradient3480"
+ gradientUnits="userSpaceOnUse"
+ x1="-496.55112"
+ y1="398.57648"
+ x2="-484.42929"
+ y2="299.59677" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient3506"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.568122,-1.6913754e-7,3.4813001e-7,1.169346,-212.02469,-125.87714)"
+ cx="-490.93591"
+ cy="743.31287"
+ fx="-490.93591"
+ fy="743.31287"
+ r="132.3125" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3189"
+ id="radialGradient3508"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.7674503,0,109.79069)"
+ cx="-497.56128"
+ cy="472.11707"
+ fx="-497.56128"
+ fy="472.11707"
+ r="169.15302" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3181"
+ id="linearGradient3510"
+ gradientUnits="userSpaceOnUse"
+ x1="-496.55112"
+ y1="398.57648"
+ x2="-484.42929"
+ y2="299.59677" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3321"
+ x="-0.21329226"
+ width="1.4265845"
+ y="-0.27484639"
+ height="1.5496928">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.5201419"
+ id="feGaussianBlur3323" />
+ </svg:filter>
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.2690238"
+ inkscape:cx="35.057126"
+ inkscape:cy="35.086265"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1270"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.8;fill:#000000;display:inline;filter:url(#filter3446)"
+ id="g2638"
+ transform="matrix(0.1173874,0,-0.1180539,7.6395788e-2,209.69811,968.67293)">
+ <svg:path
+ id="path2640"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path2642"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path2644"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path2646"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path2648"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ id="g3265"
+ transform="matrix(0.1197048,0,0,0.1197048,109.96864,931.86345)">
+ <svg:path
+ id="path3174"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:url(#radialGradient2632);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3172"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3170"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path2396"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:url(#radialGradient2634);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3168"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:url(#linearGradient2636);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.8;fill:#000000;display:inline;filter:url(#filter3446)"
+ id="g3452"
+ transform="matrix(0.1173874,0,-0.1180539,7.6395788e-2,209.69811,16.310747)">
+ <svg:path
+ id="path3454"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3456"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3458"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3460"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3462"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3464"
+ transform="matrix(0.1197048,0,0,0.1197048,109.96864,-20.498733)">
+ <svg:path
+ id="path3466"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:url(#radialGradient3476);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3468"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3470"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3472"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:url(#radialGradient3478);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3474"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:url(#linearGradient3480);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:path
+ style="opacity:0.9;fill:#f2f8f4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3321)"
+ d="M 40.105353,52.843157 C 37.461044,52.843157 -0.88143632,67.827579 -0.88143632,67.827579 L 25.561654,39.621612 L 4.8478997,6.5677498 L 41.427508,29.485094 L 83.736451,4.3641588 L 53.767616,40.503048 L 78.888551,70.031169 L 40.105353,52.843157 z"
+ id="path2513"
+ sodipodi:nodetypes="ccccccccc"
+ transform="matrix(0.46875,0,0,0.4630873,18.923336,20.412617)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="opacity:0.8;fill:#000000;display:inline;filter:url(#filter3446)"
+ id="g3482"
+ transform="matrix(0.1173874,0,-0.1180539,7.6395788e-2,209.69811,16.310747)">
+ <svg:path
+ id="path3484"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3486"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3488"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3490"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3492"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3494"
+ transform="matrix(0.1197048,0,0,0.1197048,109.96864,-20.498733)">
+ <svg:path
+ id="path3496"
+ d="M -492.96717,589.59375 C -492.96717,589.59375 -492.96723,590.45363 -492.96717,590.46875 L -533.37342,597.78125 C -533.37343,597.78127 -531.32503,626.06409 -545.46717,632.125 C -559.60931,638.18591 -571.7562,654.35628 -561.65467,662.4375 C -551.55312,670.51872 -533.37342,662.45161 -533.37342,676.59375 C -533.37343,690.73587 -539.43592,745.28125 -539.43592,745.28125 L -535.37342,785.6875 C -535.3734,785.68753 -622.24842,789.70954 -622.24842,834.15625 C -622.24842,878.60294 -568.70705,899.43195 -488.90467,896.8125 C -488.9048,896.80368 -488.90454,896.79008 -488.90467,896.78125 C -411.36295,898.56663 -359.62341,877.74737 -359.62342,834.0625 C -359.62342,789.61579 -446.49843,785.56248 -446.49842,785.5625 L -442.43592,745.15625 C -442.43592,745.15625 -448.49843,690.61088 -448.49842,676.46875 C -448.49842,662.32661 -430.31871,670.42498 -420.21717,662.34375 C -410.11564,654.26253 -422.2313,638.09217 -436.37342,632.03125 C -450.51556,625.97034 -448.49843,597.68747 -448.49842,597.6875 L -488.90467,590.34375 C -488.90464,590.33603 -488.90467,589.71875 -488.90467,589.71875 L -490.59217,590.03125 L -492.96717,589.59375 z"
+ style="fill:url(#radialGradient3506);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3498"
+ d="M -337.317,513.0148 C -337.317,513.0148 -272.66723,500.89297 -250.44388,414.01985 C -228.22052,327.14673 -218.119,300.88276 -234.28144,298.86246 C -250.44388,296.84215 -284.17562,316.03097 -296.91089,323.10612 C -315.09364,333.20764 -343.37791,355.431 -343.37791,355.431 L -337.317,393.8168 C -337.317,393.8168 -274.68754,339.26856 -266.60632,343.30917 C -258.5251,347.34978 -267.99996,387.6062 -274.68754,401.89802 C -280.35971,414.01985 -310.7052,482.71022 -325.19516,482.71022 C -339.3373,482.71022 -351.45913,486.75083 -351.45913,486.75083 L -337.317,513.0148 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="csssccssscc"
+ id="path3500"
+ d="M -664.68037,512.94073 C -664.68037,512.94073 -729.33014,500.8189 -751.55349,413.94578 C -773.77685,327.07266 -783.87837,300.80869 -767.71593,298.78839 C -751.55349,296.76808 -717.82175,315.9569 -705.08648,323.03205 C -686.90373,333.13357 -658.61946,355.35693 -658.61946,355.35693 L -664.68037,393.74273 C -664.68037,393.74273 -727.30983,339.19449 -735.39105,343.2351 C -743.47227,347.27571 -733.99741,387.53213 -727.30983,401.82395 C -721.63766,413.94578 -691.29217,482.63615 -676.80221,482.63615 C -662.66007,482.63615 -650.53824,486.67676 -650.53824,486.67676 L -664.68037,512.94073 z"
+ style="fill:#ffff00;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="ccsccsc"
+ id="path3502"
+ d="M -664.87745,345.46443 L -665.71429,512.36218 C -665.71429,512.36218 -588.57143,600.93361 -494.28571,600.93361 C -400,600.93361 -337.14286,509.50504 -337.14286,509.50504 L -329.40826,343.30055 C -329.40826,343.30055 -394.28571,395.21933 -497.14286,398.07647 C -600,400.93361 -667.7346,351.17872 -664.87745,345.46443 z"
+ style="fill:url(#radialGradient3508);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cscsc"
+ id="path3504"
+ d="M -660,349.50504 C -660,349.50504 -647.38796,300.09678 -498.81653,300.09678 C -350.2451,300.09678 -333.10225,342.11708 -333.10225,342.11708 C -333.10225,342.11708 -400,398.07647 -497.14286,398.07647 C -594.28571,398.07647 -657.14286,352.36218 -660,349.50504 z"
+ style="fill:url(#linearGradient3510);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </svg:g>
+ <svg:path
+ style="opacity:0.9;fill:#f2f8f4;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline;filter:url(#filter3321)"
+ d="M 40.105353,52.843157 C 37.461044,52.843157 -0.88143632,67.827579 -0.88143632,67.827579 L 25.561654,39.621612 L 4.8478997,6.5677498 L 41.427508,29.485094 L 83.736451,4.3641588 L 53.767616,40.503048 L 78.888551,70.031169 L 40.105353,52.843157 z"
+ id="path3325"
+ sodipodi:nodetypes="ccccccccc"
+ transform="matrix(0.46875,0,0,0.4630873,43.603553,11.377892)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/trophy0.png b/data/images/sprites/trophy0.png
new file mode 100644
index 0000000..3aa48b6
Binary files /dev/null and b/data/images/sprites/trophy0.png differ
diff --git a/data/images/sprites/trophy1.png b/data/images/sprites/trophy1.png
new file mode 100644
index 0000000..4d260fc
Binary files /dev/null and b/data/images/sprites/trophy1.png differ
diff --git a/data/images/sprites/trophyd.png b/data/images/sprites/trophyd.png
new file mode 100644
index 0000000..cb42b5b
Binary files /dev/null and b/data/images/sprites/trophyd.png differ
diff --git a/data/images/sprites/tux_config.svg b/data/images/sprites/tux_config.svg
new file mode 100644
index 0000000..d9aa9e1
--- /dev/null
+++ b/data/images/sprites/tux_config.svg
@@ -0,0 +1,2694 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_config.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient4171">
+ <svg:stop
+ style="stop-color:#008080;stop-opacity:1;"
+ offset="0"
+ id="stop4173" />
+ <svg:stop
+ style="stop-color:#008080;stop-opacity:0;"
+ offset="1"
+ id="stop4175" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4153">
+ <svg:stop
+ style="stop-color:#606464;stop-opacity:1;"
+ offset="0"
+ id="stop4155" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop4157" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4141">
+ <svg:stop
+ style="stop-color:#00ade8;stop-opacity:1;"
+ offset="0"
+ id="stop4143" />
+ <svg:stop
+ style="stop-color:#0065e8;stop-opacity:1;"
+ offset="1"
+ id="stop4145" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-19.535761,-44.673485)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,100.5028,-24.00599)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,102.56503,-29.253801)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,99.454943,-20.832395)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,216.22272,1.8184156)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,227.07978,40.457116)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4278"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,210.10011,2.6164253)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4358"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-19.535761,-44.673485)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4360"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,100.5028,-24.00599)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4362"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,102.56503,-29.253801)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4364"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,99.454943,-20.832395)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,216.22272,1.8184156)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,227.07978,40.457116)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4382"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,210.10011,2.6164253)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-19.535761,-44.673485)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,100.5028,-24.00599)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,102.56503,-29.253801)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,99.454943,-20.832395)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4450"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4454"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,216.22272,1.8184156)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4458"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,227.07978,40.457116)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,210.10011,2.6164253)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,213.10142,3.5031268)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4470"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7022997,0.4862864,-0.4862864,0.7022997,213.69346,104.55983)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4474"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,219.22403,2.7051171)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,102.45625,-19.945693)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4492"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,105.56634,-28.367099)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,103.50411,-23.119288)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4498"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-16.534454,-43.786783)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.6388115"
+ inkscape:cx="-19.02608"
+ inkscape:cy="41.096775"
+ inkscape:document-units="px"
+ inkscape:current-layer="frame1"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g4306"
+ transform="translate(3.0013075,953.24888)">
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 34.386785,67.525237 C 30.928731,62.548069 30.898602,52.003827 35.907585,39.955695 C 38.939578,34.374797 37.865826,29.274969 38.181079,24.806753 C 38.395625,19.712814 34.578302,4.5042148 48.97522,3.3454534 C 63.557163,2.1820634 62.774061,16.576502 62.690185,24.193699 C 62.620523,30.625413 67.412644,34.270827 70.690594,39.283674 C 76.757636,48.494125 76.244521,64.352538 69.547744,72.936192 C 61.065271,83.681667 53.800083,79.021606 48.97522,79.412703 C 39.940379,79.907281 45.117738,83.758364 34.386785,67.525237 z"
+ id="path4308" />
+ <svg:path
+ style="fill:url(#linearGradient4358);stroke:none;stroke-width:0.99464899"
+ d="M 64.13379,40.224913 C 66.637974,42.530096 73.155484,52.905981 62.849574,59.361241 C 59.216498,61.609183 66.088767,70.220262 69.388542,66.04924 C 75.211653,58.561393 71.498092,46.636546 68.004886,42.36369 C 65.632791,39.334748 62.005524,38.161092 64.13379,40.224913 z"
+ id="path4310" />
+ <svg:path
+ style="fill:url(#linearGradient4360);stroke:none;stroke-width:1.26498997"
+ id="path4312"
+ d="M 57.484977,10.614483 C 57.337922,14.438647 53.129466,17.769212 48.085109,18.053513 C 43.040752,18.337813 39.070702,15.468192 39.217748,11.644028 C 39.364794,7.8198648 43.573258,4.4892997 48.617624,4.2049989 C 53.661973,3.920698 57.632023,6.7903206 57.484977,10.614483 z" />
+ <svg:path
+ style="fill:url(#linearGradient4362);stroke:none;stroke-width:1.25"
+ d="M 34.328389,47.269565 C 36.311045,42.774317 40.524403,34.877853 40.614132,28.771739 C 40.614132,23.915207 55.161025,22.755368 56.328443,27.604329 C 57.495851,32.453296 60.458857,39.72682 62.344659,43.22889 C 64.230308,46.73081 69.729241,57.855482 63.871337,67.563452 C 58.595451,76.158228 42.598332,82.957867 34.05901,66.396202 C 31.185588,60.649204 31.698087,53.527358 34.328389,47.269565 z"
+ id="path4314" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient4364);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 55.879556,33.531184 C 55.789803,38.617169 52.480196,39.81694 48.291857,39.81694 C 44.103373,39.81694 41.063154,39.066145 40.704013,33.531184 C 40.704013,30.061501 44.103373,28.053584 48.291857,28.053584 C 52.480196,28.053584 55.879556,30.061501 55.879556,33.531184 z"
+ id="path4316" />
+ <svg:g
+ transform="matrix(-0.123568,0,0,0.123568,84.130463,3.3063461)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="g4318">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path4320"
+ style="fill:url(#linearGradient4366);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path4322"
+ style="fill:url(#linearGradient4368);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path4324"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path4326"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path4328"
+ style="fill:url(#linearGradient4370);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path4330"
+ style="fill:url(#linearGradient4372);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(-0.123568,0,0,0.123568,84.130463,3.3063461)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="g4332">
+ <svg:path
+ id="path4334"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient4374);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path4336"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path4338"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient4376);stroke:none" />
+ </svg:g>
+ <svg:path
+ id="path4340"
+ d="M 37.406664,32.119802 C 35.392002,33.462833 32.361,39.037153 26.792534,39.453007 C 21.224067,39.868859 18.211072,38.323636 17.402779,40.974129 C 16.594478,43.62462 15.21565,47.118984 18.347509,47.760895 C 21.479377,48.402807 27.410342,48.723877 29.425005,47.380844 C 31.439668,46.037813 37.584752,39.494891 37.703635,38.591579 C 37.822518,37.688269 37.691932,31.697866 37.406664,32.119802 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cssscccccccssczszz"
+ id="path4342"
+ d="M 38.139708,29.247818 C 36.460252,29.267883 35.750998,40.331835 33.900551,43.107503 C 32.050105,45.883172 28.701401,51.531826 29.163997,58.008387 C 29.626619,64.484947 35.058034,74.984522 36.445866,76.83497 C 37.833691,78.685414 37.129724,82.999782 37.129724,82.999782 L 47.920645,83.110405 L 47.769781,79.459768 L 56.670022,79.610639 L 56.690147,83.200905 L 66.515615,83.180784 L 66.053001,78.685414 C 66.053001,78.685414 72.992173,72.208853 73.454787,67.582738 C 73.917392,62.956624 75.305233,51.853949 72.52956,47.227834 C 69.753893,42.60172 65.590379,38.900829 65.590379,38.900829 C 65.590379,38.900829 64.372238,27.467602 61.994385,27.44043 C 59.615225,27.413244 59.786223,42.768438 56.443037,44.409108 C 53.018417,46.08975 47.113506,46.590479 43.385038,44.261162 C 39.65658,41.931845 39.821488,29.227726 38.139708,29.247818 z"
+ style="fill:url(#linearGradient4378);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514"
+ d="M 63.425586,38.809949 C 67.553796,42.145802 75.070399,53.889924 64.107154,61.518315 C 60.506505,63.896738 67.297999,71.39634 71.111538,67.56021 C 84.370535,54.225825 70.765569,38.892982 66.082233,33.621736 C 61.896601,29.037548 58.188986,34.704757 63.425586,38.809949 z"
+ id="path4344" />
+ <svg:path
+ sodipodi:nodetypes="ccsscsscsccsscsccsc"
+ id="path4346"
+ d="M 20.882719,30.951568 L 15.613427,56.702264 C 15.613427,56.702264 12.356654,56.955864 11.626583,60.319288 C 10.89652,63.68271 12.240446,67.81649 14.314442,68.586845 C 16.388422,69.357198 19.910672,67.880536 19.910672,67.880536 C 19.910672,67.880536 13.608127,62.990606 17.369773,61.886079 C 21.131409,60.781552 21.601865,58.763608 23.467269,61.275581 C 24.919116,63.230658 24.389506,62.604494 26.365063,66.181564 C 29.437254,62.897911 27.473538,57.332286 25.036154,56.194973 C 23.134112,55.307462 22.259702,55.583534 22.259702,55.583534 L 27.090495,30.378 C 27.090495,30.378 30.75968,31.174438 31.688862,26.893717 C 32.618036,22.612995 32.710489,20.712031 29.240416,18.998296 C 25.770335,17.28456 23.058727,17.976664 23.058727,17.976664 C 23.058727,17.976664 28.204583,22.29535 26.822687,24.2366 C 25.440801,26.177851 20.614919,24.810169 20.614919,24.810169 L 17.410322,21.873371 C 17.410322,21.873371 15.217794,24.599178 16.348402,26.765623 C 17.479011,28.932068 20.949092,30.645801 20.882719,30.951568 z"
+ style="fill:url(#linearGradient4380);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path4348"
+ d="M 29.759315,84.118409 C 37.243815,82.692791 47.579554,82.692791 47.579554,82.692791 C 47.579554,82.692791 50.430792,87.682455 46.510338,88.038863 C 42.589883,88.395271 35.8182,90.177294 35.8182,90.177294 C 35.8182,90.177294 29.402906,93.384932 27.977292,89.464478 C 26.551677,85.544024 30.115722,84.118409 29.759315,84.118409 z"
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ inkscape:transform-center-y="1.7820238"
+ id="path4350"
+ d="M 74.46319,84.391538 C 66.97869,82.965922 56.642951,82.965922 56.642951,82.965922 C 56.642951,82.965922 53.791713,87.955593 57.712166,88.311993 C 61.632621,88.6684 68.404304,90.450424 68.404304,90.450424 C 68.404304,90.450424 74.819598,93.65807 76.245212,89.737608 C 77.670827,85.817162 74.106782,84.391538 74.46319,84.391538 z"
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.8542244,0,0,0.8542244,210.45652,1.1908062)"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ sodipodi:ry="2.2947438"
+ sodipodi:rx="2.920583"
+ sodipodi:cy="54.313736"
+ sodipodi:cx="-197.7652"
+ id="path4352"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(0.8542244,0,0,0.8542244,225.42551,1.3690096)"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ sodipodi:ry="2.2947438"
+ sodipodi:rx="2.920583"
+ sodipodi:cy="54.313736"
+ sodipodi:cx="-197.7652"
+ id="path4354"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:rect
+ rx="2.6107385"
+ ry="6.3950958"
+ y="55.269814"
+ x="38.33321"
+ height="12.790192"
+ width="22.769524"
+ id="rect4356"
+ style="opacity:0.9;fill:url(#linearGradient4382);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ id="g4227"
+ transform="translate(3.0013075,0.8867015)">
+ <svg:path
+ sodipodi:nodetypes="ccccccccc"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 34.386785,67.525237 C 30.928731,62.548069 30.898602,52.003827 35.907585,39.955695 C 38.939578,34.374797 37.865826,29.274969 38.181079,24.806753 C 38.395625,19.712814 34.578302,4.5042148 48.97522,3.3454534 C 63.557163,2.1820634 62.774061,16.576502 62.690185,24.193699 C 62.620523,30.625413 67.412644,34.270827 70.690594,39.283674 C 76.757636,48.494125 76.244521,64.352538 69.547744,72.936192 C 61.065271,83.681667 53.800083,79.021606 48.97522,79.412703 C 39.940379,79.907281 45.117738,83.758364 34.386785,67.525237 z"
+ id="path106" />
+ <svg:path
+ style="fill:url(#linearGradient4254);stroke:none;stroke-width:0.99464899"
+ d="M 64.13379,40.224913 C 66.637974,42.530096 73.155484,52.905981 62.849574,59.361241 C 59.216498,61.609183 66.088767,70.220262 69.388542,66.04924 C 75.211653,58.561393 71.498092,46.636546 68.004886,42.36369 C 65.632791,39.334748 62.005524,38.161092 64.13379,40.224913 z"
+ id="path113" />
+ <svg:path
+ style="fill:url(#linearGradient4256);stroke:none;stroke-width:1.26498997"
+ id="path114"
+ d="M 57.484977,10.614483 C 57.337922,14.438647 53.129466,17.769212 48.085109,18.053513 C 43.040752,18.337813 39.070702,15.468192 39.217748,11.644028 C 39.364794,7.8198648 43.573258,4.4892997 48.617624,4.2049989 C 53.661973,3.920698 57.632023,6.7903206 57.484977,10.614483 z" />
+ <svg:path
+ style="fill:url(#linearGradient4258);stroke:none;stroke-width:1.25"
+ d="M 34.328389,47.269565 C 36.311045,42.774317 40.524403,34.877853 40.614132,28.771739 C 40.614132,23.915207 55.161025,22.755368 56.328443,27.604329 C 57.495851,32.453296 60.458857,39.72682 62.344659,43.22889 C 64.230308,46.73081 69.729241,57.855482 63.871337,67.563452 C 58.595451,76.158228 42.598332,82.957867 34.05901,66.396202 C 31.185588,60.649204 31.698087,53.527358 34.328389,47.269565 z"
+ id="path128" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient4260);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 55.879556,33.531184 C 55.789803,38.617169 52.480196,39.81694 48.291857,39.81694 C 44.103373,39.81694 41.063154,39.066145 40.704013,33.531184 C 40.704013,30.061501 44.103373,28.053584 48.291857,28.053584 C 52.480196,28.053584 55.879556,30.061501 55.879556,33.531184 z"
+ id="path127" />
+ <svg:g
+ transform="matrix(-0.123568,0,0,0.123568,84.130463,3.3063461)"
+ style="display:inline"
+ inkscape:label="frame0"
+ id="layer2">
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2609"
+ style="fill:url(#linearGradient4262);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2611"
+ style="fill:url(#linearGradient4264);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2613"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2615"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2617"
+ style="fill:url(#linearGradient4266);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2619"
+ style="fill:url(#linearGradient4268);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ transform="matrix(-0.123568,0,0,0.123568,84.130463,3.3063461)"
+ style="display:inline"
+ inkscape:label="beak frames 0123"
+ id="layer5">
+ <svg:path
+ id="path2599"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient4270);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2601"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2603"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient4272);stroke:none" />
+ </svg:g>
+ <svg:path
+ id="path4151"
+ d="M 37.406664,32.119802 C 35.392002,33.462833 32.361,39.037153 26.792534,39.453007 C 21.224067,39.868859 18.211072,38.323636 17.402779,40.974129 C 16.594478,43.62462 15.21565,47.118984 18.347509,47.760895 C 21.479377,48.402807 27.410342,48.723877 29.425005,47.380844 C 31.439668,46.037813 37.584752,39.494891 37.703635,38.591579 C 37.822518,37.688269 37.691932,31.697866 37.406664,32.119802 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="cssscccccccssczszz"
+ id="path3369"
+ d="M 38.139708,29.247818 C 36.460252,29.267883 35.750998,40.331835 33.900551,43.107503 C 32.050105,45.883172 28.701401,51.531826 29.163997,58.008387 C 29.626619,64.484947 35.058034,74.984522 36.445866,76.83497 C 37.833691,78.685414 37.129724,82.999782 37.129724,82.999782 L 47.920645,83.110405 L 47.769781,79.459768 L 56.670022,79.610639 L 56.690147,83.200905 L 66.515615,83.180784 L 66.053001,78.685414 C 66.053001,78.685414 72.992173,72.208853 73.454787,67.582738 C 73.917392,62.956624 75.305233,51.853949 72.52956,47.227834 C 69.753893,42.60172 65.590379,38.900829 65.590379,38.900829 C 65.590379,38.900829 64.372238,27.467602 61.994385,27.44043 C 59.615225,27.413244 59.786223,42.768438 56.443037,44.409108 C 53.018417,46.08975 47.113506,46.590479 43.385038,44.261162 C 39.65658,41.931845 39.821488,29.227726 38.139708,29.247818 z"
+ style="fill:url(#linearGradient4274);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514"
+ d="M 63.425586,38.809949 C 67.553796,42.145802 75.070399,53.889924 64.107154,61.518315 C 60.506505,63.896738 67.297999,71.39634 71.111538,67.56021 C 84.370535,54.225825 70.765569,38.892982 66.082233,33.621736 C 61.896601,29.037548 58.188986,34.704757 63.425586,38.809949 z"
+ id="path111" />
+ <svg:path
+ sodipodi:nodetypes="ccsscsscsccsscsccsc"
+ id="path4149"
+ d="M 20.882719,30.951568 L 15.613427,56.702264 C 15.613427,56.702264 12.356654,56.955864 11.626583,60.319288 C 10.89652,63.68271 12.240446,67.81649 14.314442,68.586845 C 16.388422,69.357198 19.910672,67.880536 19.910672,67.880536 C 19.910672,67.880536 13.608127,62.990606 17.369773,61.886079 C 21.131409,60.781552 21.601865,58.763608 23.467269,61.275581 C 24.919116,63.230658 24.389506,62.604494 26.365063,66.181564 C 29.437254,62.897911 27.473538,57.332286 25.036154,56.194973 C 23.134112,55.307462 22.259702,55.583534 22.259702,55.583534 L 27.090495,30.378 C 27.090495,30.378 30.75968,31.174438 31.688862,26.893717 C 32.618036,22.612995 32.710489,20.712031 29.240416,18.998296 C 25.770335,17.28456 23.058727,17.976664 23.058727,17.976664 C 23.058727,17.976664 28.204583,22.29535 26.822687,24.2366 C 25.440801,26.177851 20.614919,24.810169 20.614919,24.810169 L 17.410322,21.873371 C 17.410322,21.873371 15.217794,24.599178 16.348402,26.765623 C 17.479011,28.932068 20.949092,30.645801 20.882719,30.951568 z"
+ style="fill:url(#linearGradient4276);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ id="path4161"
+ d="M 29.759315,84.118409 C 37.243815,82.692791 47.579554,82.692791 47.579554,82.692791 C 47.579554,82.692791 50.430792,87.682455 46.510338,88.038863 C 42.589883,88.395271 35.8182,90.177294 35.8182,90.177294 C 35.8182,90.177294 29.402906,93.384932 27.977292,89.464478 C 26.551677,85.544024 30.115722,84.118409 29.759315,84.118409 z"
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ inkscape:transform-center-y="1.7820238"
+ id="path4163"
+ d="M 74.46319,84.391538 C 66.97869,82.965922 56.642951,82.965922 56.642951,82.965922 C 56.642951,82.965922 53.791713,87.955593 57.712166,88.311993 C 61.632621,88.6684 68.404304,90.450424 68.404304,90.450424 C 68.404304,90.450424 74.819598,93.65807 76.245212,89.737608 C 77.670827,85.817162 74.106782,84.391538 74.46319,84.391538 z"
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.8542244,0,0,0.8542244,210.45652,1.1908062)"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ sodipodi:ry="2.2947438"
+ sodipodi:rx="2.920583"
+ sodipodi:cy="54.313736"
+ sodipodi:cx="-197.7652"
+ id="path4165"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ transform="matrix(0.8542244,0,0,0.8542244,225.42551,1.3690096)"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ sodipodi:ry="2.2947438"
+ sodipodi:rx="2.920583"
+ sodipodi:cy="54.313736"
+ sodipodi:cx="-197.7652"
+ id="path4167"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:rect
+ rx="2.6107385"
+ ry="6.3950958"
+ y="55.269814"
+ x="38.33321"
+ height="12.790192"
+ width="22.769524"
+ id="rect4169"
+ style="opacity:0.9;fill:url(#linearGradient4278);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ id="path4386"
+ d="M 37.388092,68.411938 C 33.930038,63.43477 33.899909,52.890528 38.908893,40.842396 C 41.940886,35.261498 40.867134,30.161671 41.182386,25.693455 C 41.396933,20.599516 37.57961,5.3909163 51.976528,4.2321549 C 66.55847,3.0687649 65.775368,17.463203 65.691493,25.0804 C 65.621831,31.512114 70.413952,35.157528 73.691902,40.170375 C 79.758944,49.380827 79.245829,65.239239 72.549052,73.822894 C 64.066579,84.568369 56.80139,79.908308 51.976528,80.299405 C 42.941687,80.793983 48.119046,84.645066 37.388092,68.411938 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ id="path4388"
+ d="M 67.135097,41.111615 C 69.639281,43.416798 76.156791,53.792682 65.850881,60.247942 C 62.217806,62.495885 69.090074,71.106964 72.389849,66.935942 C 78.212961,59.448095 74.499399,47.523248 71.006193,43.250391 C 68.634098,40.221449 65.006832,39.047794 67.135097,41.111615 z"
+ style="fill:url(#linearGradient4498);stroke:none;stroke-width:0.99464899" />
+ <svg:path
+ d="M 60.486284,11.501185 C 60.33923,15.325349 56.130774,18.655913 51.086417,18.940214 C 46.04206,19.224515 42.07201,16.354893 42.219056,12.530729 C 42.366101,8.7065663 46.574566,5.3760012 51.618931,5.0917004 C 56.663281,4.8073995 60.633331,7.6770221 60.486284,11.501185 z"
+ id="path4390"
+ style="fill:url(#linearGradient4495);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ id="path4392"
+ d="M 37.329697,48.156267 C 39.312352,43.661019 43.525711,35.764554 43.61544,29.65844 C 43.61544,24.801908 58.162333,23.64207 59.329751,28.491031 C 60.497159,33.339997 63.460164,40.613522 65.345966,44.115592 C 67.231615,47.617512 72.730548,58.742183 66.872644,68.450153 C 61.596759,77.044929 45.59964,83.844569 37.060318,67.282904 C 34.186895,61.535905 34.699395,54.41406 37.329697,48.156267 z"
+ style="fill:url(#linearGradient4492);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path4394"
+ d="M 58.880864,34.417885 C 58.791111,39.50387 55.481504,40.703641 51.293165,40.703641 C 47.104681,40.703641 44.064462,39.952847 43.705321,34.417885 C 43.705321,30.948203 47.104681,28.940286 51.293165,28.940286 C 55.481504,28.940286 58.880864,30.948203 58.880864,34.417885 z"
+ style="font-size:12px;fill:url(#linearGradient4489);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:g
+ id="g4396"
+ inkscape:label="frame0"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4444);stroke:none;stroke-width:1.17873001"
+ id="path4398"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient4446);stroke:none;stroke-width:0.93138498"
+ id="path4400"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path4402"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path4404"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient4448);stroke:none;stroke-width:3.1916101"
+ id="path4406"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient4450);stroke:none;stroke-width:4.12025976"
+ id="path4408"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ </svg:g>
+ <svg:g
+ id="g4410"
+ inkscape:label="beak frames 0123"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4452);stroke:#e68c3f;stroke-width:4.6875"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path4412" />
+ <svg:path
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ id="path4414" />
+ <svg:path
+ style="fill:url(#linearGradient4454);stroke:none"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ id="path4416" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 42.266878,37.204107 C 40.266846,35.839386 33.962946,35.117682 31.491059,30.110633 C 29.019173,25.103586 29.322969,21.731115 26.562699,21.974751 C 23.802427,22.218382 20.045994,22.249213 20.624246,25.393448 C 21.202502,28.537692 23.126959,34.156935 25.126994,35.521658 C 27.127026,36.886382 35.495721,40.132431 36.377776,39.904213 C 37.259831,39.675995 42.764961,37.310511 42.266878,37.204107 z"
+ id="path4418" />
+ <svg:path
+ style="fill:url(#linearGradient4474);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 41.141016,30.13452 C 39.46156,30.154585 38.752306,41.218536 36.901859,43.994205 C 35.051413,46.769874 31.702708,52.418527 32.165305,58.895088 C 32.627927,65.371649 38.059342,75.871224 39.447173,77.721671 C 40.834998,79.572115 40.131032,83.886483 40.131032,83.886483 L 50.921953,83.997107 L 50.771089,80.346469 L 59.67133,80.497341 L 59.691455,84.087607 L 69.516923,84.067485 L 69.054308,79.572115 C 69.054308,79.572115 75.993481,73.095555 76.456094,68.469439 C 76.9187,63.843325 78.30654,52.74065 75.530867,48.114536 C 72.755201,43.488422 68.591686,39.78753 68.591686,39.78753 C 68.591686,39.78753 67.373545,28.354303 64.995693,28.327131 C 62.616533,28.299945 62.787531,43.65514 59.444344,45.29581 C 56.019725,46.976452 50.114814,47.477181 46.386346,45.147864 C 42.657888,42.818546 42.822795,30.114427 41.141016,30.13452 z"
+ id="path4420"
+ sodipodi:nodetypes="cssscccccccssczszz" />
+ <svg:path
+ id="path4422"
+ d="M 66.426894,39.69665 C 70.555103,43.032504 78.071706,54.776625 67.108462,62.405017 C 63.507813,64.78344 70.299307,72.283041 74.112845,68.446912 C 87.371842,55.112527 73.766877,39.779684 69.08354,34.508438 C 64.897908,29.92425 61.190294,35.591459 66.426894,39.69665 z"
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514" />
+ <svg:path
+ style="fill:url(#linearGradient4470);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 26.757645,17.023597 L 12.053032,38.809788 C 12.053032,38.809788 8.946285,37.800328 6.9869902,40.629955 C 5.0277048,43.459585 4.6909702,47.793277 6.3135314,49.297339 C 7.9360763,50.801394 11.75529,50.781897 11.75529,50.781897 C 11.75529,50.781897 7.798086,43.855569 11.696422,44.271427 C 15.594749,44.687283 16.80024,43.001988 17.564857,46.035978 C 18.159958,48.397342 17.909642,47.616374 18.369278,51.676793 C 22.462681,49.815397 22.773461,43.921689 20.95521,41.939701 C 19.536313,40.393035 18.622749,40.314223 18.622749,40.314223 L 32.713897,18.864397 C 32.713897,18.864397 35.800759,21.001803 38.294408,17.400459 C 40.788048,13.799113 41.599512,12.077562 39.047004,9.1684383 C 36.494488,6.2593118 33.724105,5.863328 33.724105,5.863328 C 33.724105,5.863328 36.830474,11.819951 34.811927,13.086266 C 32.793388,14.352586 28.855684,11.245471 28.855684,11.245471 L 27.015641,7.3073914 C 27.015641,7.3073914 23.948273,8.9891922 24.165761,11.423212 C 24.383249,13.857234 26.935766,16.766358 26.757645,17.023597 z"
+ id="path4424"
+ sodipodi:nodetypes="ccsscsscsccsscsccsc" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.760623,85.005111 C 40.245123,83.579492 50.580862,83.579492 50.580862,83.579492 C 50.580862,83.579492 53.4321,88.569156 49.511646,88.925565 C 45.59119,89.281972 38.819508,91.063996 38.819508,91.063996 C 38.819508,91.063996 32.404213,94.271633 30.978599,90.35118 C 29.552985,86.430726 33.11703,85.005111 32.760623,85.005111 z"
+ id="path4426" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 77.464498,85.278239 C 69.979997,83.852624 59.644259,83.852624 59.644259,83.852624 C 59.644259,83.852624 56.793021,88.842295 60.713474,89.198695 C 64.633928,89.555101 71.405612,91.337126 71.405612,91.337126 C 71.405612,91.337126 77.820905,94.544771 79.24652,90.62431 C 80.672134,86.703864 77.108089,85.278239 77.464498,85.278239 z"
+ id="path4428"
+ inkscape:transform-center-y="1.7820238" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4430"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,213.45783,2.0775077)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4432"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,228.42682,2.2557111)" />
+ <svg:rect
+ style="opacity:0.9;fill:url(#linearGradient4463);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4434"
+ width="22.769524"
+ height="12.790192"
+ x="41.334518"
+ y="56.156513"
+ ry="6.3950958"
+ rx="2.6107385" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_config0.png b/data/images/sprites/tux_config0.png
new file mode 100644
index 0000000..2db52b8
Binary files /dev/null and b/data/images/sprites/tux_config0.png differ
diff --git a/data/images/sprites/tux_config1.png b/data/images/sprites/tux_config1.png
new file mode 100644
index 0000000..7b43a0b
Binary files /dev/null and b/data/images/sprites/tux_config1.png differ
diff --git a/data/images/sprites/tux_config_brown.svg b/data/images/sprites/tux_config_brown.svg
new file mode 100644
index 0000000..3ed9ebb
--- /dev/null
+++ b/data/images/sprites/tux_config_brown.svg
@@ -0,0 +1,2755 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_config_brown.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>2 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient4171">
+ <svg:stop
+ style="stop-color:#f75400;stop-opacity:1;"
+ offset="0"
+ id="stop4173" />
+ <svg:stop
+ style="stop-color:#ff5f00;stop-opacity:0;"
+ offset="1"
+ id="stop4175" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4153">
+ <svg:stop
+ style="stop-color:#606464;stop-opacity:1;"
+ offset="0"
+ id="stop4155" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop4157" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient4141">
+ <svg:stop
+ style="stop-color:#983d00;stop-opacity:1;"
+ offset="0"
+ id="stop4143" />
+ <svg:stop
+ style="stop-color:#c64a00;stop-opacity:1;"
+ offset="1"
+ id="stop4145" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-19.535761,-44.673485)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,100.5028,-24.00599)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,102.56503,-29.253801)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,99.454943,-20.832395)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,216.22272,1.8184156)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,227.07978,40.457116)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4278"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,210.10011,2.6164253)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4366"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4372"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4374"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4376"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-19.535761,-44.673485)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,100.5028,-24.00599)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,102.56503,-29.253801)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,99.454943,-20.832395)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4450"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4454"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,216.22272,1.8184156)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4458"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,227.07978,40.457116)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,210.10011,2.6164253)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient4463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,213.10142,3.5031268)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient4470"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7022997,0.4862864,-0.4862864,0.7022997,213.69346,104.55983)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient4474"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,219.22403,2.7051171)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,102.45625,-19.945693)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4492"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,105.56634,-28.367099)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4495"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,103.50411,-23.119288)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4498"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-16.534454,-43.786783)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient2723"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,213.10142,955.86531)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient2730"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,230.08109,993.706)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient2734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,219.22403,955.0673)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2749"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,102.45625,932.41648)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2752"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,105.56634,923.99508)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,103.50411,929.24289)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-16.534454,908.57539)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4171"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8542244,0,0,0.8542244,213.10142,3.5031268)"
+ x1="-187.75177"
+ y1="67.039131"
+ x2="-187.75177"
+ y2="76.785339" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4153"
+ id="linearGradient3547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.834785,0.1811993,-0.1811993,0.834785,230.08109,41.343817)"
+ x1="-243.71393"
+ y1="54.610149"
+ x2="-222.11565"
+ y2="54.610149" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4141"
+ id="linearGradient3551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.8813526,0,0,0.8813526,219.22403,2.7051171)"
+ x1="-213.08337"
+ y1="60.704689"
+ x2="-160.5256"
+ y2="61.232857" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3566"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1579427,0,0,0.1224298,102.45625,-19.945693)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3569"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1255536,0,0,0.1900214,105.56634,-28.367099)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1746306,-9.8422261e-3,5.090716e-3,0.1323888,103.50411,-23.119288)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1192355,-1.5959494e-3,4.5374183e-3,0.3159541,-16.534454,-43.786783)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="3.6388115"
+ inkscape:cx="-59.561293"
+ inkscape:cy="41.096775"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ id="path4308"
+ d="M 37.388092,1020.7741 C 33.930038,1015.7969 33.899909,1005.2527 38.908893,993.20457 C 41.940886,987.62368 40.867134,982.52385 41.182386,978.05563 C 41.396933,972.96169 37.57961,957.75309 51.976528,956.59433 C 66.55847,955.43094 65.775368,969.82538 65.691493,977.44258 C 65.621831,983.87429 70.413952,987.51971 73.691902,992.53255 C 79.758944,1001.743 79.245829,1017.6014 72.549052,1026.1851 C 64.066579,1036.9305 56.80139,1032.2705 51.976528,1032.6616 C 42.941687,1033.1562 48.119046,1037.0072 37.388092,1020.7741 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ id="path4310"
+ d="M 67.135097,993.47379 C 69.639281,995.77898 76.156791,1006.1549 65.850881,1012.6101 C 62.217806,1014.8581 69.090074,1023.4691 72.389849,1019.2981 C 78.212961,1011.8103 74.499399,999.88543 71.006193,995.61257 C 68.634098,992.58363 65.006832,991.40997 67.135097,993.47379 z"
+ style="fill:url(#linearGradient2758);stroke:none;stroke-width:0.99464899" />
+ <svg:path
+ d="M 60.486284,963.86336 C 60.33923,967.68753 56.130774,971.01809 51.086417,971.30239 C 46.04206,971.58669 42.07201,968.71707 42.219056,964.89291 C 42.366101,961.06874 46.574566,957.73818 51.618931,957.45388 C 56.663281,957.16958 60.633331,960.0392 60.486284,963.86336 z"
+ id="path4312"
+ style="fill:url(#linearGradient2755);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ id="path4314"
+ d="M 37.329697,1000.5184 C 39.312352,996.0232 43.525711,988.12673 43.61544,982.02062 C 43.61544,977.16409 58.162333,976.00425 59.329751,980.85321 C 60.497159,985.70218 63.460164,992.9757 65.345966,996.47777 C 67.231615,999.97969 72.730548,1011.1044 66.872644,1020.8123 C 61.596759,1029.4071 45.59964,1036.2067 37.060318,1019.6451 C 34.186895,1013.8981 34.699395,1006.7762 37.329697,1000.5184 z"
+ style="fill:url(#linearGradient2752);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path4316"
+ d="M 58.880864,986.78006 C 58.791111,991.86605 55.481504,993.06582 51.293165,993.06582 C 47.104681,993.06582 44.064462,992.31502 43.705321,986.78006 C 43.705321,983.31038 47.104681,981.30246 51.293165,981.30246 C 55.481504,981.30246 58.880864,983.31038 58.880864,986.78006 z"
+ style="font-size:12px;fill:url(#linearGradient2749);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:g
+ id="g4318"
+ inkscape:label="frame0"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,956.55523)">
+ <svg:path
+ style="fill:url(#linearGradient4366);stroke:none;stroke-width:1.17873001"
+ id="path4320"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient4368);stroke:none;stroke-width:0.93138498"
+ id="path4322"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path4324"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path4326"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient4370);stroke:none;stroke-width:3.1916101"
+ id="path4328"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient4372);stroke:none;stroke-width:4.12025976"
+ id="path4330"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ </svg:g>
+ <svg:g
+ id="g4332"
+ inkscape:label="beak frames 0123"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,956.55523)">
+ <svg:path
+ style="fill:url(#linearGradient4374);stroke:#e68c3f;stroke-width:4.6875"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path4334" />
+ <svg:path
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ id="path4336" />
+ <svg:path
+ style="fill:url(#linearGradient4376);stroke:none"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ id="path4338" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 40.407971,985.36868 C 38.39331,986.71171 35.362308,992.28603 29.793841,992.70189 C 24.225375,993.11774 21.21238,991.57252 20.404086,994.22301 C 19.595786,996.8735 18.216957,1000.3679 21.348816,1001.0098 C 24.480684,1001.6517 30.411649,1001.9728 32.426313,1000.6297 C 34.440976,999.28669 40.58606,992.74377 40.704943,991.84046 C 40.823826,990.93715 40.69324,984.94675 40.407971,985.36868 z"
+ id="path4340" />
+ <svg:path
+ style="fill:url(#linearGradient2734);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 41.141016,982.4967 C 39.46156,982.51676 38.752306,993.58071 36.901859,996.35638 C 35.051413,999.13205 31.702708,1004.7807 32.165305,1011.2573 C 32.627927,1017.7338 38.059342,1028.2334 39.447173,1030.0838 C 40.834998,1031.9343 40.131032,1036.2487 40.131032,1036.2487 L 50.921953,1036.3593 L 50.771089,1032.7086 L 59.67133,1032.8595 L 59.691455,1036.4498 L 69.516923,1036.4297 L 69.054308,1031.9343 C 69.054308,1031.9343 75.993481,1025.4577 76.456094,1020.8316 C 76.9187,1016.2055 78.30654,1005.1028 75.530867,1000.4767 C 72.755201,995.8506 68.591686,992.14971 68.591686,992.14971 C 68.591686,992.14971 67.373545,980.71648 64.995693,980.68931 C 62.616533,980.66212 62.787531,996.01732 59.444344,997.65799 C 56.019725,999.33863 50.114814,999.83936 46.386346,997.51004 C 42.657888,995.18072 42.822795,982.47661 41.141016,982.4967 z"
+ id="path4342"
+ sodipodi:nodetypes="cssscccccccssczszz" />
+ <svg:path
+ id="path4344"
+ d="M 66.426894,992.05883 C 70.555103,995.39468 78.071706,1007.1388 67.108462,1014.7672 C 63.507813,1017.1456 70.299307,1024.6452 74.112845,1020.8091 C 87.371842,1007.4747 73.766877,992.14186 69.08354,986.87062 C 64.897908,982.28643 61.190294,987.95364 66.426894,992.05883 z"
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514" />
+ <svg:path
+ style="fill:url(#linearGradient2730);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 23.884026,984.20045 L 18.614735,1009.9511 C 18.614735,1009.9511 15.357962,1010.2047 14.62789,1013.5682 C 13.897828,1016.9316 15.241753,1021.0654 17.31575,1021.8357 C 19.389729,1022.6061 22.911979,1021.1294 22.911979,1021.1294 C 22.911979,1021.1294 16.609434,1016.2395 20.37108,1015.135 C 24.132717,1014.0304 24.603173,1012.0125 26.468576,1014.5245 C 27.920423,1016.4795 27.390813,1015.8534 29.36637,1019.4304 C 32.438562,1016.1468 30.474845,1010.5812 28.037462,1009.4439 C 26.13542,1008.5563 25.261009,1008.8324 25.261009,1008.8324 L 30.091803,983.62688 C 30.091803,983.62688 33.760987,984.42332 34.69017,980.1426 C 35.619344,975.86187 35.711796,973.96091 32.241723,972.24718 C 28.771642,970.53344 26.060034,971.22554 26.060034,971.22554 C 26.060034,971.22554 31.20589,975.54423 29.823994,977.48548 C 28.442108,979.42673 23.616227,978.05905 23.616227,978.05905 L 20.411629,975.12225 C 20.411629,975.12225 18.219102,977.84806 19.349709,980.0145 C 20.480318,982.18095 23.950399,983.89468 23.884026,984.20045 z"
+ id="path4346"
+ sodipodi:nodetypes="ccsscsscsccsscsccsc" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.760623,1037.3673 C 40.245123,1035.9417 50.580862,1035.9417 50.580862,1035.9417 C 50.580862,1035.9417 53.4321,1040.9313 49.511646,1041.2877 C 45.59119,1041.6442 38.819508,1043.4262 38.819508,1043.4262 C 38.819508,1043.4262 32.404213,1046.6338 30.978599,1042.7134 C 29.552985,1038.7929 33.11703,1037.3673 32.760623,1037.3673 z"
+ id="path4348" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 77.464498,1037.6404 C 69.979997,1036.2148 59.644259,1036.2148 59.644259,1036.2148 C 59.644259,1036.2148 56.793021,1041.2045 60.713474,1041.5609 C 64.633928,1041.9173 71.405612,1043.6993 71.405612,1043.6993 C 71.405612,1043.6993 77.820905,1046.907 79.24652,1042.9865 C 80.672134,1039.066 77.108089,1037.6404 77.464498,1037.6404 z"
+ id="path4350"
+ inkscape:transform-center-y="1.7820238" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4352"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,213.45783,954.43969)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4354"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,228.42682,954.61789)" />
+ <svg:rect
+ style="opacity:0.9;fill:url(#linearGradient2723);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4356"
+ width="22.769524"
+ height="12.790192"
+ x="41.334518"
+ y="1008.5187"
+ ry="6.3950958"
+ rx="2.6107385" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ id="path106"
+ d="M 37.388092,68.411938 C 33.930038,63.43477 33.899909,52.890528 38.908893,40.842396 C 41.940886,35.261498 40.867134,30.161671 41.182386,25.693455 C 41.396933,20.599516 37.57961,5.3909163 51.976528,4.2321549 C 66.55847,3.0687649 65.775368,17.463203 65.691493,25.0804 C 65.621831,31.512114 70.413952,35.157528 73.691902,40.170375 C 79.758944,49.380827 79.245829,65.239239 72.549052,73.822894 C 64.066579,84.568369 56.80139,79.908308 51.976528,80.299405 C 42.941687,80.793983 48.119046,84.645066 37.388092,68.411938 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ id="path113"
+ d="M 67.135097,41.111615 C 69.639281,43.416798 76.156791,53.792682 65.850881,60.247942 C 62.217806,62.495885 69.090074,71.106964 72.389849,66.935942 C 78.212961,59.448095 74.499399,47.523248 71.006193,43.250391 C 68.634098,40.221449 65.006832,39.047794 67.135097,41.111615 z"
+ style="fill:url(#linearGradient3575);stroke:none;stroke-width:0.99464899" />
+ <svg:path
+ d="M 60.486284,11.501185 C 60.33923,15.325349 56.130774,18.655913 51.086417,18.940214 C 46.04206,19.224515 42.07201,16.354893 42.219056,12.530729 C 42.366101,8.7065663 46.574566,5.3760012 51.618931,5.0917004 C 56.663281,4.8073995 60.633331,7.6770221 60.486284,11.501185 z"
+ id="path114"
+ style="fill:url(#linearGradient3572);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ id="path128"
+ d="M 37.329697,48.156267 C 39.312352,43.661019 43.525711,35.764554 43.61544,29.65844 C 43.61544,24.801908 58.162333,23.64207 59.329751,28.491031 C 60.497159,33.339997 63.460164,40.613522 65.345966,44.115592 C 67.231615,47.617512 72.730548,58.742183 66.872644,68.450153 C 61.596759,77.044929 45.59964,83.844569 37.060318,67.282904 C 34.186895,61.535905 34.699395,54.41406 37.329697,48.156267 z"
+ style="fill:url(#linearGradient3569);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path127"
+ d="M 58.880864,34.417885 C 58.791111,39.50387 55.481504,40.703641 51.293165,40.703641 C 47.104681,40.703641 44.064462,39.952847 43.705321,34.417885 C 43.705321,30.948203 47.104681,28.940286 51.293165,28.940286 C 55.481504,28.940286 58.880864,30.948203 58.880864,34.417885 z"
+ style="font-size:12px;fill:url(#linearGradient3566);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:g
+ id="layer2"
+ inkscape:label="frame0"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4262);stroke:none;stroke-width:1.17873001"
+ id="path2609"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient4264);stroke:none;stroke-width:0.93138498"
+ id="path2611"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path2613"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path2615"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient4266);stroke:none;stroke-width:3.1916101"
+ id="path2617"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient4268);stroke:none;stroke-width:4.12025976"
+ id="path2619"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ </svg:g>
+ <svg:g
+ id="layer5"
+ inkscape:label="beak frames 0123"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4270);stroke:#e68c3f;stroke-width:4.6875"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path2599" />
+ <svg:path
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ id="path2601" />
+ <svg:path
+ style="fill:url(#linearGradient4272);stroke:none"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ id="path2603" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 40.407971,33.006504 C 38.39331,34.349535 35.362308,39.923855 29.793841,40.339708 C 24.225375,40.755561 21.21238,39.210338 20.404086,41.86083 C 19.595786,44.511322 18.216957,48.005685 21.348816,48.647597 C 24.480684,49.289508 30.411649,49.610579 32.426313,48.267545 C 34.440976,46.924515 40.58606,40.381592 40.704943,39.478281 C 40.823826,38.57497 40.69324,32.584568 40.407971,33.006504 z"
+ id="path4151" />
+ <svg:path
+ style="fill:url(#linearGradient3551);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 41.141016,30.13452 C 39.46156,30.154585 38.752306,41.218536 36.901859,43.994205 C 35.051413,46.769874 31.702708,52.418527 32.165305,58.895088 C 32.627927,65.371649 38.059342,75.871224 39.447173,77.721671 C 40.834998,79.572115 40.131032,83.886483 40.131032,83.886483 L 50.921953,83.997107 L 50.771089,80.346469 L 59.67133,80.497341 L 59.691455,84.087607 L 69.516923,84.067485 L 69.054308,79.572115 C 69.054308,79.572115 75.993481,73.095555 76.456094,68.469439 C 76.9187,63.843325 78.30654,52.74065 75.530867,48.114536 C 72.755201,43.488422 68.591686,39.78753 68.591686,39.78753 C 68.591686,39.78753 67.373545,28.354303 64.995693,28.327131 C 62.616533,28.299945 62.787531,43.65514 59.444344,45.29581 C 56.019725,46.976452 50.114814,47.477181 46.386346,45.147864 C 42.657888,42.818546 42.822795,30.114427 41.141016,30.13452 z"
+ id="path3369"
+ sodipodi:nodetypes="cssscccccccssczszz" />
+ <svg:path
+ id="path111"
+ d="M 66.426894,39.69665 C 70.555103,43.032504 78.071706,54.776625 67.108462,62.405017 C 63.507813,64.78344 70.299307,72.283041 74.112845,68.446912 C 87.371842,55.112527 73.766877,39.779684 69.08354,34.508438 C 64.897908,29.92425 61.190294,35.591459 66.426894,39.69665 z"
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514" />
+ <svg:path
+ style="fill:url(#linearGradient3547);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 23.884026,31.83827 L 18.614735,57.588966 C 18.614735,57.588966 15.357962,57.842565 14.62789,61.205989 C 13.897828,64.569412 15.241753,68.703192 17.31575,69.473546 C 19.389729,70.243899 22.911979,68.767237 22.911979,68.767237 C 22.911979,68.767237 16.609434,63.877308 20.37108,62.77278 C 24.132717,61.668254 24.603173,59.65031 26.468576,62.162283 C 27.920423,64.11736 27.390813,63.491195 29.36637,67.068266 C 32.438562,63.784613 30.474845,58.218987 28.037462,57.081675 C 26.13542,56.194163 25.261009,56.470236 25.261009,56.470236 L 30.091803,31.264702 C 30.091803,31.264702 33.760987,32.06114 34.69017,27.780418 C 35.619344,23.499697 35.711796,21.598733 32.241723,19.884997 C 28.771642,18.171261 26.060034,18.863366 26.060034,18.863366 C 26.060034,18.863366 31.20589,23.182052 29.823994,25.123302 C 28.442108,27.064553 23.616227,25.696871 23.616227,25.696871 L 20.411629,22.760073 C 20.411629,22.760073 18.219102,25.48588 19.349709,27.652324 C 20.480318,29.81877 23.950399,31.532503 23.884026,31.83827 z"
+ id="path4149"
+ sodipodi:nodetypes="ccsscsscsccsscsccsc" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.760623,85.005111 C 40.245123,83.579492 50.580862,83.579492 50.580862,83.579492 C 50.580862,83.579492 53.4321,88.569156 49.511646,88.925565 C 45.59119,89.281972 38.819508,91.063996 38.819508,91.063996 C 38.819508,91.063996 32.404213,94.271633 30.978599,90.35118 C 29.552985,86.430726 33.11703,85.005111 32.760623,85.005111 z"
+ id="path4161" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 77.464498,85.278239 C 69.979997,83.852624 59.644259,83.852624 59.644259,83.852624 C 59.644259,83.852624 56.793021,88.842295 60.713474,89.198695 C 64.633928,89.555101 71.405612,91.337126 71.405612,91.337126 C 71.405612,91.337126 77.820905,94.544771 79.24652,90.62431 C 80.672134,86.703864 77.108089,85.278239 77.464498,85.278239 z"
+ id="path4163"
+ inkscape:transform-center-y="1.7820238" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4165"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,213.45783,2.0775077)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4167"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,228.42682,2.2557111)" />
+ <svg:rect
+ style="opacity:0.9;fill:url(#linearGradient3540);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4169"
+ width="22.769524"
+ height="12.790192"
+ x="41.334518"
+ y="56.156513"
+ ry="6.3950958"
+ rx="2.6107385" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ id="path4386"
+ d="M 37.388092,68.411938 C 33.930038,63.43477 33.899909,52.890528 38.908893,40.842396 C 41.940886,35.261498 40.867134,30.161671 41.182386,25.693455 C 41.396933,20.599516 37.57961,5.3909163 51.976528,4.2321549 C 66.55847,3.0687649 65.775368,17.463203 65.691493,25.0804 C 65.621831,31.512114 70.413952,35.157528 73.691902,40.170375 C 79.758944,49.380827 79.245829,65.239239 72.549052,73.822894 C 64.066579,84.568369 56.80139,79.908308 51.976528,80.299405 C 42.941687,80.793983 48.119046,84.645066 37.388092,68.411938 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ sodipodi:nodetypes="ccccccccc" />
+ <svg:path
+ id="path4388"
+ d="M 67.135097,41.111615 C 69.639281,43.416798 76.156791,53.792682 65.850881,60.247942 C 62.217806,62.495885 69.090074,71.106964 72.389849,66.935942 C 78.212961,59.448095 74.499399,47.523248 71.006193,43.250391 C 68.634098,40.221449 65.006832,39.047794 67.135097,41.111615 z"
+ style="fill:url(#linearGradient4498);stroke:none;stroke-width:0.99464899" />
+ <svg:path
+ d="M 60.486284,11.501185 C 60.33923,15.325349 56.130774,18.655913 51.086417,18.940214 C 46.04206,19.224515 42.07201,16.354893 42.219056,12.530729 C 42.366101,8.7065663 46.574566,5.3760012 51.618931,5.0917004 C 56.663281,4.8073995 60.633331,7.6770221 60.486284,11.501185 z"
+ id="path4390"
+ style="fill:url(#linearGradient4495);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ id="path4392"
+ d="M 37.329697,48.156267 C 39.312352,43.661019 43.525711,35.764554 43.61544,29.65844 C 43.61544,24.801908 58.162333,23.64207 59.329751,28.491031 C 60.497159,33.339997 63.460164,40.613522 65.345966,44.115592 C 67.231615,47.617512 72.730548,58.742183 66.872644,68.450153 C 61.596759,77.044929 45.59964,83.844569 37.060318,67.282904 C 34.186895,61.535905 34.699395,54.41406 37.329697,48.156267 z"
+ style="fill:url(#linearGradient4492);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path4394"
+ d="M 58.880864,34.417885 C 58.791111,39.50387 55.481504,40.703641 51.293165,40.703641 C 47.104681,40.703641 44.064462,39.952847 43.705321,34.417885 C 43.705321,30.948203 47.104681,28.940286 51.293165,28.940286 C 55.481504,28.940286 58.880864,30.948203 58.880864,34.417885 z"
+ style="font-size:12px;fill:url(#linearGradient4489);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:g
+ id="g4396"
+ inkscape:label="frame0"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4444);stroke:none;stroke-width:1.17873001"
+ id="path4398"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient4446);stroke:none;stroke-width:0.93138498"
+ id="path4400"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path4402"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path4404"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient4448);stroke:none;stroke-width:3.1916101"
+ id="path4406"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient4450);stroke:none;stroke-width:4.12025976"
+ id="path4408"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ </svg:g>
+ <svg:g
+ id="g4410"
+ inkscape:label="beak frames 0123"
+ style="display:inline"
+ transform="matrix(-0.123568,0,0,0.123568,87.131771,4.1930476)">
+ <svg:path
+ style="fill:url(#linearGradient4452);stroke:#e68c3f;stroke-width:4.6875"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path4412" />
+ <svg:path
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ id="path4414" />
+ <svg:path
+ style="fill:url(#linearGradient4454);stroke:none"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ id="path4416" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 42.266878,37.204107 C 40.266846,35.839386 33.962946,35.117682 31.491059,30.110633 C 29.019173,25.103586 29.322969,21.731115 26.562699,21.974751 C 23.802427,22.218382 20.045994,22.249213 20.624246,25.393448 C 21.202502,28.537692 23.126959,34.156935 25.126994,35.521658 C 27.127026,36.886382 35.495721,40.132431 36.377776,39.904213 C 37.259831,39.675995 42.764961,37.310511 42.266878,37.204107 z"
+ id="path4418" />
+ <svg:path
+ style="fill:url(#linearGradient4474);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.06114256px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 41.141016,30.13452 C 39.46156,30.154585 38.752306,41.218536 36.901859,43.994205 C 35.051413,46.769874 31.702708,52.418527 32.165305,58.895088 C 32.627927,65.371649 38.059342,75.871224 39.447173,77.721671 C 40.834998,79.572115 40.131032,83.886483 40.131032,83.886483 L 50.921953,83.997107 L 50.771089,80.346469 L 59.67133,80.497341 L 59.691455,84.087607 L 69.516923,84.067485 L 69.054308,79.572115 C 69.054308,79.572115 75.993481,73.095555 76.456094,68.469439 C 76.9187,63.843325 78.30654,52.74065 75.530867,48.114536 C 72.755201,43.488422 68.591686,39.78753 68.591686,39.78753 C 68.591686,39.78753 67.373545,28.354303 64.995693,28.327131 C 62.616533,28.299945 62.787531,43.65514 59.444344,45.29581 C 56.019725,46.976452 50.114814,47.477181 46.386346,45.147864 C 42.657888,42.818546 42.822795,30.114427 41.141016,30.13452 z"
+ id="path4420"
+ sodipodi:nodetypes="cssscccccccssczszz" />
+ <svg:path
+ id="path4422"
+ d="M 66.426894,39.69665 C 70.555103,43.032504 78.071706,54.776625 67.108462,62.405017 C 63.507813,64.78344 70.299307,72.283041 74.112845,68.446912 C 87.371842,55.112527 73.766877,39.779684 69.08354,34.508438 C 64.897908,29.92425 61.190294,35.591459 66.426894,39.69665 z"
+ style="fill:#000000;stroke:#000000;stroke-width:0.19307514" />
+ <svg:path
+ style="fill:url(#linearGradient4470);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 26.757645,17.023597 L 12.053032,38.809788 C 12.053032,38.809788 8.946285,37.800328 6.9869902,40.629955 C 5.0277048,43.459585 4.6909702,47.793277 6.3135314,49.297339 C 7.9360763,50.801394 11.75529,50.781897 11.75529,50.781897 C 11.75529,50.781897 7.798086,43.855569 11.696422,44.271427 C 15.594749,44.687283 16.80024,43.001988 17.564857,46.035978 C 18.159958,48.397342 17.909642,47.616374 18.369278,51.676793 C 22.462681,49.815397 22.773461,43.921689 20.95521,41.939701 C 19.536313,40.393035 18.622749,40.314223 18.622749,40.314223 L 32.713897,18.864397 C 32.713897,18.864397 35.800759,21.001803 38.294408,17.400459 C 40.788048,13.799113 41.599512,12.077562 39.047004,9.1684383 C 36.494488,6.2593118 33.724105,5.863328 33.724105,5.863328 C 33.724105,5.863328 36.830474,11.819951 34.811927,13.086266 C 32.793388,14.352586 28.855684,11.245471 28.855684,11.245471 L 27.015641,7.3073914 C 27.015641,7.3073914 23.948273,8.9891922 24.165761,11.423212 C 24.383249,13.857234 26.935766,16.766358 26.757645,17.023597 z"
+ id="path4424"
+ sodipodi:nodetypes="ccsscsscsccsscsccsc" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.760623,85.005111 C 40.245123,83.579492 50.580862,83.579492 50.580862,83.579492 C 50.580862,83.579492 53.4321,88.569156 49.511646,88.925565 C 45.59119,89.281972 38.819508,91.063996 38.819508,91.063996 C 38.819508,91.063996 32.404213,94.271633 30.978599,90.35118 C 29.552985,86.430726 33.11703,85.005111 32.760623,85.005111 z"
+ id="path4426" />
+ <svg:path
+ style="fill:#ffff13;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.85422432px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 77.464498,85.278239 C 69.979997,83.852624 59.644259,83.852624 59.644259,83.852624 C 59.644259,83.852624 56.793021,88.842295 60.713474,89.198695 C 64.633928,89.555101 71.405612,91.337126 71.405612,91.337126 C 71.405612,91.337126 77.820905,94.544771 79.24652,90.62431 C 80.672134,86.703864 77.108089,85.278239 77.464498,85.278239 z"
+ id="path4428"
+ inkscape:transform-center-y="1.7820238" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4430"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,213.45783,2.0775077)" />
+ <svg:path
+ sodipodi:type="arc"
+ style="opacity:0.9;fill:#d45500;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.30000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4432"
+ sodipodi:cx="-197.7652"
+ sodipodi:cy="54.313736"
+ sodipodi:rx="2.920583"
+ sodipodi:ry="2.2947438"
+ d="M -194.84461,54.313736 A 2.920583,2.2947438 0 1 1 -200.68578,54.313736 A 2.920583,2.2947438 0 1 1 -194.84461,54.313736 z"
+ transform="matrix(0.8542244,0,0,0.8542244,228.42682,2.2557111)" />
+ <svg:rect
+ style="opacity:0.9;fill:url(#linearGradient4463);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.29664719;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4434"
+ width="22.769524"
+ height="12.790192"
+ x="41.334518"
+ y="56.156513"
+ ry="6.3950958"
+ rx="2.6107385" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_config_brown0.png b/data/images/sprites/tux_config_brown0.png
new file mode 100644
index 0000000..c9d55ed
Binary files /dev/null and b/data/images/sprites/tux_config_brown0.png differ
diff --git a/data/images/sprites/tux_config_brown1.png b/data/images/sprites/tux_config_brown1.png
new file mode 100644
index 0000000..0c5d760
Binary files /dev/null and b/data/images/sprites/tux_config_brown1.png differ
diff --git a/data/images/sprites/tux_config_brownd.png b/data/images/sprites/tux_config_brownd.png
new file mode 100644
index 0000000..c9d55ed
Binary files /dev/null and b/data/images/sprites/tux_config_brownd.png differ
diff --git a/data/images/sprites/tux_configd.png b/data/images/sprites/tux_configd.png
new file mode 100644
index 0000000..2db52b8
Binary files /dev/null and b/data/images/sprites/tux_configd.png differ
diff --git a/data/images/sprites/tux_helmet0.png b/data/images/sprites/tux_helmet0.png
new file mode 100644
index 0000000..29a7efc
Binary files /dev/null and b/data/images/sprites/tux_helmet0.png differ
diff --git a/data/images/sprites/tux_helmet1.png b/data/images/sprites/tux_helmet1.png
new file mode 100644
index 0000000..50a7455
Binary files /dev/null and b/data/images/sprites/tux_helmet1.png differ
diff --git a/data/images/sprites/tux_helmet2.png b/data/images/sprites/tux_helmet2.png
new file mode 100644
index 0000000..77c3fb2
Binary files /dev/null and b/data/images/sprites/tux_helmet2.png differ
diff --git a/data/images/sprites/tux_helmet_black.svg b/data/images/sprites/tux_helmet_black.svg
new file mode 100644
index 0000000..6126f3e
--- /dev/null
+++ b/data/images/sprites/tux_helmet_black.svg
@@ -0,0 +1,6543 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_helmet_black.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3924">
+ <svg:stop
+ id="stop3926"
+ offset="0"
+ style="stop-color:#1b102c;stop-opacity:1;" />
+ <svg:stop
+ id="stop3928"
+ offset="1"
+ style="stop-color:#2c282a;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient6753">
+ <svg:stop
+ style="stop-color:#5d675a;stop-opacity:1;"
+ offset="0"
+ id="stop6755" />
+ <svg:stop
+ style="stop-color:#151010;stop-opacity:1;"
+ offset="1"
+ id="stop6757" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3478"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3476"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3474"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3472"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3470"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3468"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3466"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3464"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3462"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3460"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3458"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3456"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3454"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3408"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3406"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3404"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3402"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3400"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3398"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3396"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3394"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3392"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3390"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3388"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3386"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3384"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3382"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3338"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3336"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3334"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3332"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3330"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3328"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3326"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3324"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3322"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3320"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3318"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3316"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3314"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3312"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3268"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3266"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3256"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3254"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3252"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3250"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3248"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3246"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3244"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3242"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3240"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3238"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3234"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3232"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3230"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3166"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3164"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3154"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3152"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3150"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3148"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3146"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3144"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3142"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3140"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3138"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3136"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3134"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3132"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3130"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3128"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3064"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3062"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3060"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3058"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3056"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3054"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3052"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3050"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3048"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3046"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3044"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3042"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3040"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3038"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2742"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2740"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2738"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2736"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2734"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2732"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2730"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2728"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2726"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2724"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5698"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5706"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5708"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5778"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5780"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5837"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5843"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5875"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,97.47953,-386.75803)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,567.61653,-422.63473)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,581.63153,-572.11373)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,38.74253,-525.79773)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,38.74253,-525.79773)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,23.33053,-511.84973)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-38.29847,-524.23073)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4574599,-2.5782549e-2,-1.3335564e-2,0.3468039,127.84431,-43.58718)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3288984,0,0,0.5119633,122.44213,-61.346999)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4137442,0,0,0.3207151,130.58926,-35.27367)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.344763,-1.9963088e-2,3.0575828e-2,0.5322547,109.51959,-60.09664)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.4785954,1.3085561e-2,1.258014e-2,0.6158094,453.51336,-94.784011)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1269482,-9.6347085e-3,-1.8551036e-2,0.1885515,325.98839,25.563103)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.4330485e-2,-1.0788922e-2,1.6382361e-2,0.1580006,208.11025,34.619692)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4931038,0,0,0.3320148,122.40413,-57.088171)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2483526,0,0,0.1577943,189.38092,13.905801)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4337924,0,0,1.2339181,169.24547,36.645773)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-193.0161,1042.5098)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,-181.30846,1029.2878)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-220.25171,988.00876)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,-170.4184,1041.3317)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,-101.87887,1036.0658)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,-27.73024,966.09074)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-227.74335,986.2595)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-215.49252,1000.6927)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-220.22962,985.53249)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-217.08855,995.85883)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter7170">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.7130516"
+ id="feGaussianBlur7172" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3305"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.09986,-22.182378)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3307"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.24092,-32.508723)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.50382,-17.348538)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.26302,-30.032453)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.680234,11.246562)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0274,24.468582)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182413)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508753)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348573)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781743)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950503)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290497)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032483)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802383,11.246527)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468547)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,976.83077)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,963.60875)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,922.32974)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,975.65272)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,970.38682)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,900.41172)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,920.58048)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,935.01365)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,919.85347)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,930.17981)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3922"
+ x1="67.137154"
+ y1="998.78058"
+ x2="72.335526"
+ y2="998.78058"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468587)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246567)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032443)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290537)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024637)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950463)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781703)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348533)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508713)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182373)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3975"
+ x1="67.137154"
+ y1="46.418354"
+ x2="72.335526"
+ y2="46.418354"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3983"
+ x1="67.137154"
+ y1="46.418358"
+ x2="72.335526"
+ y2="46.418358"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3991"
+ x1="67.137146"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3999"
+ x1="67.137154"
+ y1="46.418316"
+ x2="72.335526"
+ y2="46.418316"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46858)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24656)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03245)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29053)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02463)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95047)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.78171)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34854)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50872)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18238)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4046"
+ x1="67.137154"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468537)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246517)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032493)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024587)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4070"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950513)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781753)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4076"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348583)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508763)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182423)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4093"
+ x1="67.137154"
+ y1="46.418304"
+ x2="72.335526"
+ y2="46.418304"
+ gradientUnits="userSpaceOnUse" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.4518985"
+ inkscape:cx="6.5447458"
+ inkscape:cy="69.184869"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7632"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,952.64015)" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,968.62518 C 33.465843,968.82227 26.655203,980.81042 24.186543,989.81268 C 21.989543,991.14047 20.405293,994.7066 20.405293,998.93768 C 20.405293,1003.347 22.125543,1007.0691 24.467793,1008.2502 C 26.322543,1013.3949 29.382433,1016.3741 32.342793,1018.0939 C 29.790303,1022.7945 25.750033,1026.7822 22.624043,1031.5628 C 21.322503,1033.5386 20.217143,1035.713 19.311543,1038.0314 L 35.499043,1038.0314 C 35.475523,1038.0772 35.459853,1038.1427 35.436543,1038.1878 L 75.092793,1038.1878 C 75.070433,1038.1375 75.052703,1038.0819 75.030293,1038.0314 L 85.842793,1038.0314 C 84.413933,1034.691 82.588343,1031.5037 80.280293,1028.6564 C 76.650353,1024.321 74.638473,1020.7607 73.499043,1017.1564 L 75.030293,1017.3127 C 75.031073,1017.3127 75.029513,1017.2822 75.030293,1017.2814 C 77.915013,1017.1943 80.076483,1013.094 81.436543,1008.8127 C 84.068413,1007.9909 86.092793,1004.0132 86.092793,999.25018 C 86.092793,994.65347 84.213403,990.81493 81.717793,989.81268 C 79.131393,980.51339 71.958733,968.41709 52.186543,968.62518 z"
+ id="path7602" />
+ <svg:path
+ style="fill:url(#linearGradient3922);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,1012.346 L 67.311584,1011.905 L 67.972878,985.45319 C 67.972878,985.45319 72.161095,984.79189 72.161095,985.67362 C 72.161095,986.55535 71.940663,1012.346 71.720226,1012.346 z"
+ id="path7604" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,971.74923 C 30.285544,972.10647 31.377356,992.54323 31.499117,1003.6014 C 31.605213,1013.3978 24.299753,1018.9513 19.306963,1026.5866 C 18.005406,1028.5625 16.905599,1030.7369 16,1033.0552 L 82.520828,1033.0552 C 81.09197,1029.7148 79.250653,1026.5267 76.942599,1023.6794 C 70.852537,1016.4055 69.300727,1011.3338 68.820553,1004.5281 C 68.49377,996.76934 74.305134,973.60504 52.37659,971.84008 C 51.33548,971.75702 50.355648,971.73166 49.41486,971.74923 z"
+ id="path7606" />
+ <svg:path
+ d="M 39.422413,982.91171 C 39.646391,988.73645 46.056486,993.80938 53.739757,994.24241 C 61.423027,994.67544 67.469981,990.30459 67.246003,984.47985 C 67.022025,978.65511 60.611936,973.58218 52.928666,973.14915 C 45.245395,972.71612 39.198435,977.08697 39.422413,982.91171 z"
+ id="path7608"
+ style="fill:url(#linearGradient3141);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3137);stroke:none;stroke-width:1.25"
+ d="M 51.649785,1004.0557 C 46.632534,1004.0788 41.961725,1005.61 41.183793,1008.9332 C 39.422099,1016.4591 34.99238,1027.6847 32.116901,1033.2277 L 71.782284,1033.2277 C 68.731342,1026.3843 65.214664,1017.8009 65.113848,1010.746 C 65.113848,1006.4665 58.100534,1004.0259 51.649785,1004.0557 z"
+ id="path7610" />
+ <svg:path
+ id="path7612"
+ d="M 41.867705,1017.8171 C 42.004403,1025.5638 47.045412,1027.3911 53.424847,1027.3911 C 59.804502,1027.3911 64.435181,1026.2477 64.982215,1017.8171 C 64.982215,1012.5322 59.804502,1009.4739 53.424847,1009.4739 C 47.045412,1009.4739 41.867705,1012.5322 41.867705,1017.8171 z"
+ style="font-size:12px;fill:url(#linearGradient3133);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,996.92738 C 57.750179,1000.7136 59.562029,1003.8982 62.014559,1004.0403 C 64.467096,1004.1822 66.631591,1001.2279 66.849104,997.44164 C 67.06661,993.65534 65.254761,990.47081 62.80223,990.3288 C 60.349693,990.18679 58.185198,993.14107 57.967692,996.92738 z"
+ id="path7614"
+ style="fill:url(#linearGradient3129);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,997.21733 C 53.426911,1001.598 50.594412,1005.0738 47.189836,1004.9807 C 43.785255,1004.8877 41.09785,1001.2609 41.187346,996.88023 C 41.213569,995.59651 41.475341,994.3905 41.918035,993.32923 C 42.986031,990.76891 45.107011,989.05103 47.51391,989.11684 C 49.477103,989.17052 51.201835,990.39915 52.293182,992.26978 C 53.094453,993.6432 53.554288,995.36269 53.516401,997.21733 z"
+ id="path7616"
+ style="fill:url(#linearGradient3125);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,998.20771 C 50.747175,1000.6123 49.53419,1002.5644 47.986473,1002.5677 C 46.438762,1002.5711 45.142409,1000.6243 45.090992,998.21971 C 45.039569,995.81503 46.25256,993.86298 47.800271,993.85967 C 49.347988,993.85636 50.644341,995.80304 50.695758,998.20771 z"
+ id="path7618"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,998.23306 C 60.31233,1000.2236 61.060922,1001.9475 62.178434,1002.0834 C 63.29594,1002.2193 64.359198,1000.7158 64.553278,998.72529 C 64.747352,996.73469 63.998766,995.0108 62.881254,994.87488 C 61.763742,994.73895 60.70049,996.24246 60.50641,998.23306 z"
+ id="path7620"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,996.83257 C 50.183599,998.17387 49.5585,999.31677 48.65543,999.38535 C 47.75236,999.45385 46.913296,998.42207 46.781331,997.08077 C 46.649361,995.73947 47.274466,994.59657 48.177535,994.52803 C 49.080605,994.45949 49.91967,995.49127 50.051634,996.83257 z"
+ id="path7622"
+ style="fill:url(#linearGradient3120);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,997.17759 C 61.335631,998.30156 61.785145,999.27493 62.456178,999.35165 C 63.127217,999.42845 63.765671,998.57949 63.88221,997.45552 C 63.998755,996.33155 63.549246,995.35817 62.878207,995.28142 C 62.207169,995.20467 61.568714,996.05362 61.452175,997.17759 z"
+ id="path7624"
+ style="fill:url(#linearGradient3117);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7626"
+ d="M 62.613319,1002.0206 C 60.931882,1000.428 56.776168,995.65301 48.977143,1000.6667 C 47.527446,1001.6101 46.351121,1001.6964 43.56112,1002.8911 C 37.979229,1005.1848 40.648074,1010.7158 46.55933,1012.5625 C 49.090309,1013.3832 51.390723,1016.4574 56.000266,1016.1946 C 59.937182,1015.9648 60.968815,1013.4011 63.387105,1011.982 C 67.68515,1009.5562 68.319424,1006.2759 65.998538,1004.5351 C 63.67742,1002.7944 62.76953,1002.1686 62.613319,1002.0206 z"
+ style="fill:url(#linearGradient3114);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,1006.2906 L 43.491399,1006.4724 C 45.816518,1006.6091 50.876337,1011.6689 56.210487,1011.6689 C 61.544636,1011.6689 64.692987,1006.7448 65.513591,1006.7448 C 65.513591,1006.7448 58.736912,1012.146 56.090476,1011.5949 C 50.311264,1011.1268 43.61859,1006.2906 43.61859,1006.2906 z"
+ id="path7628"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7630"
+ d="M 59.962359,1001.5842 C 59.117765,1000.8252 56.453617,998.7423 52.920531,1000.8746 C 52.176143,1001.2968 51.407416,1001.7564 50.264187,1002.3841 C 47.999712,1003.7012 49.121318,1005.5992 51.834266,1006.8001 C 53.065415,1007.3041 55.095074,1008.4162 56.640569,1008.3384 C 58.358015,1008.1807 59.469096,1007.0605 60.60736,1006.3311 C 62.695518,1004.9516 62.568716,1003.8379 61.598734,1002.9108 C 60.865458,1002.274 60.04083,1001.6546 59.962359,1001.5842 z"
+ style="fill:url(#linearGradient3110);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,994.61023 C 19.46429,994.61023 18.832179,963.95297 48.857331,963.63691 C 78.882477,963.32086 79.830637,991.44968 79.830637,994.92628 C 79.830637,998.40288 76.986149,1012.3093 71.613229,1012.3093 C 71.929284,997.45471 71.929284,985.76071 71.929284,985.76071 L 37.479379,985.44465 L 37.163323,1015.4698 C 37.163323,1015.4698 20.728506,1015.7858 19.46429,994.61023 z"
+ id="path7634"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,1009.1607 C 32.454958,1009.1607 42.551251,1019.7306 46.855239,1021.5682 C 51.159221,1023.4059 59.564639,1022.5007 59.564639,1022.5007 C 59.564639,1022.5007 60.75917,1021.8486 60.772833,1020.7355 C 60.788032,1019.4979 59.712187,1018.6803 59.712187,1018.6803 C 59.712187,1018.6803 50.840468,1019.1479 46.883049,1017.3225 C 42.925637,1015.497 34.593591,1006.2024 34.593591,1006.2024 C 34.593591,1006.2024 33.432813,1005.7718 32.8739,1006.6269 C 32.351775,1007.4257 32.455249,1009.1164 32.454958,1009.1607 z"
+ id="path7636"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7638"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,952.32756)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262997 C 33.465843,16.460087 26.655203,28.448237 24.186543,37.450497 C 21.989543,38.778287 20.405293,42.344417 20.405293,46.575497 C 20.405293,50.984867 22.125543,54.706967 24.467793,55.888067 C 26.322543,61.032767 29.382433,64.011867 32.342793,65.731767 C 29.790303,70.432367 25.750033,74.420067 22.624043,79.200567 C 21.322503,81.176467 20.217143,83.350867 19.311543,85.669267 L 35.499043,85.669267 C 35.475523,85.714967 35.459853,85.780567 35.436543,85.825567 L 75.092793,85.825567 C 75.070433,85.775367 75.052703,85.719667 75.030293,85.669267 L 85.842793,85.669267 C 84.413933,82.328867 82.588343,79.141567 80.280293,76.294267 C 76.650353,71.958767 74.638473,68.398567 73.499043,64.794267 L 75.030293,64.950567 C 75.031073,64.950567 75.029513,64.919967 75.030293,64.919267 C 77.915013,64.832067 80.076483,60.731867 81.436543,56.450567 C 84.068413,55.628767 86.092793,51.651067 86.092793,46.887997 C 86.092793,42.291287 84.213403,38.452747 81.717793,37.450497 C 79.131393,28.151207 71.958733,16.054907 52.186543,16.262997 z"
+ id="path7542" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7572"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779668)" />
+ <svg:path
+ style="fill:url(#linearGradient3975);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983767 L 67.311584,59.542867 L 67.972878,33.091007 C 67.972878,33.091007 72.161095,32.429707 72.161095,33.311437 C 72.161095,34.193167 71.940663,59.983767 71.720226,59.983767 z"
+ id="path7544" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.387047 C 30.285544,19.744287 31.377356,40.181047 31.499117,51.239267 C 31.605213,61.035667 24.299753,66.589167 19.306963,74.224467 C 18.005406,76.200367 16.905599,78.374667 16,80.693067 L 82.520828,80.693067 C 81.09197,77.352667 79.250653,74.164567 76.942599,71.317267 C 70.852537,64.043367 69.300727,58.971667 68.820553,52.165967 C 68.49377,44.407157 74.305134,21.242857 52.37659,19.477897 C 51.33548,19.394837 50.355648,19.369477 49.41486,19.387047 z"
+ id="path7546" />
+ <svg:path
+ d="M 39.422413,30.549527 C 39.646391,36.374267 46.056486,41.447197 53.739757,41.880227 C 61.423027,42.313257 67.469981,37.942407 67.246003,32.117667 C 67.022025,26.292927 60.611936,21.219997 52.928666,20.786967 C 45.245395,20.353937 39.198435,24.724787 39.422413,30.549527 z"
+ id="path7548"
+ style="fill:url(#linearGradient3964);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3961);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693567 C 46.632534,51.716667 41.961725,53.247767 41.183793,56.571067 C 39.422099,64.096967 34.99238,75.322567 32.116901,80.865467 L 71.782284,80.865467 C 68.731342,74.022067 65.214664,65.438767 65.113848,58.383867 C 65.113848,54.104367 58.100534,51.663767 51.649785,51.693567 z"
+ id="path7550" />
+ <svg:path
+ id="path7552"
+ d="M 41.867705,65.454967 C 42.004403,73.201567 47.045412,75.028967 53.424847,75.028967 C 59.804502,75.028967 64.435181,73.885467 64.982215,65.454967 C 64.982215,60.170067 59.804502,57.111767 53.424847,57.111767 C 47.045412,57.111767 41.867705,60.170067 41.867705,65.454967 z"
+ style="font-size:12px;fill:url(#linearGradient3958);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565197 C 57.750179,48.351467 59.562029,51.536067 62.014559,51.678067 C 64.467096,51.820067 66.631591,48.865767 66.849104,45.079457 C 67.06661,41.293157 65.254761,38.108627 62.80223,37.966617 C 60.349693,37.824607 58.185198,40.778887 57.967692,44.565197 z"
+ id="path7554"
+ style="fill:url(#linearGradient3955);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855147 C 53.426911,49.235867 50.594412,52.711667 47.189836,52.618567 C 43.785255,52.525467 41.09785,48.898767 41.187346,44.518047 C 41.213569,43.234327 41.475341,42.028317 41.918035,40.967047 C 42.986031,38.406727 45.107011,36.688847 47.51391,36.754657 C 49.477103,36.808337 51.201835,38.036967 52.293182,39.907597 C 53.094453,41.281017 53.554288,43.000507 53.516401,44.855147 z"
+ id="path7556"
+ style="fill:url(#linearGradient3952);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845527 C 50.747175,48.250167 49.53419,50.202267 47.986473,50.205567 C 46.438762,50.208867 45.142409,48.262167 45.090992,45.857527 C 45.039569,43.452847 46.25256,41.500797 47.800271,41.497487 C 49.347988,41.494177 50.644341,43.440857 50.695758,45.845527 z"
+ id="path7558"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870877 C 60.31233,47.861467 61.060922,49.585367 62.178434,49.721267 C 63.29594,49.857167 64.359198,48.353667 64.553278,46.363107 C 64.747352,44.372507 63.998766,42.648617 62.881254,42.512697 C 61.763742,42.376767 60.70049,43.880277 60.50641,45.870877 z"
+ id="path7560"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470387 C 50.183599,45.811687 49.5585,46.954587 48.65543,47.023167 C 47.75236,47.091667 46.913296,46.059887 46.781331,44.718587 C 46.649361,43.377287 47.274466,42.234387 48.177535,42.165847 C 49.080605,42.097307 49.91967,43.129087 50.051634,44.470387 z"
+ id="path7562"
+ style="fill:url(#linearGradient3947);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815407 C 61.335631,45.939377 61.785145,46.912747 62.456178,46.989467 C 63.127217,47.066267 63.765671,46.217307 63.88221,45.093337 C 63.998755,43.969367 63.549246,42.995987 62.878207,42.919237 C 62.207169,42.842487 61.568714,43.691437 61.452175,44.815407 z"
+ id="path7564"
+ style="fill:url(#linearGradient3944);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7566"
+ d="M 62.613319,49.658467 C 60.931882,48.065767 56.776168,43.290827 48.977143,48.304567 C 47.527446,49.247967 46.351121,49.334267 43.56112,50.528967 C 37.979229,52.822567 40.648074,58.353667 46.55933,60.200267 C 49.090309,61.021067 51.390723,64.095267 56.000266,63.832467 C 59.937182,63.602667 60.968815,61.038967 63.387105,59.619867 C 67.68515,57.194067 68.319424,53.913767 65.998538,52.172967 C 63.67742,50.432267 62.76953,49.806467 62.613319,49.658467 z"
+ style="fill:url(#linearGradient3941);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928467 L 43.491399,54.110167 C 45.816518,54.246867 50.876337,59.306767 56.210487,59.306767 C 61.544636,59.306767 64.692987,54.382667 65.513591,54.382667 C 65.513591,54.382667 58.736912,59.783867 56.090476,59.232767 C 50.311264,58.764667 43.61859,53.928467 43.61859,53.928467 z"
+ id="path7568"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7570"
+ d="M 59.962359,49.221967 C 59.117765,48.462967 56.453617,46.380117 52.920531,48.512467 C 52.176143,48.934667 51.407416,49.394267 50.264187,50.021967 C 47.999712,51.339067 49.121318,53.237067 51.834266,54.437967 C 53.065415,54.941967 55.095074,56.054067 56.640569,55.976267 C 58.358015,55.818467 59.469096,54.698367 60.60736,53.968867 C 62.695518,52.589467 62.568716,51.475767 61.598734,50.548567 C 60.865458,49.911867 60.04083,49.292467 59.962359,49.221967 z"
+ style="fill:url(#linearGradient3937);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.248047 C 19.46429,42.248047 18.832179,11.590787 48.857331,11.274727 C 78.882477,10.958677 79.830637,39.087497 79.830637,42.564097 C 79.830637,46.040697 76.986149,59.947067 71.613229,59.947067 C 71.929284,45.092527 71.929284,33.398527 71.929284,33.398527 L 37.479379,33.082467 L 37.163323,63.107667 C 37.163323,63.107667 20.728506,63.423667 19.46429,42.248047 z"
+ id="path7574"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798467 C 32.454958,56.798467 42.551251,67.368467 46.855239,69.206067 C 51.159221,71.043767 59.564639,70.138567 59.564639,70.138567 C 59.564639,70.138567 60.75917,69.486467 60.772833,68.373367 C 60.788032,67.135767 59.712187,66.318167 59.712187,66.318167 C 59.712187,66.318167 50.840468,66.785767 46.883049,64.960267 C 42.925637,63.134867 34.593591,53.840267 34.593591,53.840267 C 34.593591,53.840267 33.432813,53.409667 32.8739,54.264767 C 32.351775,55.063567 32.455249,56.754267 32.454958,56.798467 z"
+ id="path7576"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7578"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4623202e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ id="path7280" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7312"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)" />
+ <svg:path
+ style="fill:url(#linearGradient3983);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ id="path7284" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ id="path7286" />
+ <svg:path
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z"
+ id="path7288"
+ style="fill:url(#linearGradient3187);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ id="path7290" />
+ <svg:path
+ id="path7292"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ style="font-size:12px;fill:url(#linearGradient3181);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 58.212161,43.342853 C 57.994648,47.129123 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.645571,47.675228 66.849104,43.857113 C 62.774618,43.123083 65.397968,43.78355 62.945437,43.64154 C 60.4929,43.49953 62.924184,43.097752 58.212161,43.342853 z"
+ id="path7294"
+ style="fill:url(#linearGradient3178);stroke:none;stroke-width:1.17873001"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 40.771238,46.928933 41.226571,43.387175 C 47.82628,42.901247 45.798475,42.220563 48.205374,42.286373 C 50.168567,42.340053 46.718234,42.710568 52.984646,42.673457 C 54.131649,46.812734 53.554288,43.00051 53.516401,44.85515 z"
+ id="path7296"
+ style="fill:url(#linearGradient3175);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z"
+ id="path7298"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z"
+ id="path7300"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z"
+ id="path7302"
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z"
+ id="path7304"
+ style="fill:url(#linearGradient3167);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7306"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ style="fill:url(#linearGradient3163);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ id="path7308"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7310"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ style="fill:url(#linearGradient3159);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3155);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ id="path7314"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ id="path7316"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7318"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186538,16.262992 C 33.465838,16.460082 26.655198,28.448232 24.186538,37.450492 C 21.989538,38.778282 20.405288,42.344412 20.405288,46.575492 C 20.405288,50.984862 22.125538,54.706962 24.467788,55.888062 C 26.322538,61.032762 29.382428,64.011862 32.342788,65.731762 C 29.790298,70.432362 25.750028,74.420062 22.624038,79.200562 C 21.322498,81.176462 20.217138,83.350862 19.311538,85.669262 L 35.499038,85.669262 C 35.475518,85.714962 35.459848,85.780562 35.436538,85.825562 L 75.092788,85.825562 C 75.070428,85.775362 75.052698,85.719662 75.030288,85.669262 L 85.842788,85.669262 C 84.413928,82.328862 82.588338,79.141562 80.280288,76.294262 C 76.650348,71.958762 74.638468,68.398562 73.499038,64.794262 L 75.030288,64.950562 C 75.031068,64.950562 75.029508,64.919962 75.030288,64.919262 C 77.915008,64.832062 80.076478,60.731862 81.436538,56.450562 C 84.068408,55.628762 86.092788,51.651062 86.092788,46.887992 C 86.092788,42.291282 84.213398,38.452742 81.717788,37.450492 C 79.131388,28.151202 71.958728,16.054902 52.186538,16.262992 z"
+ id="path3267" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3297"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.43084,0.2779624)" />
+ <svg:path
+ style="fill:url(#linearGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720221,59.983762 L 67.311579,59.542862 L 67.972873,33.091002 C 67.972873,33.091002 72.16109,32.429702 72.16109,33.311432 C 72.16109,34.193162 71.940658,59.983762 71.720221,59.983762 z"
+ id="path3269" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.414855,19.387042 C 30.285539,19.744282 31.377351,40.181042 31.499112,51.239262 C 31.605208,61.035662 24.299748,66.589162 19.306958,74.224462 C 18.005401,76.200362 16.905594,78.374662 15.999995,80.693062 L 82.520823,80.693062 C 81.091965,77.352662 79.250648,74.164562 76.942594,71.317262 C 70.852532,64.043362 69.300722,58.971662 68.820548,52.165962 C 68.493765,44.407152 74.305129,21.242852 52.376585,19.477892 C 51.335475,19.394832 50.355643,19.369472 49.414855,19.387042 z"
+ id="path3271" />
+ <svg:path
+ d="M 39.422408,30.549522 C 39.646386,36.374262 46.056481,41.447192 53.739752,41.880222 C 61.423022,42.313252 67.469976,37.942402 67.245998,32.117662 C 67.02202,26.292922 60.611931,21.219992 52.928661,20.786962 C 45.24539,20.353932 39.19843,24.724782 39.422408,30.549522 z"
+ id="path3273"
+ style="fill:url(#linearGradient3305);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3307);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.64978,51.693562 C 46.632529,51.716662 41.96172,53.247762 41.183788,56.571062 C 39.422094,64.096962 34.992375,75.322562 32.116896,80.865462 L 71.782279,80.865462 C 68.731337,74.022062 65.214659,65.438762 65.113843,58.383862 C 65.113843,54.104362 58.100529,51.663762 51.64978,51.693562 z"
+ id="path3275" />
+ <svg:path
+ id="path3277"
+ d="M 41.8677,65.454962 C 42.004398,73.201562 47.045407,75.028962 53.424842,75.028962 C 59.804497,75.028962 64.435176,73.885462 64.98221,65.454962 C 64.98221,60.170062 59.804497,57.111762 53.424842,57.111762 C 47.045407,57.111762 41.8677,60.170062 41.8677,65.454962 z"
+ style="font-size:12px;fill:url(#linearGradient3309);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ id="path3291"
+ d="M 62.613314,49.658462 C 60.931877,48.065762 56.776163,43.290822 48.977138,48.304562 C 47.527441,49.247962 46.351116,49.334262 43.561115,50.528962 C 37.979224,52.822562 40.648069,58.353662 46.559325,60.200262 C 49.090304,61.021062 51.390718,64.095262 56.000261,63.832462 C 59.937177,63.602662 60.96881,61.038962 63.3871,59.619862 C 67.685145,57.194062 68.319419,53.913762 65.998533,52.172962 C 63.677415,50.432262 62.769525,49.806462 62.613314,49.658462 z"
+ style="fill:url(#linearGradient3321);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.618585,53.928462 L 43.491394,54.110162 C 45.816513,54.246862 50.876332,59.306762 56.210482,59.306762 C 61.544631,59.306762 64.692982,54.382662 65.513586,54.382662 C 65.513586,54.382662 58.736907,59.783862 56.090471,59.232762 C 50.311259,58.764662 43.618585,53.928462 43.618585,53.928462 z"
+ id="path3293"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3295"
+ d="M 59.962354,49.221962 C 59.11776,48.462962 56.453612,46.380112 52.920526,48.512462 C 52.176138,48.934662 51.407411,49.394262 50.264182,50.021962 C 47.999707,51.339062 49.121313,53.237062 51.834261,54.437962 C 53.06541,54.941962 55.095069,56.054062 56.640564,55.976262 C 58.35801,55.818462 59.469091,54.698362 60.607355,53.968862 C 62.695513,52.589462 62.568711,51.475762 61.598729,50.548562 C 60.865453,49.911862 60.040825,49.292462 59.962354,49.221962 z"
+ style="fill:url(#linearGradient3325);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3327);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.464285,42.248042 C 19.464285,42.248042 18.832174,11.590782 48.857326,11.274722 C 78.882472,10.958672 79.830632,39.087492 79.830632,42.564092 C 79.830632,46.040692 76.986144,59.947062 71.613224,59.947062 C 71.929279,45.092522 71.929279,33.398522 71.929279,33.398522 L 37.479374,33.082462 L 37.163318,63.107662 C 37.163318,63.107662 20.728501,63.423662 19.464285,42.248042 z"
+ id="path3299"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454953,56.798462 C 32.454953,56.798462 42.551246,67.368462 46.855234,69.206062 C 51.159216,71.043762 59.564634,70.138562 59.564634,70.138562 C 59.564634,70.138562 60.759165,69.486462 60.772828,68.373362 C 60.788027,67.135762 59.712182,66.318162 59.712182,66.318162 C 59.712182,66.318162 50.840463,66.785762 46.883044,64.960262 C 42.925632,63.134862 34.593586,53.840262 34.593586,53.840262 C 34.593586,53.840262 33.432808,53.409662 32.873895,54.264762 C 32.35177,55.063562 32.455244,56.754262 32.454953,56.798462 z"
+ id="path3301"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3303"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4627617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3330">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3332"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3334"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3336"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186543,16.262957 C 33.465843,16.460047 26.655203,28.448197 24.186543,37.450457 C 21.989543,38.778251 20.405293,42.344381 20.405293,46.575461 C 20.405293,50.984831 22.125543,54.706931 24.467793,55.888031 C 26.322543,61.032731 29.382433,64.011831 32.342793,65.731731 C 29.790303,70.432331 25.750033,74.420031 22.624043,79.200531 C 21.322503,81.176431 20.217143,83.350831 19.311543,85.669231 L 35.499043,85.669231 C 35.475523,85.714931 35.459853,85.780531 35.436543,85.825531 L 75.092793,85.825531 C 75.070433,85.775331 75.052703,85.719631 75.030293,85.669231 L 85.842793,85.669231 C 84.413933,82.328831 82.588343,79.141531 80.280293,76.294231 C 76.650353,71.958731 74.638473,68.398531 73.499043,64.794231 L 75.030293,64.950531 C 75.031073,64.950531 75.029513,64.919931 75.030293,64.919231 C 77.915013,64.832031 80.076483,60.731831 81.436543,56.450531 C 84.068413,55.628731 86.092793,51.651031 86.092793,46.887961 C 86.092793,42.291251 84.213403,38.452707 81.717793,37.450457 C 79.131393,28.151167 71.958733,16.054867 52.186543,16.262957 z"
+ id="path3338" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3369"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779274)" />
+ <svg:path
+ style="fill:url(#linearGradient3999);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720226,59.983731 L 67.311584,59.542831 L 67.972878,33.090967 C 67.972878,33.090967 72.161095,32.429667 72.161095,33.311397 C 72.161095,34.193127 71.940663,59.983731 71.720226,59.983731 z"
+ id="path3340" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.41486,19.387007 C 30.285544,19.744247 31.377356,40.181011 31.499117,51.239231 C 31.605213,61.035631 24.299753,66.589131 19.306963,74.224431 C 18.005406,76.200331 16.905599,78.374631 16,80.693031 L 82.520828,80.693031 C 81.09197,77.352631 79.250653,74.164531 76.942599,71.317231 C 70.852537,64.043331 69.300727,58.971631 68.820553,52.165931 C 68.49377,44.407121 74.305134,21.242817 52.37659,19.477857 C 51.33548,19.394797 50.355648,19.369437 49.41486,19.387007 z"
+ id="path3343" />
+ <svg:path
+ d="M 39.422413,30.549487 C 39.646391,36.374227 46.056486,41.447161 53.739757,41.880191 C 61.423027,42.313221 67.469981,37.942367 67.246003,32.117627 C 67.022025,26.292887 60.611936,21.219957 52.928666,20.786927 C 45.245395,20.353897 39.198435,24.724747 39.422413,30.549487 z"
+ id="path3345"
+ style="fill:url(#linearGradient3377);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3379);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.649785,51.693531 C 46.632534,51.716631 41.961725,53.247731 41.183793,56.571031 C 39.422099,64.096931 34.99238,75.322531 32.116901,80.865431 L 71.782284,80.865431 C 68.731342,74.022031 65.214664,65.438731 65.113848,58.383831 C 65.113848,54.104331 58.100534,51.663731 51.649785,51.693531 z"
+ id="path3347" />
+ <svg:path
+ id="path3349"
+ d="M 41.867705,65.454931 C 42.004403,73.201531 47.045412,75.028931 53.424847,75.028931 C 59.804502,75.028931 64.435181,73.885431 64.982215,65.454931 C 64.982215,60.170031 59.804502,57.111731 53.424847,57.111731 C 47.045412,57.111731 41.867705,60.170031 41.867705,65.454931 z"
+ style="font-size:12px;fill:url(#linearGradient3381);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ d="M 58.212161,43.342814 C 57.994648,47.129084 59.562029,51.536031 62.014559,51.678031 C 64.467096,51.820031 66.645571,47.675189 66.849104,43.857074 C 62.774618,43.123044 65.397968,43.783511 62.945437,43.641501 C 60.4929,43.499491 62.924184,43.097713 58.212161,43.342814 z"
+ id="path3351"
+ style="fill:url(#linearGradient3383);stroke:none;stroke-width:1.17873001;display:inline"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.855111 C 53.426911,49.235831 50.594412,52.711631 47.189836,52.618531 C 43.785255,52.525431 41.09785,48.898731 41.187346,44.518011 C 41.213569,43.234291 40.771238,46.928894 41.226571,43.387136 C 47.82628,42.901208 45.798475,42.220524 48.205374,42.286334 C 50.168567,42.340014 46.718234,42.710529 52.984646,42.673418 C 54.131649,46.812695 53.554288,43.000471 53.516401,44.855111 z"
+ id="path3353"
+ style="fill:url(#linearGradient3385);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 50.695758,45.845491 C 50.747175,48.250131 49.53419,50.202231 47.986473,50.205531 C 46.438762,50.208831 45.142409,48.262131 45.090992,45.857491 C 45.039569,43.452811 46.25256,41.500761 47.800271,41.497451 C 49.347988,41.494141 50.644341,43.440821 50.695758,45.845491 z"
+ id="path3355"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 60.50641,45.870841 C 60.31233,47.861431 61.060922,49.585331 62.178434,49.721231 C 63.29594,49.857131 64.359198,48.353631 64.553278,46.363071 C 64.747352,44.372471 63.998766,42.648581 62.881254,42.512661 C 61.763742,42.376731 60.70049,43.880241 60.50641,45.870841 z"
+ id="path3357"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 50.051634,44.470351 C 50.183599,45.811651 49.5585,46.954551 48.65543,47.023131 C 47.75236,47.091631 46.913296,46.059851 46.781331,44.718551 C 46.649361,43.377251 47.274466,42.234351 48.177535,42.165811 C 49.080605,42.097271 49.91967,43.129051 50.051634,44.470351 z"
+ id="path3359"
+ style="fill:url(#linearGradient3387);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 61.452175,44.815371 C 61.335631,45.939341 61.785145,46.912711 62.456178,46.989431 C 63.127217,47.066231 63.765671,46.217271 63.88221,45.093301 C 63.998755,43.969331 63.549246,42.995951 62.878207,42.919201 C 62.207169,42.842451 61.568714,43.691401 61.452175,44.815371 z"
+ id="path3361"
+ style="fill:url(#linearGradient3389);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3363"
+ d="M 62.613319,49.658431 C 60.931882,48.065731 56.776168,43.290791 48.977143,48.304531 C 47.527446,49.247931 46.351121,49.334231 43.56112,50.528931 C 37.979229,52.822531 40.648074,58.353631 46.55933,60.200231 C 49.090309,61.021031 51.390723,64.095231 56.000266,63.832431 C 59.937182,63.602631 60.968815,61.038931 63.387105,59.619831 C 67.68515,57.194031 68.319424,53.913731 65.998538,52.172931 C 63.67742,50.432231 62.76953,49.806431 62.613319,49.658431 z"
+ style="fill:url(#linearGradient3391);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.61859,53.928431 L 43.491399,54.110131 C 45.816518,54.246831 50.876337,59.306731 56.210487,59.306731 C 61.544636,59.306731 64.692987,54.382631 65.513591,54.382631 C 65.513591,54.382631 58.736912,59.783831 56.090476,59.232731 C 50.311264,58.764631 43.61859,53.928431 43.61859,53.928431 z"
+ id="path3365"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3367"
+ d="M 59.962359,49.221931 C 59.117765,48.462931 56.453617,46.380081 52.920531,48.512431 C 52.176143,48.934631 51.407416,49.394231 50.264187,50.021931 C 47.999712,51.339031 49.121318,53.237031 51.834266,54.437931 C 53.065415,54.941931 55.095074,56.054031 56.640569,55.976231 C 58.358015,55.818431 59.469096,54.698331 60.60736,53.968831 C 62.695518,52.589431 62.568716,51.475731 61.598734,50.548531 C 60.865458,49.911831 60.04083,49.292431 59.962359,49.221931 z"
+ style="fill:url(#linearGradient3393);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3395);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.46429,42.248011 C 19.46429,42.248011 18.832179,11.590747 48.857331,11.274687 C 78.882477,10.958637 79.830637,39.087461 79.830637,42.564061 C 79.830637,46.040661 76.986149,59.947031 71.613229,59.947031 C 71.929284,45.092491 71.929284,33.398487 71.929284,33.398487 L 37.479379,33.082427 L 37.163323,63.107631 C 37.163323,63.107631 20.728506,63.423631 19.46429,42.248011 z"
+ id="path3371"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454958,56.798431 C 32.454958,56.798431 42.551251,67.368431 46.855239,69.206031 C 51.159221,71.043731 59.564639,70.138531 59.564639,70.138531 C 59.564639,70.138531 60.75917,69.486431 60.772833,68.373331 C 60.788032,67.135731 59.712187,66.318131 59.712187,66.318131 C 59.712187,66.318131 50.840468,66.785731 46.883049,64.960231 C 42.925637,63.134831 34.593591,53.840231 34.593591,53.840231 C 34.593591,53.840231 33.432813,53.409631 32.8739,54.264731 C 32.351775,55.063531 32.455249,56.754231 32.454958,56.798431 z"
+ id="path3373"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3375"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4662617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3398">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3400"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3402"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3404"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.26299 C 33.465843,16.46008 26.655203,28.44823 24.186543,37.45049 C 21.989543,38.77828 20.405293,42.34441 20.405293,46.57549 C 20.405293,50.98486 22.125543,54.70696 24.467793,55.88806 C 26.322543,61.03276 29.382433,64.01186 32.342793,65.73176 C 29.790303,70.43236 25.750033,74.42006 22.624043,79.20056 C 21.322503,81.17646 20.217143,83.35086 19.311543,85.66926 L 35.499043,85.66926 C 35.475523,85.71496 35.459853,85.78056 35.436543,85.82556 L 75.092793,85.82556 C 75.070433,85.77536 75.052703,85.71966 75.030293,85.66926 L 85.842793,85.66926 C 84.413933,82.32886 82.588343,79.14156 80.280293,76.29426 C 76.650353,71.95876 74.638473,68.39856 73.499043,64.79426 L 75.030293,64.95056 C 75.031073,64.95056 75.029513,64.91996 75.030293,64.91926 C 77.915013,64.83206 80.076483,60.73186 81.436543,56.45056 C 84.068413,55.62876 86.092793,51.65106 86.092793,46.88799 C 86.092793,42.29128 84.213403,38.45274 81.717793,37.45049 C 79.131393,28.1512 71.958733,16.0549 52.186543,16.26299 z"
+ id="path3408" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3448"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779597)" />
+ <svg:path
+ style="fill:url(#linearGradient4046);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98376 L 67.311584,59.54286 L 67.972878,33.091 C 67.972878,33.091 72.161095,32.4297 72.161095,33.31143 C 72.161095,34.19316 71.940663,59.98376 71.720226,59.98376 z"
+ id="path3410" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38704 C 30.285544,19.74428 31.377356,40.18104 31.499117,51.23926 C 31.605213,61.03566 24.299753,66.58916 19.306963,74.22446 C 18.005406,76.20036 16.905599,78.37466 16,80.69306 L 82.520828,80.69306 C 81.09197,77.35266 79.250653,74.16456 76.942599,71.31726 C 70.852537,64.04336 69.300727,58.97166 68.820553,52.16596 C 68.49377,44.40715 74.305134,21.24285 52.37659,19.47789 C 51.33548,19.39483 50.355648,19.36947 49.41486,19.38704 z"
+ id="path3415" />
+ <svg:path
+ d="M 39.422413,30.54952 C 39.646391,36.37426 46.056486,41.44719 53.739757,41.88022 C 61.423027,42.31325 67.469981,37.9424 67.246003,32.11766 C 67.022025,26.29292 60.611936,21.21999 52.928666,20.78696 C 45.245395,20.35393 39.198435,24.72478 39.422413,30.54952 z"
+ id="path3418"
+ style="fill:url(#linearGradient4035);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4032);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69356 C 46.632534,51.71666 41.961725,53.24776 41.183793,56.57106 C 39.422099,64.09696 34.99238,75.32256 32.116901,80.86546 L 71.782284,80.86546 C 68.731342,74.02206 65.214664,65.43876 65.113848,58.38386 C 65.113848,54.10436 58.100534,51.66376 51.649785,51.69356 z"
+ id="path3420" />
+ <svg:path
+ id="path3422"
+ d="M 41.867705,65.45496 C 42.004403,73.20156 47.045412,75.02896 53.424847,75.02896 C 59.804502,75.02896 64.435181,73.88546 64.982215,65.45496 C 64.982215,60.17006 59.804502,57.11176 53.424847,57.11176 C 47.045412,57.11176 41.867705,60.17006 41.867705,65.45496 z"
+ style="font-size:12px;fill:url(#linearGradient4029);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.56519 C 57.750179,48.35146 59.562029,51.53606 62.014559,51.67806 C 64.467096,51.82006 66.631591,48.86576 66.849104,45.07945 C 67.06661,41.29315 65.254761,38.10862 62.80223,37.96661 C 60.349693,37.8246 58.185198,40.77888 57.967692,44.56519 z"
+ id="path3424"
+ style="fill:url(#linearGradient4026);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.85514 C 53.426911,49.23586 50.594412,52.71166 47.189836,52.61856 C 43.785255,52.52546 41.09785,48.89876 41.187346,44.51804 C 41.213569,43.23432 41.475341,42.02831 41.918035,40.96704 C 42.986031,38.40672 45.107011,36.68884 47.51391,36.75465 C 49.477103,36.80833 51.201835,38.03696 52.293182,39.90759 C 53.094453,41.28101 53.554288,43.0005 53.516401,44.85514 z"
+ id="path3426"
+ style="fill:url(#linearGradient4023);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84552 C 50.747175,48.25016 49.53419,50.20226 47.986473,50.20556 C 46.438762,50.20886 45.142409,48.26216 45.090992,45.85752 C 45.039569,43.45284 46.25256,41.50079 47.800271,41.49748 C 49.347988,41.49417 50.644341,43.44085 50.695758,45.84552 z"
+ id="path3428"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87087 C 60.31233,47.86146 61.060922,49.58536 62.178434,49.72126 C 63.29594,49.85716 64.359198,48.35366 64.553278,46.3631 C 64.747352,44.3725 63.998766,42.64861 62.881254,42.51269 C 61.763742,42.37676 60.70049,43.88027 60.50641,45.87087 z"
+ id="path3432"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47038 C 50.183599,45.81168 49.5585,46.95458 48.65543,47.02316 C 47.75236,47.09166 46.913296,46.05988 46.781331,44.71858 C 46.649361,43.37728 47.274466,42.23438 48.177535,42.16584 C 49.080605,42.0973 49.91967,43.12908 50.051634,44.47038 z"
+ id="path3434"
+ style="fill:url(#linearGradient4018);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.8154 C 61.335631,45.93937 61.785145,46.91274 62.456178,46.98946 C 63.127217,47.06626 63.765671,46.2173 63.88221,45.09333 C 63.998755,43.96936 63.549246,42.99598 62.878207,42.91923 C 62.207169,42.84248 61.568714,43.69143 61.452175,44.8154 z"
+ id="path3436"
+ style="fill:url(#linearGradient4015);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3438"
+ d="M 62.613319,49.65846 C 60.931882,48.06576 56.776168,43.29082 48.977143,48.30456 C 47.527446,49.24796 46.351121,49.33426 43.56112,50.52896 C 37.979229,52.82256 40.648074,58.35366 46.55933,60.20026 C 49.090309,61.02106 51.390723,64.09526 56.000266,63.83246 C 59.937182,63.60266 60.968815,61.03896 63.387105,59.61986 C 67.68515,57.19406 68.319424,53.91376 65.998538,52.17296 C 63.67742,50.43226 62.76953,49.80646 62.613319,49.65846 z"
+ style="fill:url(#linearGradient4012);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92846 L 43.491399,54.11016 C 45.816518,54.24686 50.876337,59.30676 56.210487,59.30676 C 61.544636,59.30676 64.692987,54.38266 65.513591,54.38266 C 65.513591,54.38266 58.736912,59.78386 56.090476,59.23276 C 50.311264,58.76466 43.61859,53.92846 43.61859,53.92846 z"
+ id="path3440"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3446"
+ d="M 59.962359,49.22196 C 59.117765,48.46296 56.453617,46.38011 52.920531,48.51246 C 52.176143,48.93466 51.407416,49.39426 50.264187,50.02196 C 47.999712,51.33906 49.121318,53.23706 51.834266,54.43796 C 53.065415,54.94196 55.095074,56.05406 56.640569,55.97626 C 58.358015,55.81846 59.469096,54.69836 60.60736,53.96886 C 62.695518,52.58946 62.568716,51.47576 61.598734,50.54856 C 60.865458,49.91186 60.04083,49.29246 59.962359,49.22196 z"
+ style="fill:url(#linearGradient4008);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4004);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24804 C 19.46429,42.24804 18.832179,11.59078 48.857331,11.27472 C 78.882477,10.95867 79.830637,39.08749 79.830637,42.56409 C 79.830637,46.04069 76.986149,59.94706 71.613229,59.94706 C 71.929284,45.09252 71.929284,33.39852 71.929284,33.39852 L 37.479379,33.08246 L 37.163323,63.10766 C 37.163323,63.10766 20.728506,63.42366 19.46429,42.24804 z"
+ id="path3450"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79846 C 32.454958,56.79846 42.551251,67.36846 46.855239,69.20606 C 51.159221,71.04376 59.564639,70.13856 59.564639,70.13856 C 59.564639,70.13856 60.75917,69.48646 60.772833,68.37336 C 60.788032,67.13576 59.712187,66.31816 59.712187,66.31816 C 59.712187,66.31816 50.840468,66.78576 46.883049,64.96026 C 42.925637,63.13486 34.593591,53.84026 34.593591,53.84026 C 34.593591,53.84026 33.432813,53.40966 32.8739,54.26476 C 32.351775,55.06356 32.455249,56.75426 32.454958,56.79846 z"
+ id="path3454"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3456"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4630317e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3490">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3492"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3494"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3496"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262947 C 33.465843,16.460037 26.655203,28.448187 24.186543,37.450447 C 21.989543,38.778237 20.405293,42.344367 20.405293,46.575447 C 20.405293,50.984817 22.125543,54.706917 24.467793,55.888017 C 26.322543,61.032717 29.382433,64.011817 32.342793,65.731717 C 29.790303,70.432317 25.750033,74.420017 22.624043,79.200517 C 21.322503,81.176417 20.217143,83.350817 19.311543,85.669217 L 35.499043,85.669217 C 35.475523,85.714917 35.459853,85.780517 35.436543,85.825517 L 75.092793,85.825517 C 75.070433,85.775317 75.052703,85.719617 75.030293,85.669217 L 85.842793,85.669217 C 84.413933,82.328817 82.588343,79.141517 80.280293,76.294217 C 76.650353,71.958717 74.638473,68.398517 73.499043,64.794217 L 75.030293,64.950517 C 75.031073,64.950517 75.029513,64.919917 75.030293,64.919217 C 77.915013,64.832017 80.076483,60.731817 81.436543,56.450517 C 84.068413,55.628717 86.092793,51.651017 86.092793,46.887947 C 86.092793,42.291237 84.213403,38.452697 81.717793,37.450447 C 79.131393,28.151157 71.958733,16.054857 52.186543,16.262947 z"
+ id="path3500" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3530"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779174)" />
+ <svg:path
+ style="fill:url(#linearGradient4093);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983717 L 67.311584,59.542817 L 67.972878,33.090957 C 67.972878,33.090957 72.161095,32.429657 72.161095,33.311387 C 72.161095,34.193117 71.940663,59.983717 71.720226,59.983717 z"
+ id="path3502" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.386997 C 30.285544,19.744237 31.377356,40.180997 31.499117,51.239217 C 31.605213,61.035617 24.299753,66.589117 19.306963,74.224417 C 18.005406,76.200317 16.905599,78.374617 16,80.693017 L 82.520828,80.693017 C 81.09197,77.352617 79.250653,74.164517 76.942599,71.317217 C 70.852537,64.043317 69.300727,58.971617 68.820553,52.165917 C 68.49377,44.407107 74.305134,21.242807 52.37659,19.477847 C 51.33548,19.394787 50.355648,19.369427 49.41486,19.386997 z"
+ id="path3504" />
+ <svg:path
+ d="M 39.422413,30.549477 C 39.646391,36.374217 46.056486,41.447147 53.739757,41.880177 C 61.423027,42.313207 67.469981,37.942357 67.246003,32.117617 C 67.022025,26.292877 60.611936,21.219947 52.928666,20.786917 C 45.245395,20.353887 39.198435,24.724737 39.422413,30.549477 z"
+ id="path3506"
+ style="fill:url(#linearGradient4082);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4079);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693517 C 46.632534,51.716617 41.961725,53.247717 41.183793,56.571017 C 39.422099,64.096917 34.99238,75.322517 32.116901,80.865417 L 71.782284,80.865417 C 68.731342,74.022017 65.214664,65.438717 65.113848,58.383817 C 65.113848,54.104317 58.100534,51.663717 51.649785,51.693517 z"
+ id="path3508" />
+ <svg:path
+ id="path3510"
+ d="M 41.867705,65.454917 C 42.004403,73.201517 47.045412,75.028917 53.424847,75.028917 C 59.804502,75.028917 64.435181,73.885417 64.982215,65.454917 C 64.982215,60.170017 59.804502,57.111717 53.424847,57.111717 C 47.045412,57.111717 41.867705,60.170017 41.867705,65.454917 z"
+ style="font-size:12px;fill:url(#linearGradient4076);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565147 C 57.750179,48.351417 59.562029,51.536017 62.014559,51.678017 C 64.467096,51.820017 66.631591,48.865717 66.849104,45.079407 C 67.06661,41.293107 65.254761,38.108577 62.80223,37.966567 C 60.349693,37.824557 58.185198,40.778837 57.967692,44.565147 z"
+ id="path3512"
+ style="fill:url(#linearGradient4073);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855097 C 53.426911,49.235817 50.594412,52.711617 47.189836,52.618517 C 43.785255,52.525417 41.09785,48.898717 41.187346,44.517997 C 41.213569,43.234277 41.475341,42.028267 41.918035,40.966997 C 42.986031,38.406677 45.107011,36.688797 47.51391,36.754607 C 49.477103,36.808287 51.201835,38.036917 52.293182,39.907547 C 53.094453,41.280967 53.554288,43.000457 53.516401,44.855097 z"
+ id="path3514"
+ style="fill:url(#linearGradient4070);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845477 C 50.747175,48.250117 49.53419,50.202217 47.986473,50.205517 C 46.438762,50.208817 45.142409,48.262117 45.090992,45.857477 C 45.039569,43.452797 46.25256,41.500747 47.800271,41.497437 C 49.347988,41.494127 50.644341,43.440807 50.695758,45.845477 z"
+ id="path3516"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870827 C 60.31233,47.861417 61.060922,49.585317 62.178434,49.721217 C 63.29594,49.857117 64.359198,48.353617 64.553278,46.363057 C 64.747352,44.372457 63.998766,42.648567 62.881254,42.512647 C 61.763742,42.376717 60.70049,43.880227 60.50641,45.870827 z"
+ id="path3518"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470337 C 50.183599,45.811637 49.5585,46.954537 48.65543,47.023117 C 47.75236,47.091617 46.913296,46.059837 46.781331,44.718537 C 46.649361,43.377237 47.274466,42.234337 48.177535,42.165797 C 49.080605,42.097257 49.91967,43.129037 50.051634,44.470337 z"
+ id="path3520"
+ style="fill:url(#linearGradient4065);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815357 C 61.335631,45.939327 61.785145,46.912697 62.456178,46.989417 C 63.127217,47.066217 63.765671,46.217257 63.88221,45.093287 C 63.998755,43.969317 63.549246,42.995937 62.878207,42.919187 C 62.207169,42.842437 61.568714,43.691387 61.452175,44.815357 z"
+ id="path3522"
+ style="fill:url(#linearGradient4062);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3524"
+ d="M 62.613319,49.658417 C 60.931882,48.065717 56.776168,43.290777 48.977143,48.304517 C 47.527446,49.247917 46.351121,49.334217 43.56112,50.528917 C 37.979229,52.822517 40.648074,58.353617 46.55933,60.200217 C 49.090309,61.021017 51.390723,64.095217 56.000266,63.832417 C 59.937182,63.602617 60.968815,61.038917 63.387105,59.619817 C 67.68515,57.194017 68.319424,53.913717 65.998538,52.172917 C 63.67742,50.432217 62.76953,49.806417 62.613319,49.658417 z"
+ style="fill:url(#linearGradient4059);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928417 L 43.491399,54.110117 C 45.816518,54.246817 50.876337,59.306717 56.210487,59.306717 C 61.544636,59.306717 64.692987,54.382617 65.513591,54.382617 C 65.513591,54.382617 58.736912,59.783817 56.090476,59.232717 C 50.311264,58.764617 43.61859,53.928417 43.61859,53.928417 z"
+ id="path3526"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3528"
+ d="M 59.962359,49.221917 C 59.117765,48.462917 56.453617,46.380067 52.920531,48.512417 C 52.176143,48.934617 51.407416,49.394217 50.264187,50.021917 C 47.999712,51.339017 49.121318,53.237017 51.834266,54.437917 C 53.065415,54.941917 55.095074,56.054017 56.640569,55.976217 C 58.358015,55.818417 59.469096,54.698317 60.60736,53.968817 C 62.695518,52.589417 62.568716,51.475717 61.598734,50.548517 C 60.865458,49.911817 60.04083,49.292417 59.962359,49.221917 z"
+ style="fill:url(#linearGradient4055);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4051);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.247997 C 19.46429,42.247997 18.832179,11.590737 48.857331,11.274677 C 78.882477,10.958627 79.830637,39.087447 79.830637,42.564047 C 79.830637,46.040647 76.986149,59.947017 71.613229,59.947017 C 71.929284,45.092477 71.929284,33.398477 71.929284,33.398477 L 37.479379,33.082417 L 37.163323,63.107617 C 37.163323,63.107617 20.728506,63.423617 19.46429,42.247997 z"
+ id="path3532"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798417 C 32.454958,56.798417 42.551251,67.368417 46.855239,69.206017 C 51.159221,71.043717 59.564639,70.138517 59.564639,70.138517 C 59.564639,70.138517 60.75917,69.486417 60.772833,68.373317 C 60.788032,67.135717 59.712187,66.318117 59.712187,66.318117 C 59.712187,66.318117 50.840468,66.785717 46.883049,64.960217 C 42.925637,63.134817 34.593591,53.840217 34.593591,53.840217 C 34.593591,53.840217 33.432813,53.409617 32.8739,54.264717 C 32.351775,55.063517 32.455249,56.754217 32.454958,56.798417 z"
+ id="path3534"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3536"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4672617e-2)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_helmet_black0.png b/data/images/sprites/tux_helmet_black0.png
new file mode 100644
index 0000000..753b84b
Binary files /dev/null and b/data/images/sprites/tux_helmet_black0.png differ
diff --git a/data/images/sprites/tux_helmet_blackd.png b/data/images/sprites/tux_helmet_blackd.png
new file mode 100644
index 0000000..490d72f
Binary files /dev/null and b/data/images/sprites/tux_helmet_blackd.png differ
diff --git a/data/images/sprites/tux_helmet_blue.svg b/data/images/sprites/tux_helmet_blue.svg
new file mode 100644
index 0000000..6b978b6
--- /dev/null
+++ b/data/images/sprites/tux_helmet_blue.svg
@@ -0,0 +1,6183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_helmet_blue.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient6753">
+ <svg:stop
+ style="stop-color:#00ffff;stop-opacity:1;"
+ offset="0"
+ id="stop6755" />
+ <svg:stop
+ style="stop-color:#0039ff;stop-opacity:1;"
+ offset="1"
+ id="stop6757" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3478"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3476"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3474"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3472"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3470"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3468"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3466"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3464"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3462"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3460"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3458"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3456"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3454"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3408"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3406"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3404"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3402"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3400"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3398"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3396"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3394"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3392"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3390"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3388"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3386"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3384"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3382"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3338"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3336"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3334"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3332"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3330"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3328"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3326"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3324"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3322"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3320"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3318"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3316"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3314"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3312"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3268"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3266"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3256"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3254"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3252"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3250"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3248"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3246"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3244"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3242"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3240"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3238"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3234"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3232"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3230"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3166"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3164"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3154"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3152"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3150"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3148"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3146"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3144"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3142"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3140"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3138"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3136"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3134"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3132"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3130"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3128"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3064"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3062"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3060"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3058"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3056"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3054"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3052"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3050"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3048"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3046"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3044"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3042"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3040"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3038"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2742"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2740"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2738"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2736"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2734"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2732"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2730"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2728"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2726"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2724"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5698"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5706"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5708"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5778"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5780"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5837"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5843"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5875"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,97.47953,-386.75803)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,567.61653,-422.63473)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,581.63153,-572.11373)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,38.74253,-525.79773)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,38.74253,-525.79773)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,23.33053,-511.84973)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-38.29847,-524.23073)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4574599,-2.5782549e-2,-1.3335564e-2,0.3468039,127.84431,-43.58718)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3288984,0,0,0.5119633,122.44213,-61.346999)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4137442,0,0,0.3207151,130.58926,-35.27367)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.344763,-1.9963088e-2,3.0575828e-2,0.5322547,109.51959,-60.09664)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.4785954,1.3085561e-2,1.258014e-2,0.6158094,453.51336,-94.784011)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1269482,-9.6347085e-3,-1.8551036e-2,0.1885515,325.98839,25.563103)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.4330485e-2,-1.0788922e-2,1.6382361e-2,0.1580006,208.11025,34.619692)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4931038,0,0,0.3320148,122.40413,-57.088171)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2483526,0,0,0.1577943,189.38092,13.905801)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4337924,0,0,1.2339181,169.24547,36.645773)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-193.0161,1042.5098)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,-181.30846,1029.2878)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-220.25171,988.00876)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,-170.4184,1041.3317)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,-101.87887,1036.0658)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,-27.73024,966.09074)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-227.74335,986.2595)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-215.49252,1000.6927)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-220.22962,985.53249)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-217.08855,995.85883)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter7170">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.7130516"
+ id="feGaussianBlur7172" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7640"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7642"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7644"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7646"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7648"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7650"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7652"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7654"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7656"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7658"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3305"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.09986,-22.182378)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3307"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.24092,-32.508723)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.50382,-17.348538)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.26302,-30.032453)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.680234,11.246562)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0274,24.468582)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182413)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508753)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348573)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781743)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950503)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290497)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032483)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802383,11.246527)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468547)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.0452449"
+ inkscape:cx="28.708597"
+ inkscape:cy="46.711463"
+ inkscape:document-units="px"
+ inkscape:current-layer="svg2"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="24" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g7600"
+ transform="translate(0,952.36218)">
+ <svg:path
+ id="path7602"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)" />
+ <svg:path
+ id="path7604"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ id="path7606"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="fill:url(#linearGradient7640);stroke:none;stroke-width:1.26498997"
+ id="path7608"
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z" />
+ <svg:path
+ id="path7610"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ style="fill:url(#linearGradient7642);stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient7644);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ id="path7612" />
+ <svg:path
+ style="fill:url(#linearGradient7646);stroke:none;stroke-width:1.17873001"
+ id="path7614"
+ d="M 57.967692,44.5652 C 57.750179,48.35147 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.631591,48.86577 66.849104,45.07946 C 67.06661,41.29316 65.254761,38.10863 62.80223,37.96662 C 60.349693,37.82461 58.185198,40.77889 57.967692,44.5652 z" />
+ <svg:path
+ style="fill:url(#linearGradient7648);stroke:none;stroke-width:0.93138498"
+ id="path7616"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 41.475341,42.02832 41.918035,40.96705 C 42.986031,38.40673 45.107011,36.68885 47.51391,36.75466 C 49.477103,36.80834 51.201835,38.03697 52.293182,39.9076 C 53.094453,41.28102 53.554288,43.00051 53.516401,44.85515 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path7618"
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path7620"
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z" />
+ <svg:path
+ style="fill:url(#linearGradient7650);stroke:none;stroke-width:3.1916101"
+ id="path7622"
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z" />
+ <svg:path
+ style="fill:url(#linearGradient7652);stroke:none;stroke-width:4.12025976"
+ id="path7624"
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z" />
+ <svg:path
+ style="fill:url(#linearGradient7654);stroke:#e68c3f;stroke-width:0.88224226"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ id="path7626" />
+ <svg:path
+ sodipodi:nodetypes="ccsccc"
+ id="path7628"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153" />
+ <svg:path
+ style="fill:url(#linearGradient7656);stroke:none"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ id="path7630" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path7632"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cscccccc"
+ id="path7634"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ style="fill:url(#radialGradient7658);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="czczczczc"
+ id="path7636"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path7638"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g7540"
+ transform="translate(0,-3.2015514e-6)">
+ <svg:path
+ id="path7542"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)" />
+ <svg:path
+ id="path7544"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ id="path7546"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="fill:url(#linearGradient7580);stroke:none;stroke-width:1.26498997"
+ id="path7548"
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z" />
+ <svg:path
+ id="path7550"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ style="fill:url(#linearGradient7582);stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient7584);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ id="path7552" />
+ <svg:path
+ style="fill:url(#linearGradient7586);stroke:none;stroke-width:1.17873001"
+ id="path7554"
+ d="M 57.967692,44.5652 C 57.750179,48.35147 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.631591,48.86577 66.849104,45.07946 C 67.06661,41.29316 65.254761,38.10863 62.80223,37.96662 C 60.349693,37.82461 58.185198,40.77889 57.967692,44.5652 z" />
+ <svg:path
+ style="fill:url(#linearGradient7588);stroke:none;stroke-width:0.93138498"
+ id="path7556"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 41.475341,42.02832 41.918035,40.96705 C 42.986031,38.40673 45.107011,36.68885 47.51391,36.75466 C 49.477103,36.80834 51.201835,38.03697 52.293182,39.9076 C 53.094453,41.28102 53.554288,43.00051 53.516401,44.85515 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path7558"
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path7560"
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z" />
+ <svg:path
+ style="fill:url(#linearGradient7590);stroke:none;stroke-width:3.1916101"
+ id="path7562"
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z" />
+ <svg:path
+ style="fill:url(#linearGradient7592);stroke:none;stroke-width:4.12025976"
+ id="path7564"
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z" />
+ <svg:path
+ style="fill:url(#linearGradient7594);stroke:#e68c3f;stroke-width:0.88224226"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ id="path7566" />
+ <svg:path
+ sodipodi:nodetypes="ccsccc"
+ id="path7568"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153" />
+ <svg:path
+ style="fill:url(#linearGradient7596);stroke:none"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ id="path7570" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path7572"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cscccccc"
+ id="path7574"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ style="fill:url(#radialGradient7598);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="czczczczc"
+ id="path7576"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path7578"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ id="path7280" />
+ <svg:path
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ id="path7284" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ id="path7286" />
+ <svg:path
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z"
+ id="path7288"
+ style="fill:url(#linearGradient3187);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ id="path7290" />
+ <svg:path
+ id="path7292"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ style="font-size:12px;fill:url(#linearGradient3181);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 58.212161,43.342853 C 57.994648,47.129123 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.645571,47.675228 66.849104,43.857113 C 62.774618,43.123083 65.397968,43.78355 62.945437,43.64154 C 60.4929,43.49953 62.924184,43.097752 58.212161,43.342853 z"
+ id="path7294"
+ style="fill:url(#linearGradient3178);stroke:none;stroke-width:1.17873001"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 40.771238,46.928933 41.226571,43.387175 C 47.82628,42.901247 45.798475,42.220563 48.205374,42.286373 C 50.168567,42.340053 46.718234,42.710568 52.984646,42.673457 C 54.131649,46.812734 53.554288,43.00051 53.516401,44.85515 z"
+ id="path7296"
+ style="fill:url(#linearGradient3175);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z"
+ id="path7298"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z"
+ id="path7300"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z"
+ id="path7302"
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z"
+ id="path7304"
+ style="fill:url(#linearGradient3167);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7306"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ style="fill:url(#linearGradient3163);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ id="path7308"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7310"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ style="fill:url(#linearGradient3159);stroke:none" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7312"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)" />
+ <svg:path
+ style="fill:url(#radialGradient3155);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ id="path7314"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ id="path7316"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7318"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186538,16.262992 C 33.465838,16.460082 26.655198,28.448232 24.186538,37.450492 C 21.989538,38.778282 20.405288,42.344412 20.405288,46.575492 C 20.405288,50.984862 22.125538,54.706962 24.467788,55.888062 C 26.322538,61.032762 29.382428,64.011862 32.342788,65.731762 C 29.790298,70.432362 25.750028,74.420062 22.624038,79.200562 C 21.322498,81.176462 20.217138,83.350862 19.311538,85.669262 L 35.499038,85.669262 C 35.475518,85.714962 35.459848,85.780562 35.436538,85.825562 L 75.092788,85.825562 C 75.070428,85.775362 75.052698,85.719662 75.030288,85.669262 L 85.842788,85.669262 C 84.413928,82.328862 82.588338,79.141562 80.280288,76.294262 C 76.650348,71.958762 74.638468,68.398562 73.499038,64.794262 L 75.030288,64.950562 C 75.031068,64.950562 75.029508,64.919962 75.030288,64.919262 C 77.915008,64.832062 80.076478,60.731862 81.436538,56.450562 C 84.068408,55.628762 86.092788,51.651062 86.092788,46.887992 C 86.092788,42.291282 84.213398,38.452742 81.717788,37.450492 C 79.131388,28.151202 71.958728,16.054902 52.186538,16.262992 z"
+ id="path3267" />
+ <svg:path
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720221,59.983762 L 67.311579,59.542862 L 67.972873,33.091002 C 67.972873,33.091002 72.16109,32.429702 72.16109,33.311432 C 72.16109,34.193162 71.940658,59.983762 71.720221,59.983762 z"
+ id="path3269" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.414855,19.387042 C 30.285539,19.744282 31.377351,40.181042 31.499112,51.239262 C 31.605208,61.035662 24.299748,66.589162 19.306958,74.224462 C 18.005401,76.200362 16.905594,78.374662 15.999995,80.693062 L 82.520823,80.693062 C 81.091965,77.352662 79.250648,74.164562 76.942594,71.317262 C 70.852532,64.043362 69.300722,58.971662 68.820548,52.165962 C 68.493765,44.407152 74.305129,21.242852 52.376585,19.477892 C 51.335475,19.394832 50.355643,19.369472 49.414855,19.387042 z"
+ id="path3271" />
+ <svg:path
+ d="M 39.422408,30.549522 C 39.646386,36.374262 46.056481,41.447192 53.739752,41.880222 C 61.423022,42.313252 67.469976,37.942402 67.245998,32.117662 C 67.02202,26.292922 60.611931,21.219992 52.928661,20.786962 C 45.24539,20.353932 39.19843,24.724782 39.422408,30.549522 z"
+ id="path3273"
+ style="fill:url(#linearGradient3305);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3307);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.64978,51.693562 C 46.632529,51.716662 41.96172,53.247762 41.183788,56.571062 C 39.422094,64.096962 34.992375,75.322562 32.116896,80.865462 L 71.782279,80.865462 C 68.731337,74.022062 65.214659,65.438762 65.113843,58.383862 C 65.113843,54.104362 58.100529,51.663762 51.64978,51.693562 z"
+ id="path3275" />
+ <svg:path
+ id="path3277"
+ d="M 41.8677,65.454962 C 42.004398,73.201562 47.045407,75.028962 53.424842,75.028962 C 59.804497,75.028962 64.435176,73.885462 64.98221,65.454962 C 64.98221,60.170062 59.804497,57.111762 53.424842,57.111762 C 47.045407,57.111762 41.8677,60.170062 41.8677,65.454962 z"
+ style="font-size:12px;fill:url(#linearGradient3309);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ id="path3291"
+ d="M 62.613314,49.658462 C 60.931877,48.065762 56.776163,43.290822 48.977138,48.304562 C 47.527441,49.247962 46.351116,49.334262 43.561115,50.528962 C 37.979224,52.822562 40.648069,58.353662 46.559325,60.200262 C 49.090304,61.021062 51.390718,64.095262 56.000261,63.832462 C 59.937177,63.602662 60.96881,61.038962 63.3871,59.619862 C 67.685145,57.194062 68.319419,53.913762 65.998533,52.172962 C 63.677415,50.432262 62.769525,49.806462 62.613314,49.658462 z"
+ style="fill:url(#linearGradient3321);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.618585,53.928462 L 43.491394,54.110162 C 45.816513,54.246862 50.876332,59.306762 56.210482,59.306762 C 61.544631,59.306762 64.692982,54.382662 65.513586,54.382662 C 65.513586,54.382662 58.736907,59.783862 56.090471,59.232762 C 50.311259,58.764662 43.618585,53.928462 43.618585,53.928462 z"
+ id="path3293"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3295"
+ d="M 59.962354,49.221962 C 59.11776,48.462962 56.453612,46.380112 52.920526,48.512462 C 52.176138,48.934662 51.407411,49.394262 50.264182,50.021962 C 47.999707,51.339062 49.121313,53.237062 51.834261,54.437962 C 53.06541,54.941962 55.095069,56.054062 56.640564,55.976262 C 58.35801,55.818462 59.469091,54.698362 60.607355,53.968862 C 62.695513,52.589462 62.568711,51.475762 61.598729,50.548562 C 60.865453,49.911862 60.040825,49.292462 59.962354,49.221962 z"
+ style="fill:url(#linearGradient3325);stroke:none;display:inline" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3297"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.43084,0.2779624)" />
+ <svg:path
+ style="fill:url(#radialGradient3327);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.464285,42.248042 C 19.464285,42.248042 18.832174,11.590782 48.857326,11.274722 C 78.882472,10.958672 79.830632,39.087492 79.830632,42.564092 C 79.830632,46.040692 76.986144,59.947062 71.613224,59.947062 C 71.929279,45.092522 71.929279,33.398522 71.929279,33.398522 L 37.479374,33.082462 L 37.163318,63.107662 C 37.163318,63.107662 20.728501,63.423662 19.464285,42.248042 z"
+ id="path3299"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454953,56.798462 C 32.454953,56.798462 42.551246,67.368462 46.855234,69.206062 C 51.159216,71.043762 59.564634,70.138562 59.564634,70.138562 C 59.564634,70.138562 60.759165,69.486462 60.772828,68.373362 C 60.788027,67.135762 59.712182,66.318162 59.712182,66.318162 C 59.712182,66.318162 50.840463,66.785762 46.883044,64.960262 C 42.925632,63.134862 34.593586,53.840262 34.593586,53.840262 C 34.593586,53.840262 33.432808,53.409662 32.873895,54.264762 C 32.35177,55.063562 32.455244,56.754262 32.454953,56.798462 z"
+ id="path3301"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3303"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4627617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3330">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3332"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3334"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3336"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186543,16.262957 C 33.465843,16.460047 26.655203,28.448197 24.186543,37.450457 C 21.989543,38.778251 20.405293,42.344381 20.405293,46.575461 C 20.405293,50.984831 22.125543,54.706931 24.467793,55.888031 C 26.322543,61.032731 29.382433,64.011831 32.342793,65.731731 C 29.790303,70.432331 25.750033,74.420031 22.624043,79.200531 C 21.322503,81.176431 20.217143,83.350831 19.311543,85.669231 L 35.499043,85.669231 C 35.475523,85.714931 35.459853,85.780531 35.436543,85.825531 L 75.092793,85.825531 C 75.070433,85.775331 75.052703,85.719631 75.030293,85.669231 L 85.842793,85.669231 C 84.413933,82.328831 82.588343,79.141531 80.280293,76.294231 C 76.650353,71.958731 74.638473,68.398531 73.499043,64.794231 L 75.030293,64.950531 C 75.031073,64.950531 75.029513,64.919931 75.030293,64.919231 C 77.915013,64.832031 80.076483,60.731831 81.436543,56.450531 C 84.068413,55.628731 86.092793,51.651031 86.092793,46.887961 C 86.092793,42.291251 84.213403,38.452707 81.717793,37.450457 C 79.131393,28.151167 71.958733,16.054867 52.186543,16.262957 z"
+ id="path3338" />
+ <svg:path
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720226,59.983731 L 67.311584,59.542831 L 67.972878,33.090967 C 67.972878,33.090967 72.161095,32.429667 72.161095,33.311397 C 72.161095,34.193127 71.940663,59.983731 71.720226,59.983731 z"
+ id="path3340" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.41486,19.387007 C 30.285544,19.744247 31.377356,40.181011 31.499117,51.239231 C 31.605213,61.035631 24.299753,66.589131 19.306963,74.224431 C 18.005406,76.200331 16.905599,78.374631 16,80.693031 L 82.520828,80.693031 C 81.09197,77.352631 79.250653,74.164531 76.942599,71.317231 C 70.852537,64.043331 69.300727,58.971631 68.820553,52.165931 C 68.49377,44.407121 74.305134,21.242817 52.37659,19.477857 C 51.33548,19.394797 50.355648,19.369437 49.41486,19.387007 z"
+ id="path3343" />
+ <svg:path
+ d="M 39.422413,30.549487 C 39.646391,36.374227 46.056486,41.447161 53.739757,41.880191 C 61.423027,42.313221 67.469981,37.942367 67.246003,32.117627 C 67.022025,26.292887 60.611936,21.219957 52.928666,20.786927 C 45.245395,20.353897 39.198435,24.724747 39.422413,30.549487 z"
+ id="path3345"
+ style="fill:url(#linearGradient3377);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3379);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.649785,51.693531 C 46.632534,51.716631 41.961725,53.247731 41.183793,56.571031 C 39.422099,64.096931 34.99238,75.322531 32.116901,80.865431 L 71.782284,80.865431 C 68.731342,74.022031 65.214664,65.438731 65.113848,58.383831 C 65.113848,54.104331 58.100534,51.663731 51.649785,51.693531 z"
+ id="path3347" />
+ <svg:path
+ id="path3349"
+ d="M 41.867705,65.454931 C 42.004403,73.201531 47.045412,75.028931 53.424847,75.028931 C 59.804502,75.028931 64.435181,73.885431 64.982215,65.454931 C 64.982215,60.170031 59.804502,57.111731 53.424847,57.111731 C 47.045412,57.111731 41.867705,60.170031 41.867705,65.454931 z"
+ style="font-size:12px;fill:url(#linearGradient3381);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ d="M 58.212161,43.342814 C 57.994648,47.129084 59.562029,51.536031 62.014559,51.678031 C 64.467096,51.820031 66.645571,47.675189 66.849104,43.857074 C 62.774618,43.123044 65.397968,43.783511 62.945437,43.641501 C 60.4929,43.499491 62.924184,43.097713 58.212161,43.342814 z"
+ id="path3351"
+ style="fill:url(#linearGradient3383);stroke:none;stroke-width:1.17873001;display:inline"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.855111 C 53.426911,49.235831 50.594412,52.711631 47.189836,52.618531 C 43.785255,52.525431 41.09785,48.898731 41.187346,44.518011 C 41.213569,43.234291 40.771238,46.928894 41.226571,43.387136 C 47.82628,42.901208 45.798475,42.220524 48.205374,42.286334 C 50.168567,42.340014 46.718234,42.710529 52.984646,42.673418 C 54.131649,46.812695 53.554288,43.000471 53.516401,44.855111 z"
+ id="path3353"
+ style="fill:url(#linearGradient3385);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 50.695758,45.845491 C 50.747175,48.250131 49.53419,50.202231 47.986473,50.205531 C 46.438762,50.208831 45.142409,48.262131 45.090992,45.857491 C 45.039569,43.452811 46.25256,41.500761 47.800271,41.497451 C 49.347988,41.494141 50.644341,43.440821 50.695758,45.845491 z"
+ id="path3355"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 60.50641,45.870841 C 60.31233,47.861431 61.060922,49.585331 62.178434,49.721231 C 63.29594,49.857131 64.359198,48.353631 64.553278,46.363071 C 64.747352,44.372471 63.998766,42.648581 62.881254,42.512661 C 61.763742,42.376731 60.70049,43.880241 60.50641,45.870841 z"
+ id="path3357"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 50.051634,44.470351 C 50.183599,45.811651 49.5585,46.954551 48.65543,47.023131 C 47.75236,47.091631 46.913296,46.059851 46.781331,44.718551 C 46.649361,43.377251 47.274466,42.234351 48.177535,42.165811 C 49.080605,42.097271 49.91967,43.129051 50.051634,44.470351 z"
+ id="path3359"
+ style="fill:url(#linearGradient3387);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 61.452175,44.815371 C 61.335631,45.939341 61.785145,46.912711 62.456178,46.989431 C 63.127217,47.066231 63.765671,46.217271 63.88221,45.093301 C 63.998755,43.969331 63.549246,42.995951 62.878207,42.919201 C 62.207169,42.842451 61.568714,43.691401 61.452175,44.815371 z"
+ id="path3361"
+ style="fill:url(#linearGradient3389);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3363"
+ d="M 62.613319,49.658431 C 60.931882,48.065731 56.776168,43.290791 48.977143,48.304531 C 47.527446,49.247931 46.351121,49.334231 43.56112,50.528931 C 37.979229,52.822531 40.648074,58.353631 46.55933,60.200231 C 49.090309,61.021031 51.390723,64.095231 56.000266,63.832431 C 59.937182,63.602631 60.968815,61.038931 63.387105,59.619831 C 67.68515,57.194031 68.319424,53.913731 65.998538,52.172931 C 63.67742,50.432231 62.76953,49.806431 62.613319,49.658431 z"
+ style="fill:url(#linearGradient3391);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.61859,53.928431 L 43.491399,54.110131 C 45.816518,54.246831 50.876337,59.306731 56.210487,59.306731 C 61.544636,59.306731 64.692987,54.382631 65.513591,54.382631 C 65.513591,54.382631 58.736912,59.783831 56.090476,59.232731 C 50.311264,58.764631 43.61859,53.928431 43.61859,53.928431 z"
+ id="path3365"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3367"
+ d="M 59.962359,49.221931 C 59.117765,48.462931 56.453617,46.380081 52.920531,48.512431 C 52.176143,48.934631 51.407416,49.394231 50.264187,50.021931 C 47.999712,51.339031 49.121318,53.237031 51.834266,54.437931 C 53.065415,54.941931 55.095074,56.054031 56.640569,55.976231 C 58.358015,55.818431 59.469096,54.698331 60.60736,53.968831 C 62.695518,52.589431 62.568716,51.475731 61.598734,50.548531 C 60.865458,49.911831 60.04083,49.292431 59.962359,49.221931 z"
+ style="fill:url(#linearGradient3393);stroke:none;display:inline" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3369"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779274)" />
+ <svg:path
+ style="fill:url(#radialGradient3395);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.46429,42.248011 C 19.46429,42.248011 18.832179,11.590747 48.857331,11.274687 C 78.882477,10.958637 79.830637,39.087461 79.830637,42.564061 C 79.830637,46.040661 76.986149,59.947031 71.613229,59.947031 C 71.929284,45.092491 71.929284,33.398487 71.929284,33.398487 L 37.479379,33.082427 L 37.163323,63.107631 C 37.163323,63.107631 20.728506,63.423631 19.46429,42.248011 z"
+ id="path3371"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454958,56.798431 C 32.454958,56.798431 42.551251,67.368431 46.855239,69.206031 C 51.159221,71.043731 59.564639,70.138531 59.564639,70.138531 C 59.564639,70.138531 60.75917,69.486431 60.772833,68.373331 C 60.788032,67.135731 59.712187,66.318131 59.712187,66.318131 C 59.712187,66.318131 50.840468,66.785731 46.883049,64.960231 C 42.925637,63.134831 34.593591,53.840231 34.593591,53.840231 C 34.593591,53.840231 33.432813,53.409631 32.8739,54.264731 C 32.351775,55.063531 32.455249,56.754231 32.454958,56.798431 z"
+ id="path3373"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3375"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4662617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3398">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3400"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3402"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3404"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3406"
+ transform="translate(0,-1.0317188e-5)">
+ <svg:path
+ id="path3408"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)" />
+ <svg:path
+ id="path3410"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ id="path3415"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="fill:url(#linearGradient3459);stroke:none;stroke-width:1.26498997"
+ id="path3418"
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z" />
+ <svg:path
+ id="path3420"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ style="fill:url(#linearGradient3461);stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3463);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ id="path3422" />
+ <svg:path
+ style="fill:url(#linearGradient3465);stroke:none;stroke-width:1.17873001"
+ id="path3424"
+ d="M 57.967692,44.5652 C 57.750179,48.35147 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.631591,48.86577 66.849104,45.07946 C 67.06661,41.29316 65.254761,38.10863 62.80223,37.96662 C 60.349693,37.82461 58.185198,40.77889 57.967692,44.5652 z" />
+ <svg:path
+ style="fill:url(#linearGradient3467);stroke:none;stroke-width:0.93138498"
+ id="path3426"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 41.475341,42.02832 41.918035,40.96705 C 42.986031,38.40673 45.107011,36.68885 47.51391,36.75466 C 49.477103,36.80834 51.201835,38.03697 52.293182,39.9076 C 53.094453,41.28102 53.554288,43.00051 53.516401,44.85515 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path3428"
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path3432"
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z" />
+ <svg:path
+ style="fill:url(#linearGradient3477);stroke:none;stroke-width:3.1916101"
+ id="path3434"
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z" />
+ <svg:path
+ style="fill:url(#linearGradient3481);stroke:none;stroke-width:4.12025976"
+ id="path3436"
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z" />
+ <svg:path
+ style="fill:url(#linearGradient3483);stroke:#e68c3f;stroke-width:0.88224226"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ id="path3438" />
+ <svg:path
+ sodipodi:nodetypes="ccsccc"
+ id="path3440"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153" />
+ <svg:path
+ style="fill:url(#linearGradient3485);stroke:none"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ id="path3446" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path3448"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cscccccc"
+ id="path3450"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ style="fill:url(#radialGradient3487);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="czczczczc"
+ id="path3454"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path3456"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3490">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3492"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3494"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3496"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3498"
+ transform="translate(0,-5.2617187e-5)">
+ <svg:path
+ id="path3500"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)" />
+ <svg:path
+ id="path3502"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ style="fill:#00006f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ id="path3504"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="fill:url(#linearGradient3538);stroke:none;stroke-width:1.26498997"
+ id="path3506"
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z" />
+ <svg:path
+ id="path3508"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ style="fill:url(#linearGradient3540);stroke:none;stroke-width:1.25" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3542);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ id="path3510" />
+ <svg:path
+ style="fill:url(#linearGradient3544);stroke:none;stroke-width:1.17873001"
+ id="path3512"
+ d="M 57.967692,44.5652 C 57.750179,48.35147 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.631591,48.86577 66.849104,45.07946 C 67.06661,41.29316 65.254761,38.10863 62.80223,37.96662 C 60.349693,37.82461 58.185198,40.77889 57.967692,44.5652 z" />
+ <svg:path
+ style="fill:url(#linearGradient3546);stroke:none;stroke-width:0.93138498"
+ id="path3514"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 41.475341,42.02832 41.918035,40.96705 C 42.986031,38.40673 45.107011,36.68885 47.51391,36.75466 C 49.477103,36.80834 51.201835,38.03697 52.293182,39.9076 C 53.094453,41.28102 53.554288,43.00051 53.516401,44.85515 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996"
+ id="path3516"
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997"
+ id="path3518"
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z" />
+ <svg:path
+ style="fill:url(#linearGradient3548);stroke:none;stroke-width:3.1916101"
+ id="path3520"
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z" />
+ <svg:path
+ style="fill:url(#linearGradient3550);stroke:none;stroke-width:4.12025976"
+ id="path3522"
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z" />
+ <svg:path
+ style="fill:url(#linearGradient3552);stroke:#e68c3f;stroke-width:0.88224226"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ id="path3524" />
+ <svg:path
+ sodipodi:nodetypes="ccsccc"
+ id="path3526"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153" />
+ <svg:path
+ style="fill:url(#linearGradient3554);stroke:none"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ id="path3528" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path3530"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <svg:path
+ sodipodi:nodetypes="cscccccc"
+ id="path3532"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ style="fill:url(#radialGradient3556);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ sodipodi:nodetypes="czczczczc"
+ id="path3534"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <svg:path
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ sodipodi:ry="16.665607"
+ sodipodi:rx="11.827205"
+ sodipodi:cy="71.507187"
+ sodipodi:cx="210.73929"
+ id="path3536"
+ style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </svg:g>
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_helmet_blue0.png b/data/images/sprites/tux_helmet_blue0.png
new file mode 100644
index 0000000..fb13343
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue0.png differ
diff --git a/data/images/sprites/tux_helmet_blue1.png b/data/images/sprites/tux_helmet_blue1.png
new file mode 100644
index 0000000..daa7261
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue1.png differ
diff --git a/data/images/sprites/tux_helmet_blue2.png b/data/images/sprites/tux_helmet_blue2.png
new file mode 100644
index 0000000..63a0871
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue2.png differ
diff --git a/data/images/sprites/tux_helmet_blue3.png b/data/images/sprites/tux_helmet_blue3.png
new file mode 100644
index 0000000..3fda2fc
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue3.png differ
diff --git a/data/images/sprites/tux_helmet_blue4.png b/data/images/sprites/tux_helmet_blue4.png
new file mode 100644
index 0000000..afab625
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue4.png differ
diff --git a/data/images/sprites/tux_helmet_blue5.png b/data/images/sprites/tux_helmet_blue5.png
new file mode 100644
index 0000000..6444668
Binary files /dev/null and b/data/images/sprites/tux_helmet_blue5.png differ
diff --git a/data/images/sprites/tux_helmet_blued.png b/data/images/sprites/tux_helmet_blued.png
new file mode 100644
index 0000000..88e2868
Binary files /dev/null and b/data/images/sprites/tux_helmet_blued.png differ
diff --git a/data/images/sprites/tux_helmet_green.svg b/data/images/sprites/tux_helmet_green.svg
new file mode 100644
index 0000000..225a72d
--- /dev/null
+++ b/data/images/sprites/tux_helmet_green.svg
@@ -0,0 +1,6543 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_helmet_green.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3924">
+ <svg:stop
+ id="stop3926"
+ offset="0"
+ style="stop-color:#003b00;stop-opacity:1;" />
+ <svg:stop
+ id="stop3928"
+ offset="1"
+ style="stop-color:#003b00;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient6753">
+ <svg:stop
+ style="stop-color:#00ff6b;stop-opacity:1;"
+ offset="0"
+ id="stop6755" />
+ <svg:stop
+ style="stop-color:#008900;stop-opacity:1;"
+ offset="1"
+ id="stop6757" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3478"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3476"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3474"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3472"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3470"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3468"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3466"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3464"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3462"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3460"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3458"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3456"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3454"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3408"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3406"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3404"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3402"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3400"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3398"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3396"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3394"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3392"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3390"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3388"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3386"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3384"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3382"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3338"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3336"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3334"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3332"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3330"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3328"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3326"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3324"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3322"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3320"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3318"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3316"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3314"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3312"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3268"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3266"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3256"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3254"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3252"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3250"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3248"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3246"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3244"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3242"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3240"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3238"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3234"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3232"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3230"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3166"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3164"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3154"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3152"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3150"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3148"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3146"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3144"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3142"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3140"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3138"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3136"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3134"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3132"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3130"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3128"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3064"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3062"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3060"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3058"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3056"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3054"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3052"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3050"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3048"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3046"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3044"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3042"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3040"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3038"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2742"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2740"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2738"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2736"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2734"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2732"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2730"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2728"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2726"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2724"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5698"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5706"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5708"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5778"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5780"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5837"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5843"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5875"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,97.47953,-386.75803)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,567.61653,-422.63473)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,581.63153,-572.11373)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,38.74253,-525.79773)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,38.74253,-525.79773)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,23.33053,-511.84973)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-38.29847,-524.23073)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4574599,-2.5782549e-2,-1.3335564e-2,0.3468039,127.84431,-43.58718)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3288984,0,0,0.5119633,122.44213,-61.346999)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4137442,0,0,0.3207151,130.58926,-35.27367)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.344763,-1.9963088e-2,3.0575828e-2,0.5322547,109.51959,-60.09664)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.4785954,1.3085561e-2,1.258014e-2,0.6158094,453.51336,-94.784011)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1269482,-9.6347085e-3,-1.8551036e-2,0.1885515,325.98839,25.563103)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.4330485e-2,-1.0788922e-2,1.6382361e-2,0.1580006,208.11025,34.619692)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4931038,0,0,0.3320148,122.40413,-57.088171)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2483526,0,0,0.1577943,189.38092,13.905801)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4337924,0,0,1.2339181,169.24547,36.645773)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-193.0161,1042.5098)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,-181.30846,1029.2878)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-220.25171,988.00876)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,-170.4184,1041.3317)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,-101.87887,1036.0658)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,-27.73024,966.09074)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-227.74335,986.2595)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-215.49252,1000.6927)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-220.22962,985.53249)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-217.08855,995.85883)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter7170">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.7130516"
+ id="feGaussianBlur7172" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3305"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.09986,-22.182378)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3307"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.24092,-32.508723)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.50382,-17.348538)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.26302,-30.032453)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.680234,11.246562)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0274,24.468582)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182413)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508753)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348573)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781743)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950503)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290497)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032483)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802383,11.246527)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468547)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,976.83077)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,963.60875)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,922.32974)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,975.65272)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,970.38682)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,900.41172)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,920.58048)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,935.01365)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,919.85347)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,930.17981)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3922"
+ x1="67.137154"
+ y1="998.78058"
+ x2="72.335526"
+ y2="998.78058"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468587)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246567)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032443)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290537)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024637)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950463)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781703)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348533)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508713)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182373)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3975"
+ x1="67.137154"
+ y1="46.418354"
+ x2="72.335526"
+ y2="46.418354"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3983"
+ x1="67.137154"
+ y1="46.418358"
+ x2="72.335526"
+ y2="46.418358"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3991"
+ x1="67.137146"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3999"
+ x1="67.137154"
+ y1="46.418316"
+ x2="72.335526"
+ y2="46.418316"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46858)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24656)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03245)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29053)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02463)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95047)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.78171)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34854)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50872)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18238)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4046"
+ x1="67.137154"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468537)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246517)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032493)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024587)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4070"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950513)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781753)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4076"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348583)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508763)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182423)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4093"
+ x1="67.137154"
+ y1="46.418304"
+ x2="72.335526"
+ y2="46.418304"
+ gradientUnits="userSpaceOnUse" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.4518985"
+ inkscape:cx="39.676678"
+ inkscape:cy="69.184869"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7632"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,952.64015)" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,968.62518 C 33.465843,968.82227 26.655203,980.81042 24.186543,989.81268 C 21.989543,991.14047 20.405293,994.7066 20.405293,998.93768 C 20.405293,1003.347 22.125543,1007.0691 24.467793,1008.2502 C 26.322543,1013.3949 29.382433,1016.3741 32.342793,1018.0939 C 29.790303,1022.7945 25.750033,1026.7822 22.624043,1031.5628 C 21.322503,1033.5386 20.217143,1035.713 19.311543,1038.0314 L 35.499043,1038.0314 C 35.475523,1038.0772 35.459853,1038.1427 35.436543,1038.1878 L 75.092793,1038.1878 C 75.070433,1038.1375 75.052703,1038.0819 75.030293,1038.0314 L 85.842793,1038.0314 C 84.413933,1034.691 82.588343,1031.5037 80.280293,1028.6564 C 76.650353,1024.321 74.638473,1020.7607 73.499043,1017.1564 L 75.030293,1017.3127 C 75.031073,1017.3127 75.029513,1017.2822 75.030293,1017.2814 C 77.915013,1017.1943 80.076483,1013.094 81.436543,1008.8127 C 84.068413,1007.9909 86.092793,1004.0132 86.092793,999.25018 C 86.092793,994.65347 84.213403,990.81493 81.717793,989.81268 C 79.131393,980.51339 71.958733,968.41709 52.186543,968.62518 z"
+ id="path7602" />
+ <svg:path
+ style="fill:url(#linearGradient3922);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,1012.346 L 67.311584,1011.905 L 67.972878,985.45319 C 67.972878,985.45319 72.161095,984.79189 72.161095,985.67362 C 72.161095,986.55535 71.940663,1012.346 71.720226,1012.346 z"
+ id="path7604" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,971.74923 C 30.285544,972.10647 31.377356,992.54323 31.499117,1003.6014 C 31.605213,1013.3978 24.299753,1018.9513 19.306963,1026.5866 C 18.005406,1028.5625 16.905599,1030.7369 16,1033.0552 L 82.520828,1033.0552 C 81.09197,1029.7148 79.250653,1026.5267 76.942599,1023.6794 C 70.852537,1016.4055 69.300727,1011.3338 68.820553,1004.5281 C 68.49377,996.76934 74.305134,973.60504 52.37659,971.84008 C 51.33548,971.75702 50.355648,971.73166 49.41486,971.74923 z"
+ id="path7606" />
+ <svg:path
+ d="M 39.422413,982.91171 C 39.646391,988.73645 46.056486,993.80938 53.739757,994.24241 C 61.423027,994.67544 67.469981,990.30459 67.246003,984.47985 C 67.022025,978.65511 60.611936,973.58218 52.928666,973.14915 C 45.245395,972.71612 39.198435,977.08697 39.422413,982.91171 z"
+ id="path7608"
+ style="fill:url(#linearGradient3141);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3137);stroke:none;stroke-width:1.25"
+ d="M 51.649785,1004.0557 C 46.632534,1004.0788 41.961725,1005.61 41.183793,1008.9332 C 39.422099,1016.4591 34.99238,1027.6847 32.116901,1033.2277 L 71.782284,1033.2277 C 68.731342,1026.3843 65.214664,1017.8009 65.113848,1010.746 C 65.113848,1006.4665 58.100534,1004.0259 51.649785,1004.0557 z"
+ id="path7610" />
+ <svg:path
+ id="path7612"
+ d="M 41.867705,1017.8171 C 42.004403,1025.5638 47.045412,1027.3911 53.424847,1027.3911 C 59.804502,1027.3911 64.435181,1026.2477 64.982215,1017.8171 C 64.982215,1012.5322 59.804502,1009.4739 53.424847,1009.4739 C 47.045412,1009.4739 41.867705,1012.5322 41.867705,1017.8171 z"
+ style="font-size:12px;fill:url(#linearGradient3133);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,996.92738 C 57.750179,1000.7136 59.562029,1003.8982 62.014559,1004.0403 C 64.467096,1004.1822 66.631591,1001.2279 66.849104,997.44164 C 67.06661,993.65534 65.254761,990.47081 62.80223,990.3288 C 60.349693,990.18679 58.185198,993.14107 57.967692,996.92738 z"
+ id="path7614"
+ style="fill:url(#linearGradient3129);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,997.21733 C 53.426911,1001.598 50.594412,1005.0738 47.189836,1004.9807 C 43.785255,1004.8877 41.09785,1001.2609 41.187346,996.88023 C 41.213569,995.59651 41.475341,994.3905 41.918035,993.32923 C 42.986031,990.76891 45.107011,989.05103 47.51391,989.11684 C 49.477103,989.17052 51.201835,990.39915 52.293182,992.26978 C 53.094453,993.6432 53.554288,995.36269 53.516401,997.21733 z"
+ id="path7616"
+ style="fill:url(#linearGradient3125);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,998.20771 C 50.747175,1000.6123 49.53419,1002.5644 47.986473,1002.5677 C 46.438762,1002.5711 45.142409,1000.6243 45.090992,998.21971 C 45.039569,995.81503 46.25256,993.86298 47.800271,993.85967 C 49.347988,993.85636 50.644341,995.80304 50.695758,998.20771 z"
+ id="path7618"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,998.23306 C 60.31233,1000.2236 61.060922,1001.9475 62.178434,1002.0834 C 63.29594,1002.2193 64.359198,1000.7158 64.553278,998.72529 C 64.747352,996.73469 63.998766,995.0108 62.881254,994.87488 C 61.763742,994.73895 60.70049,996.24246 60.50641,998.23306 z"
+ id="path7620"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,996.83257 C 50.183599,998.17387 49.5585,999.31677 48.65543,999.38535 C 47.75236,999.45385 46.913296,998.42207 46.781331,997.08077 C 46.649361,995.73947 47.274466,994.59657 48.177535,994.52803 C 49.080605,994.45949 49.91967,995.49127 50.051634,996.83257 z"
+ id="path7622"
+ style="fill:url(#linearGradient3120);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,997.17759 C 61.335631,998.30156 61.785145,999.27493 62.456178,999.35165 C 63.127217,999.42845 63.765671,998.57949 63.88221,997.45552 C 63.998755,996.33155 63.549246,995.35817 62.878207,995.28142 C 62.207169,995.20467 61.568714,996.05362 61.452175,997.17759 z"
+ id="path7624"
+ style="fill:url(#linearGradient3117);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7626"
+ d="M 62.613319,1002.0206 C 60.931882,1000.428 56.776168,995.65301 48.977143,1000.6667 C 47.527446,1001.6101 46.351121,1001.6964 43.56112,1002.8911 C 37.979229,1005.1848 40.648074,1010.7158 46.55933,1012.5625 C 49.090309,1013.3832 51.390723,1016.4574 56.000266,1016.1946 C 59.937182,1015.9648 60.968815,1013.4011 63.387105,1011.982 C 67.68515,1009.5562 68.319424,1006.2759 65.998538,1004.5351 C 63.67742,1002.7944 62.76953,1002.1686 62.613319,1002.0206 z"
+ style="fill:url(#linearGradient3114);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,1006.2906 L 43.491399,1006.4724 C 45.816518,1006.6091 50.876337,1011.6689 56.210487,1011.6689 C 61.544636,1011.6689 64.692987,1006.7448 65.513591,1006.7448 C 65.513591,1006.7448 58.736912,1012.146 56.090476,1011.5949 C 50.311264,1011.1268 43.61859,1006.2906 43.61859,1006.2906 z"
+ id="path7628"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7630"
+ d="M 59.962359,1001.5842 C 59.117765,1000.8252 56.453617,998.7423 52.920531,1000.8746 C 52.176143,1001.2968 51.407416,1001.7564 50.264187,1002.3841 C 47.999712,1003.7012 49.121318,1005.5992 51.834266,1006.8001 C 53.065415,1007.3041 55.095074,1008.4162 56.640569,1008.3384 C 58.358015,1008.1807 59.469096,1007.0605 60.60736,1006.3311 C 62.695518,1004.9516 62.568716,1003.8379 61.598734,1002.9108 C 60.865458,1002.274 60.04083,1001.6546 59.962359,1001.5842 z"
+ style="fill:url(#linearGradient3110);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,994.61023 C 19.46429,994.61023 18.832179,963.95297 48.857331,963.63691 C 78.882477,963.32086 79.830637,991.44968 79.830637,994.92628 C 79.830637,998.40288 76.986149,1012.3093 71.613229,1012.3093 C 71.929284,997.45471 71.929284,985.76071 71.929284,985.76071 L 37.479379,985.44465 L 37.163323,1015.4698 C 37.163323,1015.4698 20.728506,1015.7858 19.46429,994.61023 z"
+ id="path7634"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,1009.1607 C 32.454958,1009.1607 42.551251,1019.7306 46.855239,1021.5682 C 51.159221,1023.4059 59.564639,1022.5007 59.564639,1022.5007 C 59.564639,1022.5007 60.75917,1021.8486 60.772833,1020.7355 C 60.788032,1019.4979 59.712187,1018.6803 59.712187,1018.6803 C 59.712187,1018.6803 50.840468,1019.1479 46.883049,1017.3225 C 42.925637,1015.497 34.593591,1006.2024 34.593591,1006.2024 C 34.593591,1006.2024 33.432813,1005.7718 32.8739,1006.6269 C 32.351775,1007.4257 32.455249,1009.1164 32.454958,1009.1607 z"
+ id="path7636"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7638"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,952.32756)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262997 C 33.465843,16.460087 26.655203,28.448237 24.186543,37.450497 C 21.989543,38.778287 20.405293,42.344417 20.405293,46.575497 C 20.405293,50.984867 22.125543,54.706967 24.467793,55.888067 C 26.322543,61.032767 29.382433,64.011867 32.342793,65.731767 C 29.790303,70.432367 25.750033,74.420067 22.624043,79.200567 C 21.322503,81.176467 20.217143,83.350867 19.311543,85.669267 L 35.499043,85.669267 C 35.475523,85.714967 35.459853,85.780567 35.436543,85.825567 L 75.092793,85.825567 C 75.070433,85.775367 75.052703,85.719667 75.030293,85.669267 L 85.842793,85.669267 C 84.413933,82.328867 82.588343,79.141567 80.280293,76.294267 C 76.650353,71.958767 74.638473,68.398567 73.499043,64.794267 L 75.030293,64.950567 C 75.031073,64.950567 75.029513,64.919967 75.030293,64.919267 C 77.915013,64.832067 80.076483,60.731867 81.436543,56.450567 C 84.068413,55.628767 86.092793,51.651067 86.092793,46.887997 C 86.092793,42.291287 84.213403,38.452747 81.717793,37.450497 C 79.131393,28.151207 71.958733,16.054907 52.186543,16.262997 z"
+ id="path7542" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7572"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779668)" />
+ <svg:path
+ style="fill:url(#linearGradient3975);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983767 L 67.311584,59.542867 L 67.972878,33.091007 C 67.972878,33.091007 72.161095,32.429707 72.161095,33.311437 C 72.161095,34.193167 71.940663,59.983767 71.720226,59.983767 z"
+ id="path7544" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.387047 C 30.285544,19.744287 31.377356,40.181047 31.499117,51.239267 C 31.605213,61.035667 24.299753,66.589167 19.306963,74.224467 C 18.005406,76.200367 16.905599,78.374667 16,80.693067 L 82.520828,80.693067 C 81.09197,77.352667 79.250653,74.164567 76.942599,71.317267 C 70.852537,64.043367 69.300727,58.971667 68.820553,52.165967 C 68.49377,44.407157 74.305134,21.242857 52.37659,19.477897 C 51.33548,19.394837 50.355648,19.369477 49.41486,19.387047 z"
+ id="path7546" />
+ <svg:path
+ d="M 39.422413,30.549527 C 39.646391,36.374267 46.056486,41.447197 53.739757,41.880227 C 61.423027,42.313257 67.469981,37.942407 67.246003,32.117667 C 67.022025,26.292927 60.611936,21.219997 52.928666,20.786967 C 45.245395,20.353937 39.198435,24.724787 39.422413,30.549527 z"
+ id="path7548"
+ style="fill:url(#linearGradient3964);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3961);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693567 C 46.632534,51.716667 41.961725,53.247767 41.183793,56.571067 C 39.422099,64.096967 34.99238,75.322567 32.116901,80.865467 L 71.782284,80.865467 C 68.731342,74.022067 65.214664,65.438767 65.113848,58.383867 C 65.113848,54.104367 58.100534,51.663767 51.649785,51.693567 z"
+ id="path7550" />
+ <svg:path
+ id="path7552"
+ d="M 41.867705,65.454967 C 42.004403,73.201567 47.045412,75.028967 53.424847,75.028967 C 59.804502,75.028967 64.435181,73.885467 64.982215,65.454967 C 64.982215,60.170067 59.804502,57.111767 53.424847,57.111767 C 47.045412,57.111767 41.867705,60.170067 41.867705,65.454967 z"
+ style="font-size:12px;fill:url(#linearGradient3958);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565197 C 57.750179,48.351467 59.562029,51.536067 62.014559,51.678067 C 64.467096,51.820067 66.631591,48.865767 66.849104,45.079457 C 67.06661,41.293157 65.254761,38.108627 62.80223,37.966617 C 60.349693,37.824607 58.185198,40.778887 57.967692,44.565197 z"
+ id="path7554"
+ style="fill:url(#linearGradient3955);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855147 C 53.426911,49.235867 50.594412,52.711667 47.189836,52.618567 C 43.785255,52.525467 41.09785,48.898767 41.187346,44.518047 C 41.213569,43.234327 41.475341,42.028317 41.918035,40.967047 C 42.986031,38.406727 45.107011,36.688847 47.51391,36.754657 C 49.477103,36.808337 51.201835,38.036967 52.293182,39.907597 C 53.094453,41.281017 53.554288,43.000507 53.516401,44.855147 z"
+ id="path7556"
+ style="fill:url(#linearGradient3952);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845527 C 50.747175,48.250167 49.53419,50.202267 47.986473,50.205567 C 46.438762,50.208867 45.142409,48.262167 45.090992,45.857527 C 45.039569,43.452847 46.25256,41.500797 47.800271,41.497487 C 49.347988,41.494177 50.644341,43.440857 50.695758,45.845527 z"
+ id="path7558"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870877 C 60.31233,47.861467 61.060922,49.585367 62.178434,49.721267 C 63.29594,49.857167 64.359198,48.353667 64.553278,46.363107 C 64.747352,44.372507 63.998766,42.648617 62.881254,42.512697 C 61.763742,42.376767 60.70049,43.880277 60.50641,45.870877 z"
+ id="path7560"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470387 C 50.183599,45.811687 49.5585,46.954587 48.65543,47.023167 C 47.75236,47.091667 46.913296,46.059887 46.781331,44.718587 C 46.649361,43.377287 47.274466,42.234387 48.177535,42.165847 C 49.080605,42.097307 49.91967,43.129087 50.051634,44.470387 z"
+ id="path7562"
+ style="fill:url(#linearGradient3947);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815407 C 61.335631,45.939377 61.785145,46.912747 62.456178,46.989467 C 63.127217,47.066267 63.765671,46.217307 63.88221,45.093337 C 63.998755,43.969367 63.549246,42.995987 62.878207,42.919237 C 62.207169,42.842487 61.568714,43.691437 61.452175,44.815407 z"
+ id="path7564"
+ style="fill:url(#linearGradient3944);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7566"
+ d="M 62.613319,49.658467 C 60.931882,48.065767 56.776168,43.290827 48.977143,48.304567 C 47.527446,49.247967 46.351121,49.334267 43.56112,50.528967 C 37.979229,52.822567 40.648074,58.353667 46.55933,60.200267 C 49.090309,61.021067 51.390723,64.095267 56.000266,63.832467 C 59.937182,63.602667 60.968815,61.038967 63.387105,59.619867 C 67.68515,57.194067 68.319424,53.913767 65.998538,52.172967 C 63.67742,50.432267 62.76953,49.806467 62.613319,49.658467 z"
+ style="fill:url(#linearGradient3941);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928467 L 43.491399,54.110167 C 45.816518,54.246867 50.876337,59.306767 56.210487,59.306767 C 61.544636,59.306767 64.692987,54.382667 65.513591,54.382667 C 65.513591,54.382667 58.736912,59.783867 56.090476,59.232767 C 50.311264,58.764667 43.61859,53.928467 43.61859,53.928467 z"
+ id="path7568"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7570"
+ d="M 59.962359,49.221967 C 59.117765,48.462967 56.453617,46.380117 52.920531,48.512467 C 52.176143,48.934667 51.407416,49.394267 50.264187,50.021967 C 47.999712,51.339067 49.121318,53.237067 51.834266,54.437967 C 53.065415,54.941967 55.095074,56.054067 56.640569,55.976267 C 58.358015,55.818467 59.469096,54.698367 60.60736,53.968867 C 62.695518,52.589467 62.568716,51.475767 61.598734,50.548567 C 60.865458,49.911867 60.04083,49.292467 59.962359,49.221967 z"
+ style="fill:url(#linearGradient3937);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.248047 C 19.46429,42.248047 18.832179,11.590787 48.857331,11.274727 C 78.882477,10.958677 79.830637,39.087497 79.830637,42.564097 C 79.830637,46.040697 76.986149,59.947067 71.613229,59.947067 C 71.929284,45.092527 71.929284,33.398527 71.929284,33.398527 L 37.479379,33.082467 L 37.163323,63.107667 C 37.163323,63.107667 20.728506,63.423667 19.46429,42.248047 z"
+ id="path7574"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798467 C 32.454958,56.798467 42.551251,67.368467 46.855239,69.206067 C 51.159221,71.043767 59.564639,70.138567 59.564639,70.138567 C 59.564639,70.138567 60.75917,69.486467 60.772833,68.373367 C 60.788032,67.135767 59.712187,66.318167 59.712187,66.318167 C 59.712187,66.318167 50.840468,66.785767 46.883049,64.960267 C 42.925637,63.134867 34.593591,53.840267 34.593591,53.840267 C 34.593591,53.840267 33.432813,53.409667 32.8739,54.264767 C 32.351775,55.063567 32.455249,56.754267 32.454958,56.798467 z"
+ id="path7576"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7578"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4623202e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ id="path7280" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7312"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)" />
+ <svg:path
+ style="fill:url(#linearGradient3983);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ id="path7284" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ id="path7286" />
+ <svg:path
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z"
+ id="path7288"
+ style="fill:url(#linearGradient3187);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ id="path7290" />
+ <svg:path
+ id="path7292"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ style="font-size:12px;fill:url(#linearGradient3181);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 58.212161,43.342853 C 57.994648,47.129123 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.645571,47.675228 66.849104,43.857113 C 62.774618,43.123083 65.397968,43.78355 62.945437,43.64154 C 60.4929,43.49953 62.924184,43.097752 58.212161,43.342853 z"
+ id="path7294"
+ style="fill:url(#linearGradient3178);stroke:none;stroke-width:1.17873001"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 40.771238,46.928933 41.226571,43.387175 C 47.82628,42.901247 45.798475,42.220563 48.205374,42.286373 C 50.168567,42.340053 46.718234,42.710568 52.984646,42.673457 C 54.131649,46.812734 53.554288,43.00051 53.516401,44.85515 z"
+ id="path7296"
+ style="fill:url(#linearGradient3175);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z"
+ id="path7298"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z"
+ id="path7300"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z"
+ id="path7302"
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z"
+ id="path7304"
+ style="fill:url(#linearGradient3167);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7306"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ style="fill:url(#linearGradient3163);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ id="path7308"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7310"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ style="fill:url(#linearGradient3159);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3155);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ id="path7314"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ id="path7316"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7318"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186538,16.262992 C 33.465838,16.460082 26.655198,28.448232 24.186538,37.450492 C 21.989538,38.778282 20.405288,42.344412 20.405288,46.575492 C 20.405288,50.984862 22.125538,54.706962 24.467788,55.888062 C 26.322538,61.032762 29.382428,64.011862 32.342788,65.731762 C 29.790298,70.432362 25.750028,74.420062 22.624038,79.200562 C 21.322498,81.176462 20.217138,83.350862 19.311538,85.669262 L 35.499038,85.669262 C 35.475518,85.714962 35.459848,85.780562 35.436538,85.825562 L 75.092788,85.825562 C 75.070428,85.775362 75.052698,85.719662 75.030288,85.669262 L 85.842788,85.669262 C 84.413928,82.328862 82.588338,79.141562 80.280288,76.294262 C 76.650348,71.958762 74.638468,68.398562 73.499038,64.794262 L 75.030288,64.950562 C 75.031068,64.950562 75.029508,64.919962 75.030288,64.919262 C 77.915008,64.832062 80.076478,60.731862 81.436538,56.450562 C 84.068408,55.628762 86.092788,51.651062 86.092788,46.887992 C 86.092788,42.291282 84.213398,38.452742 81.717788,37.450492 C 79.131388,28.151202 71.958728,16.054902 52.186538,16.262992 z"
+ id="path3267" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3297"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.43084,0.2779624)" />
+ <svg:path
+ style="fill:url(#linearGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720221,59.983762 L 67.311579,59.542862 L 67.972873,33.091002 C 67.972873,33.091002 72.16109,32.429702 72.16109,33.311432 C 72.16109,34.193162 71.940658,59.983762 71.720221,59.983762 z"
+ id="path3269" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.414855,19.387042 C 30.285539,19.744282 31.377351,40.181042 31.499112,51.239262 C 31.605208,61.035662 24.299748,66.589162 19.306958,74.224462 C 18.005401,76.200362 16.905594,78.374662 15.999995,80.693062 L 82.520823,80.693062 C 81.091965,77.352662 79.250648,74.164562 76.942594,71.317262 C 70.852532,64.043362 69.300722,58.971662 68.820548,52.165962 C 68.493765,44.407152 74.305129,21.242852 52.376585,19.477892 C 51.335475,19.394832 50.355643,19.369472 49.414855,19.387042 z"
+ id="path3271" />
+ <svg:path
+ d="M 39.422408,30.549522 C 39.646386,36.374262 46.056481,41.447192 53.739752,41.880222 C 61.423022,42.313252 67.469976,37.942402 67.245998,32.117662 C 67.02202,26.292922 60.611931,21.219992 52.928661,20.786962 C 45.24539,20.353932 39.19843,24.724782 39.422408,30.549522 z"
+ id="path3273"
+ style="fill:url(#linearGradient3305);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3307);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.64978,51.693562 C 46.632529,51.716662 41.96172,53.247762 41.183788,56.571062 C 39.422094,64.096962 34.992375,75.322562 32.116896,80.865462 L 71.782279,80.865462 C 68.731337,74.022062 65.214659,65.438762 65.113843,58.383862 C 65.113843,54.104362 58.100529,51.663762 51.64978,51.693562 z"
+ id="path3275" />
+ <svg:path
+ id="path3277"
+ d="M 41.8677,65.454962 C 42.004398,73.201562 47.045407,75.028962 53.424842,75.028962 C 59.804497,75.028962 64.435176,73.885462 64.98221,65.454962 C 64.98221,60.170062 59.804497,57.111762 53.424842,57.111762 C 47.045407,57.111762 41.8677,60.170062 41.8677,65.454962 z"
+ style="font-size:12px;fill:url(#linearGradient3309);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ id="path3291"
+ d="M 62.613314,49.658462 C 60.931877,48.065762 56.776163,43.290822 48.977138,48.304562 C 47.527441,49.247962 46.351116,49.334262 43.561115,50.528962 C 37.979224,52.822562 40.648069,58.353662 46.559325,60.200262 C 49.090304,61.021062 51.390718,64.095262 56.000261,63.832462 C 59.937177,63.602662 60.96881,61.038962 63.3871,59.619862 C 67.685145,57.194062 68.319419,53.913762 65.998533,52.172962 C 63.677415,50.432262 62.769525,49.806462 62.613314,49.658462 z"
+ style="fill:url(#linearGradient3321);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.618585,53.928462 L 43.491394,54.110162 C 45.816513,54.246862 50.876332,59.306762 56.210482,59.306762 C 61.544631,59.306762 64.692982,54.382662 65.513586,54.382662 C 65.513586,54.382662 58.736907,59.783862 56.090471,59.232762 C 50.311259,58.764662 43.618585,53.928462 43.618585,53.928462 z"
+ id="path3293"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3295"
+ d="M 59.962354,49.221962 C 59.11776,48.462962 56.453612,46.380112 52.920526,48.512462 C 52.176138,48.934662 51.407411,49.394262 50.264182,50.021962 C 47.999707,51.339062 49.121313,53.237062 51.834261,54.437962 C 53.06541,54.941962 55.095069,56.054062 56.640564,55.976262 C 58.35801,55.818462 59.469091,54.698362 60.607355,53.968862 C 62.695513,52.589462 62.568711,51.475762 61.598729,50.548562 C 60.865453,49.911862 60.040825,49.292462 59.962354,49.221962 z"
+ style="fill:url(#linearGradient3325);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3327);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.464285,42.248042 C 19.464285,42.248042 18.832174,11.590782 48.857326,11.274722 C 78.882472,10.958672 79.830632,39.087492 79.830632,42.564092 C 79.830632,46.040692 76.986144,59.947062 71.613224,59.947062 C 71.929279,45.092522 71.929279,33.398522 71.929279,33.398522 L 37.479374,33.082462 L 37.163318,63.107662 C 37.163318,63.107662 20.728501,63.423662 19.464285,42.248042 z"
+ id="path3299"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454953,56.798462 C 32.454953,56.798462 42.551246,67.368462 46.855234,69.206062 C 51.159216,71.043762 59.564634,70.138562 59.564634,70.138562 C 59.564634,70.138562 60.759165,69.486462 60.772828,68.373362 C 60.788027,67.135762 59.712182,66.318162 59.712182,66.318162 C 59.712182,66.318162 50.840463,66.785762 46.883044,64.960262 C 42.925632,63.134862 34.593586,53.840262 34.593586,53.840262 C 34.593586,53.840262 33.432808,53.409662 32.873895,54.264762 C 32.35177,55.063562 32.455244,56.754262 32.454953,56.798462 z"
+ id="path3301"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3303"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4627617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3330">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3332"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3334"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3336"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186543,16.262957 C 33.465843,16.460047 26.655203,28.448197 24.186543,37.450457 C 21.989543,38.778251 20.405293,42.344381 20.405293,46.575461 C 20.405293,50.984831 22.125543,54.706931 24.467793,55.888031 C 26.322543,61.032731 29.382433,64.011831 32.342793,65.731731 C 29.790303,70.432331 25.750033,74.420031 22.624043,79.200531 C 21.322503,81.176431 20.217143,83.350831 19.311543,85.669231 L 35.499043,85.669231 C 35.475523,85.714931 35.459853,85.780531 35.436543,85.825531 L 75.092793,85.825531 C 75.070433,85.775331 75.052703,85.719631 75.030293,85.669231 L 85.842793,85.669231 C 84.413933,82.328831 82.588343,79.141531 80.280293,76.294231 C 76.650353,71.958731 74.638473,68.398531 73.499043,64.794231 L 75.030293,64.950531 C 75.031073,64.950531 75.029513,64.919931 75.030293,64.919231 C 77.915013,64.832031 80.076483,60.731831 81.436543,56.450531 C 84.068413,55.628731 86.092793,51.651031 86.092793,46.887961 C 86.092793,42.291251 84.213403,38.452707 81.717793,37.450457 C 79.131393,28.151167 71.958733,16.054867 52.186543,16.262957 z"
+ id="path3338" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3369"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779274)" />
+ <svg:path
+ style="fill:url(#linearGradient3999);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720226,59.983731 L 67.311584,59.542831 L 67.972878,33.090967 C 67.972878,33.090967 72.161095,32.429667 72.161095,33.311397 C 72.161095,34.193127 71.940663,59.983731 71.720226,59.983731 z"
+ id="path3340" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.41486,19.387007 C 30.285544,19.744247 31.377356,40.181011 31.499117,51.239231 C 31.605213,61.035631 24.299753,66.589131 19.306963,74.224431 C 18.005406,76.200331 16.905599,78.374631 16,80.693031 L 82.520828,80.693031 C 81.09197,77.352631 79.250653,74.164531 76.942599,71.317231 C 70.852537,64.043331 69.300727,58.971631 68.820553,52.165931 C 68.49377,44.407121 74.305134,21.242817 52.37659,19.477857 C 51.33548,19.394797 50.355648,19.369437 49.41486,19.387007 z"
+ id="path3343" />
+ <svg:path
+ d="M 39.422413,30.549487 C 39.646391,36.374227 46.056486,41.447161 53.739757,41.880191 C 61.423027,42.313221 67.469981,37.942367 67.246003,32.117627 C 67.022025,26.292887 60.611936,21.219957 52.928666,20.786927 C 45.245395,20.353897 39.198435,24.724747 39.422413,30.549487 z"
+ id="path3345"
+ style="fill:url(#linearGradient3377);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3379);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.649785,51.693531 C 46.632534,51.716631 41.961725,53.247731 41.183793,56.571031 C 39.422099,64.096931 34.99238,75.322531 32.116901,80.865431 L 71.782284,80.865431 C 68.731342,74.022031 65.214664,65.438731 65.113848,58.383831 C 65.113848,54.104331 58.100534,51.663731 51.649785,51.693531 z"
+ id="path3347" />
+ <svg:path
+ id="path3349"
+ d="M 41.867705,65.454931 C 42.004403,73.201531 47.045412,75.028931 53.424847,75.028931 C 59.804502,75.028931 64.435181,73.885431 64.982215,65.454931 C 64.982215,60.170031 59.804502,57.111731 53.424847,57.111731 C 47.045412,57.111731 41.867705,60.170031 41.867705,65.454931 z"
+ style="font-size:12px;fill:url(#linearGradient3381);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ d="M 58.212161,43.342814 C 57.994648,47.129084 59.562029,51.536031 62.014559,51.678031 C 64.467096,51.820031 66.645571,47.675189 66.849104,43.857074 C 62.774618,43.123044 65.397968,43.783511 62.945437,43.641501 C 60.4929,43.499491 62.924184,43.097713 58.212161,43.342814 z"
+ id="path3351"
+ style="fill:url(#linearGradient3383);stroke:none;stroke-width:1.17873001;display:inline"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.855111 C 53.426911,49.235831 50.594412,52.711631 47.189836,52.618531 C 43.785255,52.525431 41.09785,48.898731 41.187346,44.518011 C 41.213569,43.234291 40.771238,46.928894 41.226571,43.387136 C 47.82628,42.901208 45.798475,42.220524 48.205374,42.286334 C 50.168567,42.340014 46.718234,42.710529 52.984646,42.673418 C 54.131649,46.812695 53.554288,43.000471 53.516401,44.855111 z"
+ id="path3353"
+ style="fill:url(#linearGradient3385);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 50.695758,45.845491 C 50.747175,48.250131 49.53419,50.202231 47.986473,50.205531 C 46.438762,50.208831 45.142409,48.262131 45.090992,45.857491 C 45.039569,43.452811 46.25256,41.500761 47.800271,41.497451 C 49.347988,41.494141 50.644341,43.440821 50.695758,45.845491 z"
+ id="path3355"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 60.50641,45.870841 C 60.31233,47.861431 61.060922,49.585331 62.178434,49.721231 C 63.29594,49.857131 64.359198,48.353631 64.553278,46.363071 C 64.747352,44.372471 63.998766,42.648581 62.881254,42.512661 C 61.763742,42.376731 60.70049,43.880241 60.50641,45.870841 z"
+ id="path3357"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 50.051634,44.470351 C 50.183599,45.811651 49.5585,46.954551 48.65543,47.023131 C 47.75236,47.091631 46.913296,46.059851 46.781331,44.718551 C 46.649361,43.377251 47.274466,42.234351 48.177535,42.165811 C 49.080605,42.097271 49.91967,43.129051 50.051634,44.470351 z"
+ id="path3359"
+ style="fill:url(#linearGradient3387);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 61.452175,44.815371 C 61.335631,45.939341 61.785145,46.912711 62.456178,46.989431 C 63.127217,47.066231 63.765671,46.217271 63.88221,45.093301 C 63.998755,43.969331 63.549246,42.995951 62.878207,42.919201 C 62.207169,42.842451 61.568714,43.691401 61.452175,44.815371 z"
+ id="path3361"
+ style="fill:url(#linearGradient3389);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3363"
+ d="M 62.613319,49.658431 C 60.931882,48.065731 56.776168,43.290791 48.977143,48.304531 C 47.527446,49.247931 46.351121,49.334231 43.56112,50.528931 C 37.979229,52.822531 40.648074,58.353631 46.55933,60.200231 C 49.090309,61.021031 51.390723,64.095231 56.000266,63.832431 C 59.937182,63.602631 60.968815,61.038931 63.387105,59.619831 C 67.68515,57.194031 68.319424,53.913731 65.998538,52.172931 C 63.67742,50.432231 62.76953,49.806431 62.613319,49.658431 z"
+ style="fill:url(#linearGradient3391);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.61859,53.928431 L 43.491399,54.110131 C 45.816518,54.246831 50.876337,59.306731 56.210487,59.306731 C 61.544636,59.306731 64.692987,54.382631 65.513591,54.382631 C 65.513591,54.382631 58.736912,59.783831 56.090476,59.232731 C 50.311264,58.764631 43.61859,53.928431 43.61859,53.928431 z"
+ id="path3365"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3367"
+ d="M 59.962359,49.221931 C 59.117765,48.462931 56.453617,46.380081 52.920531,48.512431 C 52.176143,48.934631 51.407416,49.394231 50.264187,50.021931 C 47.999712,51.339031 49.121318,53.237031 51.834266,54.437931 C 53.065415,54.941931 55.095074,56.054031 56.640569,55.976231 C 58.358015,55.818431 59.469096,54.698331 60.60736,53.968831 C 62.695518,52.589431 62.568716,51.475731 61.598734,50.548531 C 60.865458,49.911831 60.04083,49.292431 59.962359,49.221931 z"
+ style="fill:url(#linearGradient3393);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3395);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.46429,42.248011 C 19.46429,42.248011 18.832179,11.590747 48.857331,11.274687 C 78.882477,10.958637 79.830637,39.087461 79.830637,42.564061 C 79.830637,46.040661 76.986149,59.947031 71.613229,59.947031 C 71.929284,45.092491 71.929284,33.398487 71.929284,33.398487 L 37.479379,33.082427 L 37.163323,63.107631 C 37.163323,63.107631 20.728506,63.423631 19.46429,42.248011 z"
+ id="path3371"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454958,56.798431 C 32.454958,56.798431 42.551251,67.368431 46.855239,69.206031 C 51.159221,71.043731 59.564639,70.138531 59.564639,70.138531 C 59.564639,70.138531 60.75917,69.486431 60.772833,68.373331 C 60.788032,67.135731 59.712187,66.318131 59.712187,66.318131 C 59.712187,66.318131 50.840468,66.785731 46.883049,64.960231 C 42.925637,63.134831 34.593591,53.840231 34.593591,53.840231 C 34.593591,53.840231 33.432813,53.409631 32.8739,54.264731 C 32.351775,55.063531 32.455249,56.754231 32.454958,56.798431 z"
+ id="path3373"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3375"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4662617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3398">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3400"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3402"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3404"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.26299 C 33.465843,16.46008 26.655203,28.44823 24.186543,37.45049 C 21.989543,38.77828 20.405293,42.34441 20.405293,46.57549 C 20.405293,50.98486 22.125543,54.70696 24.467793,55.88806 C 26.322543,61.03276 29.382433,64.01186 32.342793,65.73176 C 29.790303,70.43236 25.750033,74.42006 22.624043,79.20056 C 21.322503,81.17646 20.217143,83.35086 19.311543,85.66926 L 35.499043,85.66926 C 35.475523,85.71496 35.459853,85.78056 35.436543,85.82556 L 75.092793,85.82556 C 75.070433,85.77536 75.052703,85.71966 75.030293,85.66926 L 85.842793,85.66926 C 84.413933,82.32886 82.588343,79.14156 80.280293,76.29426 C 76.650353,71.95876 74.638473,68.39856 73.499043,64.79426 L 75.030293,64.95056 C 75.031073,64.95056 75.029513,64.91996 75.030293,64.91926 C 77.915013,64.83206 80.076483,60.73186 81.436543,56.45056 C 84.068413,55.62876 86.092793,51.65106 86.092793,46.88799 C 86.092793,42.29128 84.213403,38.45274 81.717793,37.45049 C 79.131393,28.1512 71.958733,16.0549 52.186543,16.26299 z"
+ id="path3408" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3448"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779597)" />
+ <svg:path
+ style="fill:url(#linearGradient4046);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98376 L 67.311584,59.54286 L 67.972878,33.091 C 67.972878,33.091 72.161095,32.4297 72.161095,33.31143 C 72.161095,34.19316 71.940663,59.98376 71.720226,59.98376 z"
+ id="path3410" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38704 C 30.285544,19.74428 31.377356,40.18104 31.499117,51.23926 C 31.605213,61.03566 24.299753,66.58916 19.306963,74.22446 C 18.005406,76.20036 16.905599,78.37466 16,80.69306 L 82.520828,80.69306 C 81.09197,77.35266 79.250653,74.16456 76.942599,71.31726 C 70.852537,64.04336 69.300727,58.97166 68.820553,52.16596 C 68.49377,44.40715 74.305134,21.24285 52.37659,19.47789 C 51.33548,19.39483 50.355648,19.36947 49.41486,19.38704 z"
+ id="path3415" />
+ <svg:path
+ d="M 39.422413,30.54952 C 39.646391,36.37426 46.056486,41.44719 53.739757,41.88022 C 61.423027,42.31325 67.469981,37.9424 67.246003,32.11766 C 67.022025,26.29292 60.611936,21.21999 52.928666,20.78696 C 45.245395,20.35393 39.198435,24.72478 39.422413,30.54952 z"
+ id="path3418"
+ style="fill:url(#linearGradient4035);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4032);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69356 C 46.632534,51.71666 41.961725,53.24776 41.183793,56.57106 C 39.422099,64.09696 34.99238,75.32256 32.116901,80.86546 L 71.782284,80.86546 C 68.731342,74.02206 65.214664,65.43876 65.113848,58.38386 C 65.113848,54.10436 58.100534,51.66376 51.649785,51.69356 z"
+ id="path3420" />
+ <svg:path
+ id="path3422"
+ d="M 41.867705,65.45496 C 42.004403,73.20156 47.045412,75.02896 53.424847,75.02896 C 59.804502,75.02896 64.435181,73.88546 64.982215,65.45496 C 64.982215,60.17006 59.804502,57.11176 53.424847,57.11176 C 47.045412,57.11176 41.867705,60.17006 41.867705,65.45496 z"
+ style="font-size:12px;fill:url(#linearGradient4029);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.56519 C 57.750179,48.35146 59.562029,51.53606 62.014559,51.67806 C 64.467096,51.82006 66.631591,48.86576 66.849104,45.07945 C 67.06661,41.29315 65.254761,38.10862 62.80223,37.96661 C 60.349693,37.8246 58.185198,40.77888 57.967692,44.56519 z"
+ id="path3424"
+ style="fill:url(#linearGradient4026);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.85514 C 53.426911,49.23586 50.594412,52.71166 47.189836,52.61856 C 43.785255,52.52546 41.09785,48.89876 41.187346,44.51804 C 41.213569,43.23432 41.475341,42.02831 41.918035,40.96704 C 42.986031,38.40672 45.107011,36.68884 47.51391,36.75465 C 49.477103,36.80833 51.201835,38.03696 52.293182,39.90759 C 53.094453,41.28101 53.554288,43.0005 53.516401,44.85514 z"
+ id="path3426"
+ style="fill:url(#linearGradient4023);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84552 C 50.747175,48.25016 49.53419,50.20226 47.986473,50.20556 C 46.438762,50.20886 45.142409,48.26216 45.090992,45.85752 C 45.039569,43.45284 46.25256,41.50079 47.800271,41.49748 C 49.347988,41.49417 50.644341,43.44085 50.695758,45.84552 z"
+ id="path3428"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87087 C 60.31233,47.86146 61.060922,49.58536 62.178434,49.72126 C 63.29594,49.85716 64.359198,48.35366 64.553278,46.3631 C 64.747352,44.3725 63.998766,42.64861 62.881254,42.51269 C 61.763742,42.37676 60.70049,43.88027 60.50641,45.87087 z"
+ id="path3432"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47038 C 50.183599,45.81168 49.5585,46.95458 48.65543,47.02316 C 47.75236,47.09166 46.913296,46.05988 46.781331,44.71858 C 46.649361,43.37728 47.274466,42.23438 48.177535,42.16584 C 49.080605,42.0973 49.91967,43.12908 50.051634,44.47038 z"
+ id="path3434"
+ style="fill:url(#linearGradient4018);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.8154 C 61.335631,45.93937 61.785145,46.91274 62.456178,46.98946 C 63.127217,47.06626 63.765671,46.2173 63.88221,45.09333 C 63.998755,43.96936 63.549246,42.99598 62.878207,42.91923 C 62.207169,42.84248 61.568714,43.69143 61.452175,44.8154 z"
+ id="path3436"
+ style="fill:url(#linearGradient4015);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3438"
+ d="M 62.613319,49.65846 C 60.931882,48.06576 56.776168,43.29082 48.977143,48.30456 C 47.527446,49.24796 46.351121,49.33426 43.56112,50.52896 C 37.979229,52.82256 40.648074,58.35366 46.55933,60.20026 C 49.090309,61.02106 51.390723,64.09526 56.000266,63.83246 C 59.937182,63.60266 60.968815,61.03896 63.387105,59.61986 C 67.68515,57.19406 68.319424,53.91376 65.998538,52.17296 C 63.67742,50.43226 62.76953,49.80646 62.613319,49.65846 z"
+ style="fill:url(#linearGradient4012);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92846 L 43.491399,54.11016 C 45.816518,54.24686 50.876337,59.30676 56.210487,59.30676 C 61.544636,59.30676 64.692987,54.38266 65.513591,54.38266 C 65.513591,54.38266 58.736912,59.78386 56.090476,59.23276 C 50.311264,58.76466 43.61859,53.92846 43.61859,53.92846 z"
+ id="path3440"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3446"
+ d="M 59.962359,49.22196 C 59.117765,48.46296 56.453617,46.38011 52.920531,48.51246 C 52.176143,48.93466 51.407416,49.39426 50.264187,50.02196 C 47.999712,51.33906 49.121318,53.23706 51.834266,54.43796 C 53.065415,54.94196 55.095074,56.05406 56.640569,55.97626 C 58.358015,55.81846 59.469096,54.69836 60.60736,53.96886 C 62.695518,52.58946 62.568716,51.47576 61.598734,50.54856 C 60.865458,49.91186 60.04083,49.29246 59.962359,49.22196 z"
+ style="fill:url(#linearGradient4008);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4004);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24804 C 19.46429,42.24804 18.832179,11.59078 48.857331,11.27472 C 78.882477,10.95867 79.830637,39.08749 79.830637,42.56409 C 79.830637,46.04069 76.986149,59.94706 71.613229,59.94706 C 71.929284,45.09252 71.929284,33.39852 71.929284,33.39852 L 37.479379,33.08246 L 37.163323,63.10766 C 37.163323,63.10766 20.728506,63.42366 19.46429,42.24804 z"
+ id="path3450"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79846 C 32.454958,56.79846 42.551251,67.36846 46.855239,69.20606 C 51.159221,71.04376 59.564639,70.13856 59.564639,70.13856 C 59.564639,70.13856 60.75917,69.48646 60.772833,68.37336 C 60.788032,67.13576 59.712187,66.31816 59.712187,66.31816 C 59.712187,66.31816 50.840468,66.78576 46.883049,64.96026 C 42.925637,63.13486 34.593591,53.84026 34.593591,53.84026 C 34.593591,53.84026 33.432813,53.40966 32.8739,54.26476 C 32.351775,55.06356 32.455249,56.75426 32.454958,56.79846 z"
+ id="path3454"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3456"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4630317e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3490">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3492"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3494"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3496"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262947 C 33.465843,16.460037 26.655203,28.448187 24.186543,37.450447 C 21.989543,38.778237 20.405293,42.344367 20.405293,46.575447 C 20.405293,50.984817 22.125543,54.706917 24.467793,55.888017 C 26.322543,61.032717 29.382433,64.011817 32.342793,65.731717 C 29.790303,70.432317 25.750033,74.420017 22.624043,79.200517 C 21.322503,81.176417 20.217143,83.350817 19.311543,85.669217 L 35.499043,85.669217 C 35.475523,85.714917 35.459853,85.780517 35.436543,85.825517 L 75.092793,85.825517 C 75.070433,85.775317 75.052703,85.719617 75.030293,85.669217 L 85.842793,85.669217 C 84.413933,82.328817 82.588343,79.141517 80.280293,76.294217 C 76.650353,71.958717 74.638473,68.398517 73.499043,64.794217 L 75.030293,64.950517 C 75.031073,64.950517 75.029513,64.919917 75.030293,64.919217 C 77.915013,64.832017 80.076483,60.731817 81.436543,56.450517 C 84.068413,55.628717 86.092793,51.651017 86.092793,46.887947 C 86.092793,42.291237 84.213403,38.452697 81.717793,37.450447 C 79.131393,28.151157 71.958733,16.054857 52.186543,16.262947 z"
+ id="path3500" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3530"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779174)" />
+ <svg:path
+ style="fill:url(#linearGradient4093);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983717 L 67.311584,59.542817 L 67.972878,33.090957 C 67.972878,33.090957 72.161095,32.429657 72.161095,33.311387 C 72.161095,34.193117 71.940663,59.983717 71.720226,59.983717 z"
+ id="path3502" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.386997 C 30.285544,19.744237 31.377356,40.180997 31.499117,51.239217 C 31.605213,61.035617 24.299753,66.589117 19.306963,74.224417 C 18.005406,76.200317 16.905599,78.374617 16,80.693017 L 82.520828,80.693017 C 81.09197,77.352617 79.250653,74.164517 76.942599,71.317217 C 70.852537,64.043317 69.300727,58.971617 68.820553,52.165917 C 68.49377,44.407107 74.305134,21.242807 52.37659,19.477847 C 51.33548,19.394787 50.355648,19.369427 49.41486,19.386997 z"
+ id="path3504" />
+ <svg:path
+ d="M 39.422413,30.549477 C 39.646391,36.374217 46.056486,41.447147 53.739757,41.880177 C 61.423027,42.313207 67.469981,37.942357 67.246003,32.117617 C 67.022025,26.292877 60.611936,21.219947 52.928666,20.786917 C 45.245395,20.353887 39.198435,24.724737 39.422413,30.549477 z"
+ id="path3506"
+ style="fill:url(#linearGradient4082);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4079);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693517 C 46.632534,51.716617 41.961725,53.247717 41.183793,56.571017 C 39.422099,64.096917 34.99238,75.322517 32.116901,80.865417 L 71.782284,80.865417 C 68.731342,74.022017 65.214664,65.438717 65.113848,58.383817 C 65.113848,54.104317 58.100534,51.663717 51.649785,51.693517 z"
+ id="path3508" />
+ <svg:path
+ id="path3510"
+ d="M 41.867705,65.454917 C 42.004403,73.201517 47.045412,75.028917 53.424847,75.028917 C 59.804502,75.028917 64.435181,73.885417 64.982215,65.454917 C 64.982215,60.170017 59.804502,57.111717 53.424847,57.111717 C 47.045412,57.111717 41.867705,60.170017 41.867705,65.454917 z"
+ style="font-size:12px;fill:url(#linearGradient4076);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565147 C 57.750179,48.351417 59.562029,51.536017 62.014559,51.678017 C 64.467096,51.820017 66.631591,48.865717 66.849104,45.079407 C 67.06661,41.293107 65.254761,38.108577 62.80223,37.966567 C 60.349693,37.824557 58.185198,40.778837 57.967692,44.565147 z"
+ id="path3512"
+ style="fill:url(#linearGradient4073);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855097 C 53.426911,49.235817 50.594412,52.711617 47.189836,52.618517 C 43.785255,52.525417 41.09785,48.898717 41.187346,44.517997 C 41.213569,43.234277 41.475341,42.028267 41.918035,40.966997 C 42.986031,38.406677 45.107011,36.688797 47.51391,36.754607 C 49.477103,36.808287 51.201835,38.036917 52.293182,39.907547 C 53.094453,41.280967 53.554288,43.000457 53.516401,44.855097 z"
+ id="path3514"
+ style="fill:url(#linearGradient4070);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845477 C 50.747175,48.250117 49.53419,50.202217 47.986473,50.205517 C 46.438762,50.208817 45.142409,48.262117 45.090992,45.857477 C 45.039569,43.452797 46.25256,41.500747 47.800271,41.497437 C 49.347988,41.494127 50.644341,43.440807 50.695758,45.845477 z"
+ id="path3516"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870827 C 60.31233,47.861417 61.060922,49.585317 62.178434,49.721217 C 63.29594,49.857117 64.359198,48.353617 64.553278,46.363057 C 64.747352,44.372457 63.998766,42.648567 62.881254,42.512647 C 61.763742,42.376717 60.70049,43.880227 60.50641,45.870827 z"
+ id="path3518"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470337 C 50.183599,45.811637 49.5585,46.954537 48.65543,47.023117 C 47.75236,47.091617 46.913296,46.059837 46.781331,44.718537 C 46.649361,43.377237 47.274466,42.234337 48.177535,42.165797 C 49.080605,42.097257 49.91967,43.129037 50.051634,44.470337 z"
+ id="path3520"
+ style="fill:url(#linearGradient4065);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815357 C 61.335631,45.939327 61.785145,46.912697 62.456178,46.989417 C 63.127217,47.066217 63.765671,46.217257 63.88221,45.093287 C 63.998755,43.969317 63.549246,42.995937 62.878207,42.919187 C 62.207169,42.842437 61.568714,43.691387 61.452175,44.815357 z"
+ id="path3522"
+ style="fill:url(#linearGradient4062);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3524"
+ d="M 62.613319,49.658417 C 60.931882,48.065717 56.776168,43.290777 48.977143,48.304517 C 47.527446,49.247917 46.351121,49.334217 43.56112,50.528917 C 37.979229,52.822517 40.648074,58.353617 46.55933,60.200217 C 49.090309,61.021017 51.390723,64.095217 56.000266,63.832417 C 59.937182,63.602617 60.968815,61.038917 63.387105,59.619817 C 67.68515,57.194017 68.319424,53.913717 65.998538,52.172917 C 63.67742,50.432217 62.76953,49.806417 62.613319,49.658417 z"
+ style="fill:url(#linearGradient4059);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928417 L 43.491399,54.110117 C 45.816518,54.246817 50.876337,59.306717 56.210487,59.306717 C 61.544636,59.306717 64.692987,54.382617 65.513591,54.382617 C 65.513591,54.382617 58.736912,59.783817 56.090476,59.232717 C 50.311264,58.764617 43.61859,53.928417 43.61859,53.928417 z"
+ id="path3526"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3528"
+ d="M 59.962359,49.221917 C 59.117765,48.462917 56.453617,46.380067 52.920531,48.512417 C 52.176143,48.934617 51.407416,49.394217 50.264187,50.021917 C 47.999712,51.339017 49.121318,53.237017 51.834266,54.437917 C 53.065415,54.941917 55.095074,56.054017 56.640569,55.976217 C 58.358015,55.818417 59.469096,54.698317 60.60736,53.968817 C 62.695518,52.589417 62.568716,51.475717 61.598734,50.548517 C 60.865458,49.911817 60.04083,49.292417 59.962359,49.221917 z"
+ style="fill:url(#linearGradient4055);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4051);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.247997 C 19.46429,42.247997 18.832179,11.590737 48.857331,11.274677 C 78.882477,10.958627 79.830637,39.087447 79.830637,42.564047 C 79.830637,46.040647 76.986149,59.947017 71.613229,59.947017 C 71.929284,45.092477 71.929284,33.398477 71.929284,33.398477 L 37.479379,33.082417 L 37.163323,63.107617 C 37.163323,63.107617 20.728506,63.423617 19.46429,42.247997 z"
+ id="path3532"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798417 C 32.454958,56.798417 42.551251,67.368417 46.855239,69.206017 C 51.159221,71.043717 59.564639,70.138517 59.564639,70.138517 C 59.564639,70.138517 60.75917,69.486417 60.772833,68.373317 C 60.788032,67.135717 59.712187,66.318117 59.712187,66.318117 C 59.712187,66.318117 50.840468,66.785717 46.883049,64.960217 C 42.925637,63.134817 34.593591,53.840217 34.593591,53.840217 C 34.593591,53.840217 33.432813,53.409617 32.8739,54.264717 C 32.351775,55.063517 32.455249,56.754217 32.454958,56.798417 z"
+ id="path3534"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3536"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4672617e-2)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_helmet_green0.png b/data/images/sprites/tux_helmet_green0.png
new file mode 100644
index 0000000..65711b0
Binary files /dev/null and b/data/images/sprites/tux_helmet_green0.png differ
diff --git a/data/images/sprites/tux_helmet_green1.png b/data/images/sprites/tux_helmet_green1.png
new file mode 100644
index 0000000..0b42d11
Binary files /dev/null and b/data/images/sprites/tux_helmet_green1.png differ
diff --git a/data/images/sprites/tux_helmet_green2.png b/data/images/sprites/tux_helmet_green2.png
new file mode 100644
index 0000000..76ac595
Binary files /dev/null and b/data/images/sprites/tux_helmet_green2.png differ
diff --git a/data/images/sprites/tux_helmet_green3.png b/data/images/sprites/tux_helmet_green3.png
new file mode 100644
index 0000000..42ba176
Binary files /dev/null and b/data/images/sprites/tux_helmet_green3.png differ
diff --git a/data/images/sprites/tux_helmet_green4.png b/data/images/sprites/tux_helmet_green4.png
new file mode 100644
index 0000000..9fba16c
Binary files /dev/null and b/data/images/sprites/tux_helmet_green4.png differ
diff --git a/data/images/sprites/tux_helmet_green5.png b/data/images/sprites/tux_helmet_green5.png
new file mode 100644
index 0000000..693fac0
Binary files /dev/null and b/data/images/sprites/tux_helmet_green5.png differ
diff --git a/data/images/sprites/tux_helmet_greend.png b/data/images/sprites/tux_helmet_greend.png
new file mode 100644
index 0000000..3ef8fe4
Binary files /dev/null and b/data/images/sprites/tux_helmet_greend.png differ
diff --git a/data/images/sprites/tux_helmet_red.svg b/data/images/sprites/tux_helmet_red.svg
new file mode 100644
index 0000000..4fe87cf
--- /dev/null
+++ b/data/images/sprites/tux_helmet_red.svg
@@ -0,0 +1,6543 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_helmet_red.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3924">
+ <svg:stop
+ id="stop3926"
+ offset="0"
+ style="stop-color:#760000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3928"
+ offset="1"
+ style="stop-color:#560000;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient6753">
+ <svg:stop
+ style="stop-color:#ff0000;stop-opacity:1;"
+ offset="0"
+ id="stop6755" />
+ <svg:stop
+ style="stop-color:#8d0000;stop-opacity:1;"
+ offset="1"
+ id="stop6757" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3478"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3476"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3474"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3472"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3470"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3468"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3466"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3464"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3462"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3460"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3458"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3456"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3454"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3408"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3406"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3404"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3402"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3400"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3398"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3396"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3394"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3392"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3390"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3388"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3386"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3384"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3382"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3338"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3336"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3334"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3332"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3330"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3328"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3326"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3324"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3322"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3320"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3318"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3316"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3314"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3312"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3268"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3266"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3256"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3254"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3252"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3250"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3248"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3246"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3244"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3242"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3240"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3238"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3234"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3232"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3230"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3166"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3164"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3154"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3152"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3150"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3148"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3146"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3144"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3142"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3140"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3138"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3136"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3134"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3132"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3130"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3128"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3064"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3062"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3060"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3058"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3056"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3054"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3052"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3050"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3048"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3046"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3044"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3042"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3040"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3038"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2742"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2740"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2738"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2736"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2734"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2732"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2730"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2728"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2726"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2724"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5698"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5706"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5708"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5778"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5780"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5837"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5843"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5875"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,97.47953,-386.75803)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,567.61653,-422.63473)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,581.63153,-572.11373)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,38.74253,-525.79773)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,38.74253,-525.79773)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,23.33053,-511.84973)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-38.29847,-524.23073)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4574599,-2.5782549e-2,-1.3335564e-2,0.3468039,127.84431,-43.58718)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3288984,0,0,0.5119633,122.44213,-61.346999)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4137442,0,0,0.3207151,130.58926,-35.27367)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.344763,-1.9963088e-2,3.0575828e-2,0.5322547,109.51959,-60.09664)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.4785954,1.3085561e-2,1.258014e-2,0.6158094,453.51336,-94.784011)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1269482,-9.6347085e-3,-1.8551036e-2,0.1885515,325.98839,25.563103)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.4330485e-2,-1.0788922e-2,1.6382361e-2,0.1580006,208.11025,34.619692)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4931038,0,0,0.3320148,122.40413,-57.088171)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2483526,0,0,0.1577943,189.38092,13.905801)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4337924,0,0,1.2339181,169.24547,36.645773)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-193.0161,1042.5098)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,-181.30846,1029.2878)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-220.25171,988.00876)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,-170.4184,1041.3317)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,-101.87887,1036.0658)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,-27.73024,966.09074)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-227.74335,986.2595)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-215.49252,1000.6927)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-220.22962,985.53249)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-217.08855,995.85883)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter7170">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.7130516"
+ id="feGaussianBlur7172" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3305"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.09986,-22.182378)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3307"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.24092,-32.508723)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.50382,-17.348538)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.26302,-30.032453)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.680234,11.246562)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0274,24.468582)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182413)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508753)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348573)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781743)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950503)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290497)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032483)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802383,11.246527)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468547)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,976.83077)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,963.60875)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,922.32974)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,975.65272)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,970.38682)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,900.41172)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,920.58048)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,935.01365)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,919.85347)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,930.17981)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3922"
+ x1="67.137154"
+ y1="998.78058"
+ x2="72.335526"
+ y2="998.78058"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468587)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246567)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032443)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290537)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024637)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950463)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781703)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348533)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508713)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182373)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3975"
+ x1="67.137154"
+ y1="46.418354"
+ x2="72.335526"
+ y2="46.418354"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3983"
+ x1="67.137154"
+ y1="46.418358"
+ x2="72.335526"
+ y2="46.418358"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3991"
+ x1="67.137146"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3999"
+ x1="67.137154"
+ y1="46.418316"
+ x2="72.335526"
+ y2="46.418316"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46858)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24656)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03245)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29053)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02463)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95047)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.78171)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34854)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50872)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18238)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4046"
+ x1="67.137154"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468537)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246517)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032493)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024587)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4070"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950513)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781753)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4076"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348583)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508763)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182423)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4093"
+ x1="67.137154"
+ y1="46.418304"
+ x2="72.335526"
+ y2="46.418304"
+ gradientUnits="userSpaceOnUse" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.4518985"
+ inkscape:cx="6.5447458"
+ inkscape:cy="69.184869"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7632"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,952.64015)" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,968.62518 C 33.465843,968.82227 26.655203,980.81042 24.186543,989.81268 C 21.989543,991.14047 20.405293,994.7066 20.405293,998.93768 C 20.405293,1003.347 22.125543,1007.0691 24.467793,1008.2502 C 26.322543,1013.3949 29.382433,1016.3741 32.342793,1018.0939 C 29.790303,1022.7945 25.750033,1026.7822 22.624043,1031.5628 C 21.322503,1033.5386 20.217143,1035.713 19.311543,1038.0314 L 35.499043,1038.0314 C 35.475523,1038.0772 35.459853,1038.1427 35.436543,1038.1878 L 75.092793,1038.1878 C 75.070433,1038.1375 75.052703,1038.0819 75.030293,1038.0314 L 85.842793,1038.0314 C 84.413933,1034.691 82.588343,1031.5037 80.280293,1028.6564 C 76.650353,1024.321 74.638473,1020.7607 73.499043,1017.1564 L 75.030293,1017.3127 C 75.031073,1017.3127 75.029513,1017.2822 75.030293,1017.2814 C 77.915013,1017.1943 80.076483,1013.094 81.436543,1008.8127 C 84.068413,1007.9909 86.092793,1004.0132 86.092793,999.25018 C 86.092793,994.65347 84.213403,990.81493 81.717793,989.81268 C 79.131393,980.51339 71.958733,968.41709 52.186543,968.62518 z"
+ id="path7602" />
+ <svg:path
+ style="fill:url(#linearGradient3922);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,1012.346 L 67.311584,1011.905 L 67.972878,985.45319 C 67.972878,985.45319 72.161095,984.79189 72.161095,985.67362 C 72.161095,986.55535 71.940663,1012.346 71.720226,1012.346 z"
+ id="path7604" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,971.74923 C 30.285544,972.10647 31.377356,992.54323 31.499117,1003.6014 C 31.605213,1013.3978 24.299753,1018.9513 19.306963,1026.5866 C 18.005406,1028.5625 16.905599,1030.7369 16,1033.0552 L 82.520828,1033.0552 C 81.09197,1029.7148 79.250653,1026.5267 76.942599,1023.6794 C 70.852537,1016.4055 69.300727,1011.3338 68.820553,1004.5281 C 68.49377,996.76934 74.305134,973.60504 52.37659,971.84008 C 51.33548,971.75702 50.355648,971.73166 49.41486,971.74923 z"
+ id="path7606" />
+ <svg:path
+ d="M 39.422413,982.91171 C 39.646391,988.73645 46.056486,993.80938 53.739757,994.24241 C 61.423027,994.67544 67.469981,990.30459 67.246003,984.47985 C 67.022025,978.65511 60.611936,973.58218 52.928666,973.14915 C 45.245395,972.71612 39.198435,977.08697 39.422413,982.91171 z"
+ id="path7608"
+ style="fill:url(#linearGradient3141);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3137);stroke:none;stroke-width:1.25"
+ d="M 51.649785,1004.0557 C 46.632534,1004.0788 41.961725,1005.61 41.183793,1008.9332 C 39.422099,1016.4591 34.99238,1027.6847 32.116901,1033.2277 L 71.782284,1033.2277 C 68.731342,1026.3843 65.214664,1017.8009 65.113848,1010.746 C 65.113848,1006.4665 58.100534,1004.0259 51.649785,1004.0557 z"
+ id="path7610" />
+ <svg:path
+ id="path7612"
+ d="M 41.867705,1017.8171 C 42.004403,1025.5638 47.045412,1027.3911 53.424847,1027.3911 C 59.804502,1027.3911 64.435181,1026.2477 64.982215,1017.8171 C 64.982215,1012.5322 59.804502,1009.4739 53.424847,1009.4739 C 47.045412,1009.4739 41.867705,1012.5322 41.867705,1017.8171 z"
+ style="font-size:12px;fill:url(#linearGradient3133);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,996.92738 C 57.750179,1000.7136 59.562029,1003.8982 62.014559,1004.0403 C 64.467096,1004.1822 66.631591,1001.2279 66.849104,997.44164 C 67.06661,993.65534 65.254761,990.47081 62.80223,990.3288 C 60.349693,990.18679 58.185198,993.14107 57.967692,996.92738 z"
+ id="path7614"
+ style="fill:url(#linearGradient3129);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,997.21733 C 53.426911,1001.598 50.594412,1005.0738 47.189836,1004.9807 C 43.785255,1004.8877 41.09785,1001.2609 41.187346,996.88023 C 41.213569,995.59651 41.475341,994.3905 41.918035,993.32923 C 42.986031,990.76891 45.107011,989.05103 47.51391,989.11684 C 49.477103,989.17052 51.201835,990.39915 52.293182,992.26978 C 53.094453,993.6432 53.554288,995.36269 53.516401,997.21733 z"
+ id="path7616"
+ style="fill:url(#linearGradient3125);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,998.20771 C 50.747175,1000.6123 49.53419,1002.5644 47.986473,1002.5677 C 46.438762,1002.5711 45.142409,1000.6243 45.090992,998.21971 C 45.039569,995.81503 46.25256,993.86298 47.800271,993.85967 C 49.347988,993.85636 50.644341,995.80304 50.695758,998.20771 z"
+ id="path7618"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,998.23306 C 60.31233,1000.2236 61.060922,1001.9475 62.178434,1002.0834 C 63.29594,1002.2193 64.359198,1000.7158 64.553278,998.72529 C 64.747352,996.73469 63.998766,995.0108 62.881254,994.87488 C 61.763742,994.73895 60.70049,996.24246 60.50641,998.23306 z"
+ id="path7620"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,996.83257 C 50.183599,998.17387 49.5585,999.31677 48.65543,999.38535 C 47.75236,999.45385 46.913296,998.42207 46.781331,997.08077 C 46.649361,995.73947 47.274466,994.59657 48.177535,994.52803 C 49.080605,994.45949 49.91967,995.49127 50.051634,996.83257 z"
+ id="path7622"
+ style="fill:url(#linearGradient3120);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,997.17759 C 61.335631,998.30156 61.785145,999.27493 62.456178,999.35165 C 63.127217,999.42845 63.765671,998.57949 63.88221,997.45552 C 63.998755,996.33155 63.549246,995.35817 62.878207,995.28142 C 62.207169,995.20467 61.568714,996.05362 61.452175,997.17759 z"
+ id="path7624"
+ style="fill:url(#linearGradient3117);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7626"
+ d="M 62.613319,1002.0206 C 60.931882,1000.428 56.776168,995.65301 48.977143,1000.6667 C 47.527446,1001.6101 46.351121,1001.6964 43.56112,1002.8911 C 37.979229,1005.1848 40.648074,1010.7158 46.55933,1012.5625 C 49.090309,1013.3832 51.390723,1016.4574 56.000266,1016.1946 C 59.937182,1015.9648 60.968815,1013.4011 63.387105,1011.982 C 67.68515,1009.5562 68.319424,1006.2759 65.998538,1004.5351 C 63.67742,1002.7944 62.76953,1002.1686 62.613319,1002.0206 z"
+ style="fill:url(#linearGradient3114);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,1006.2906 L 43.491399,1006.4724 C 45.816518,1006.6091 50.876337,1011.6689 56.210487,1011.6689 C 61.544636,1011.6689 64.692987,1006.7448 65.513591,1006.7448 C 65.513591,1006.7448 58.736912,1012.146 56.090476,1011.5949 C 50.311264,1011.1268 43.61859,1006.2906 43.61859,1006.2906 z"
+ id="path7628"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7630"
+ d="M 59.962359,1001.5842 C 59.117765,1000.8252 56.453617,998.7423 52.920531,1000.8746 C 52.176143,1001.2968 51.407416,1001.7564 50.264187,1002.3841 C 47.999712,1003.7012 49.121318,1005.5992 51.834266,1006.8001 C 53.065415,1007.3041 55.095074,1008.4162 56.640569,1008.3384 C 58.358015,1008.1807 59.469096,1007.0605 60.60736,1006.3311 C 62.695518,1004.9516 62.568716,1003.8379 61.598734,1002.9108 C 60.865458,1002.274 60.04083,1001.6546 59.962359,1001.5842 z"
+ style="fill:url(#linearGradient3110);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,994.61023 C 19.46429,994.61023 18.832179,963.95297 48.857331,963.63691 C 78.882477,963.32086 79.830637,991.44968 79.830637,994.92628 C 79.830637,998.40288 76.986149,1012.3093 71.613229,1012.3093 C 71.929284,997.45471 71.929284,985.76071 71.929284,985.76071 L 37.479379,985.44465 L 37.163323,1015.4698 C 37.163323,1015.4698 20.728506,1015.7858 19.46429,994.61023 z"
+ id="path7634"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,1009.1607 C 32.454958,1009.1607 42.551251,1019.7306 46.855239,1021.5682 C 51.159221,1023.4059 59.564639,1022.5007 59.564639,1022.5007 C 59.564639,1022.5007 60.75917,1021.8486 60.772833,1020.7355 C 60.788032,1019.4979 59.712187,1018.6803 59.712187,1018.6803 C 59.712187,1018.6803 50.840468,1019.1479 46.883049,1017.3225 C 42.925637,1015.497 34.593591,1006.2024 34.593591,1006.2024 C 34.593591,1006.2024 33.432813,1005.7718 32.8739,1006.6269 C 32.351775,1007.4257 32.455249,1009.1164 32.454958,1009.1607 z"
+ id="path7636"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7638"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,952.32756)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262997 C 33.465843,16.460087 26.655203,28.448237 24.186543,37.450497 C 21.989543,38.778287 20.405293,42.344417 20.405293,46.575497 C 20.405293,50.984867 22.125543,54.706967 24.467793,55.888067 C 26.322543,61.032767 29.382433,64.011867 32.342793,65.731767 C 29.790303,70.432367 25.750033,74.420067 22.624043,79.200567 C 21.322503,81.176467 20.217143,83.350867 19.311543,85.669267 L 35.499043,85.669267 C 35.475523,85.714967 35.459853,85.780567 35.436543,85.825567 L 75.092793,85.825567 C 75.070433,85.775367 75.052703,85.719667 75.030293,85.669267 L 85.842793,85.669267 C 84.413933,82.328867 82.588343,79.141567 80.280293,76.294267 C 76.650353,71.958767 74.638473,68.398567 73.499043,64.794267 L 75.030293,64.950567 C 75.031073,64.950567 75.029513,64.919967 75.030293,64.919267 C 77.915013,64.832067 80.076483,60.731867 81.436543,56.450567 C 84.068413,55.628767 86.092793,51.651067 86.092793,46.887997 C 86.092793,42.291287 84.213403,38.452747 81.717793,37.450497 C 79.131393,28.151207 71.958733,16.054907 52.186543,16.262997 z"
+ id="path7542" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7572"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779668)" />
+ <svg:path
+ style="fill:url(#linearGradient3975);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983767 L 67.311584,59.542867 L 67.972878,33.091007 C 67.972878,33.091007 72.161095,32.429707 72.161095,33.311437 C 72.161095,34.193167 71.940663,59.983767 71.720226,59.983767 z"
+ id="path7544" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.387047 C 30.285544,19.744287 31.377356,40.181047 31.499117,51.239267 C 31.605213,61.035667 24.299753,66.589167 19.306963,74.224467 C 18.005406,76.200367 16.905599,78.374667 16,80.693067 L 82.520828,80.693067 C 81.09197,77.352667 79.250653,74.164567 76.942599,71.317267 C 70.852537,64.043367 69.300727,58.971667 68.820553,52.165967 C 68.49377,44.407157 74.305134,21.242857 52.37659,19.477897 C 51.33548,19.394837 50.355648,19.369477 49.41486,19.387047 z"
+ id="path7546" />
+ <svg:path
+ d="M 39.422413,30.549527 C 39.646391,36.374267 46.056486,41.447197 53.739757,41.880227 C 61.423027,42.313257 67.469981,37.942407 67.246003,32.117667 C 67.022025,26.292927 60.611936,21.219997 52.928666,20.786967 C 45.245395,20.353937 39.198435,24.724787 39.422413,30.549527 z"
+ id="path7548"
+ style="fill:url(#linearGradient3964);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3961);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693567 C 46.632534,51.716667 41.961725,53.247767 41.183793,56.571067 C 39.422099,64.096967 34.99238,75.322567 32.116901,80.865467 L 71.782284,80.865467 C 68.731342,74.022067 65.214664,65.438767 65.113848,58.383867 C 65.113848,54.104367 58.100534,51.663767 51.649785,51.693567 z"
+ id="path7550" />
+ <svg:path
+ id="path7552"
+ d="M 41.867705,65.454967 C 42.004403,73.201567 47.045412,75.028967 53.424847,75.028967 C 59.804502,75.028967 64.435181,73.885467 64.982215,65.454967 C 64.982215,60.170067 59.804502,57.111767 53.424847,57.111767 C 47.045412,57.111767 41.867705,60.170067 41.867705,65.454967 z"
+ style="font-size:12px;fill:url(#linearGradient3958);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565197 C 57.750179,48.351467 59.562029,51.536067 62.014559,51.678067 C 64.467096,51.820067 66.631591,48.865767 66.849104,45.079457 C 67.06661,41.293157 65.254761,38.108627 62.80223,37.966617 C 60.349693,37.824607 58.185198,40.778887 57.967692,44.565197 z"
+ id="path7554"
+ style="fill:url(#linearGradient3955);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855147 C 53.426911,49.235867 50.594412,52.711667 47.189836,52.618567 C 43.785255,52.525467 41.09785,48.898767 41.187346,44.518047 C 41.213569,43.234327 41.475341,42.028317 41.918035,40.967047 C 42.986031,38.406727 45.107011,36.688847 47.51391,36.754657 C 49.477103,36.808337 51.201835,38.036967 52.293182,39.907597 C 53.094453,41.281017 53.554288,43.000507 53.516401,44.855147 z"
+ id="path7556"
+ style="fill:url(#linearGradient3952);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845527 C 50.747175,48.250167 49.53419,50.202267 47.986473,50.205567 C 46.438762,50.208867 45.142409,48.262167 45.090992,45.857527 C 45.039569,43.452847 46.25256,41.500797 47.800271,41.497487 C 49.347988,41.494177 50.644341,43.440857 50.695758,45.845527 z"
+ id="path7558"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870877 C 60.31233,47.861467 61.060922,49.585367 62.178434,49.721267 C 63.29594,49.857167 64.359198,48.353667 64.553278,46.363107 C 64.747352,44.372507 63.998766,42.648617 62.881254,42.512697 C 61.763742,42.376767 60.70049,43.880277 60.50641,45.870877 z"
+ id="path7560"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470387 C 50.183599,45.811687 49.5585,46.954587 48.65543,47.023167 C 47.75236,47.091667 46.913296,46.059887 46.781331,44.718587 C 46.649361,43.377287 47.274466,42.234387 48.177535,42.165847 C 49.080605,42.097307 49.91967,43.129087 50.051634,44.470387 z"
+ id="path7562"
+ style="fill:url(#linearGradient3947);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815407 C 61.335631,45.939377 61.785145,46.912747 62.456178,46.989467 C 63.127217,47.066267 63.765671,46.217307 63.88221,45.093337 C 63.998755,43.969367 63.549246,42.995987 62.878207,42.919237 C 62.207169,42.842487 61.568714,43.691437 61.452175,44.815407 z"
+ id="path7564"
+ style="fill:url(#linearGradient3944);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7566"
+ d="M 62.613319,49.658467 C 60.931882,48.065767 56.776168,43.290827 48.977143,48.304567 C 47.527446,49.247967 46.351121,49.334267 43.56112,50.528967 C 37.979229,52.822567 40.648074,58.353667 46.55933,60.200267 C 49.090309,61.021067 51.390723,64.095267 56.000266,63.832467 C 59.937182,63.602667 60.968815,61.038967 63.387105,59.619867 C 67.68515,57.194067 68.319424,53.913767 65.998538,52.172967 C 63.67742,50.432267 62.76953,49.806467 62.613319,49.658467 z"
+ style="fill:url(#linearGradient3941);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928467 L 43.491399,54.110167 C 45.816518,54.246867 50.876337,59.306767 56.210487,59.306767 C 61.544636,59.306767 64.692987,54.382667 65.513591,54.382667 C 65.513591,54.382667 58.736912,59.783867 56.090476,59.232767 C 50.311264,58.764667 43.61859,53.928467 43.61859,53.928467 z"
+ id="path7568"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7570"
+ d="M 59.962359,49.221967 C 59.117765,48.462967 56.453617,46.380117 52.920531,48.512467 C 52.176143,48.934667 51.407416,49.394267 50.264187,50.021967 C 47.999712,51.339067 49.121318,53.237067 51.834266,54.437967 C 53.065415,54.941967 55.095074,56.054067 56.640569,55.976267 C 58.358015,55.818467 59.469096,54.698367 60.60736,53.968867 C 62.695518,52.589467 62.568716,51.475767 61.598734,50.548567 C 60.865458,49.911867 60.04083,49.292467 59.962359,49.221967 z"
+ style="fill:url(#linearGradient3937);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.248047 C 19.46429,42.248047 18.832179,11.590787 48.857331,11.274727 C 78.882477,10.958677 79.830637,39.087497 79.830637,42.564097 C 79.830637,46.040697 76.986149,59.947067 71.613229,59.947067 C 71.929284,45.092527 71.929284,33.398527 71.929284,33.398527 L 37.479379,33.082467 L 37.163323,63.107667 C 37.163323,63.107667 20.728506,63.423667 19.46429,42.248047 z"
+ id="path7574"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798467 C 32.454958,56.798467 42.551251,67.368467 46.855239,69.206067 C 51.159221,71.043767 59.564639,70.138567 59.564639,70.138567 C 59.564639,70.138567 60.75917,69.486467 60.772833,68.373367 C 60.788032,67.135767 59.712187,66.318167 59.712187,66.318167 C 59.712187,66.318167 50.840468,66.785767 46.883049,64.960267 C 42.925637,63.134867 34.593591,53.840267 34.593591,53.840267 C 34.593591,53.840267 33.432813,53.409667 32.8739,54.264767 C 32.351775,55.063567 32.455249,56.754267 32.454958,56.798467 z"
+ id="path7576"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7578"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4623202e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ id="path7280" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7312"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)" />
+ <svg:path
+ style="fill:url(#linearGradient3983);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ id="path7284" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ id="path7286" />
+ <svg:path
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z"
+ id="path7288"
+ style="fill:url(#linearGradient3187);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ id="path7290" />
+ <svg:path
+ id="path7292"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ style="font-size:12px;fill:url(#linearGradient3181);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 58.212161,43.342853 C 57.994648,47.129123 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.645571,47.675228 66.849104,43.857113 C 62.774618,43.123083 65.397968,43.78355 62.945437,43.64154 C 60.4929,43.49953 62.924184,43.097752 58.212161,43.342853 z"
+ id="path7294"
+ style="fill:url(#linearGradient3178);stroke:none;stroke-width:1.17873001"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 40.771238,46.928933 41.226571,43.387175 C 47.82628,42.901247 45.798475,42.220563 48.205374,42.286373 C 50.168567,42.340053 46.718234,42.710568 52.984646,42.673457 C 54.131649,46.812734 53.554288,43.00051 53.516401,44.85515 z"
+ id="path7296"
+ style="fill:url(#linearGradient3175);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z"
+ id="path7298"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z"
+ id="path7300"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z"
+ id="path7302"
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z"
+ id="path7304"
+ style="fill:url(#linearGradient3167);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7306"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ style="fill:url(#linearGradient3163);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ id="path7308"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7310"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ style="fill:url(#linearGradient3159);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3155);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ id="path7314"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ id="path7316"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7318"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186538,16.262992 C 33.465838,16.460082 26.655198,28.448232 24.186538,37.450492 C 21.989538,38.778282 20.405288,42.344412 20.405288,46.575492 C 20.405288,50.984862 22.125538,54.706962 24.467788,55.888062 C 26.322538,61.032762 29.382428,64.011862 32.342788,65.731762 C 29.790298,70.432362 25.750028,74.420062 22.624038,79.200562 C 21.322498,81.176462 20.217138,83.350862 19.311538,85.669262 L 35.499038,85.669262 C 35.475518,85.714962 35.459848,85.780562 35.436538,85.825562 L 75.092788,85.825562 C 75.070428,85.775362 75.052698,85.719662 75.030288,85.669262 L 85.842788,85.669262 C 84.413928,82.328862 82.588338,79.141562 80.280288,76.294262 C 76.650348,71.958762 74.638468,68.398562 73.499038,64.794262 L 75.030288,64.950562 C 75.031068,64.950562 75.029508,64.919962 75.030288,64.919262 C 77.915008,64.832062 80.076478,60.731862 81.436538,56.450562 C 84.068408,55.628762 86.092788,51.651062 86.092788,46.887992 C 86.092788,42.291282 84.213398,38.452742 81.717788,37.450492 C 79.131388,28.151202 71.958728,16.054902 52.186538,16.262992 z"
+ id="path3267" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3297"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.43084,0.2779624)" />
+ <svg:path
+ style="fill:url(#linearGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720221,59.983762 L 67.311579,59.542862 L 67.972873,33.091002 C 67.972873,33.091002 72.16109,32.429702 72.16109,33.311432 C 72.16109,34.193162 71.940658,59.983762 71.720221,59.983762 z"
+ id="path3269" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.414855,19.387042 C 30.285539,19.744282 31.377351,40.181042 31.499112,51.239262 C 31.605208,61.035662 24.299748,66.589162 19.306958,74.224462 C 18.005401,76.200362 16.905594,78.374662 15.999995,80.693062 L 82.520823,80.693062 C 81.091965,77.352662 79.250648,74.164562 76.942594,71.317262 C 70.852532,64.043362 69.300722,58.971662 68.820548,52.165962 C 68.493765,44.407152 74.305129,21.242852 52.376585,19.477892 C 51.335475,19.394832 50.355643,19.369472 49.414855,19.387042 z"
+ id="path3271" />
+ <svg:path
+ d="M 39.422408,30.549522 C 39.646386,36.374262 46.056481,41.447192 53.739752,41.880222 C 61.423022,42.313252 67.469976,37.942402 67.245998,32.117662 C 67.02202,26.292922 60.611931,21.219992 52.928661,20.786962 C 45.24539,20.353932 39.19843,24.724782 39.422408,30.549522 z"
+ id="path3273"
+ style="fill:url(#linearGradient3305);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3307);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.64978,51.693562 C 46.632529,51.716662 41.96172,53.247762 41.183788,56.571062 C 39.422094,64.096962 34.992375,75.322562 32.116896,80.865462 L 71.782279,80.865462 C 68.731337,74.022062 65.214659,65.438762 65.113843,58.383862 C 65.113843,54.104362 58.100529,51.663762 51.64978,51.693562 z"
+ id="path3275" />
+ <svg:path
+ id="path3277"
+ d="M 41.8677,65.454962 C 42.004398,73.201562 47.045407,75.028962 53.424842,75.028962 C 59.804497,75.028962 64.435176,73.885462 64.98221,65.454962 C 64.98221,60.170062 59.804497,57.111762 53.424842,57.111762 C 47.045407,57.111762 41.8677,60.170062 41.8677,65.454962 z"
+ style="font-size:12px;fill:url(#linearGradient3309);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ id="path3291"
+ d="M 62.613314,49.658462 C 60.931877,48.065762 56.776163,43.290822 48.977138,48.304562 C 47.527441,49.247962 46.351116,49.334262 43.561115,50.528962 C 37.979224,52.822562 40.648069,58.353662 46.559325,60.200262 C 49.090304,61.021062 51.390718,64.095262 56.000261,63.832462 C 59.937177,63.602662 60.96881,61.038962 63.3871,59.619862 C 67.685145,57.194062 68.319419,53.913762 65.998533,52.172962 C 63.677415,50.432262 62.769525,49.806462 62.613314,49.658462 z"
+ style="fill:url(#linearGradient3321);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.618585,53.928462 L 43.491394,54.110162 C 45.816513,54.246862 50.876332,59.306762 56.210482,59.306762 C 61.544631,59.306762 64.692982,54.382662 65.513586,54.382662 C 65.513586,54.382662 58.736907,59.783862 56.090471,59.232762 C 50.311259,58.764662 43.618585,53.928462 43.618585,53.928462 z"
+ id="path3293"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3295"
+ d="M 59.962354,49.221962 C 59.11776,48.462962 56.453612,46.380112 52.920526,48.512462 C 52.176138,48.934662 51.407411,49.394262 50.264182,50.021962 C 47.999707,51.339062 49.121313,53.237062 51.834261,54.437962 C 53.06541,54.941962 55.095069,56.054062 56.640564,55.976262 C 58.35801,55.818462 59.469091,54.698362 60.607355,53.968862 C 62.695513,52.589462 62.568711,51.475762 61.598729,50.548562 C 60.865453,49.911862 60.040825,49.292462 59.962354,49.221962 z"
+ style="fill:url(#linearGradient3325);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3327);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.464285,42.248042 C 19.464285,42.248042 18.832174,11.590782 48.857326,11.274722 C 78.882472,10.958672 79.830632,39.087492 79.830632,42.564092 C 79.830632,46.040692 76.986144,59.947062 71.613224,59.947062 C 71.929279,45.092522 71.929279,33.398522 71.929279,33.398522 L 37.479374,33.082462 L 37.163318,63.107662 C 37.163318,63.107662 20.728501,63.423662 19.464285,42.248042 z"
+ id="path3299"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454953,56.798462 C 32.454953,56.798462 42.551246,67.368462 46.855234,69.206062 C 51.159216,71.043762 59.564634,70.138562 59.564634,70.138562 C 59.564634,70.138562 60.759165,69.486462 60.772828,68.373362 C 60.788027,67.135762 59.712182,66.318162 59.712182,66.318162 C 59.712182,66.318162 50.840463,66.785762 46.883044,64.960262 C 42.925632,63.134862 34.593586,53.840262 34.593586,53.840262 C 34.593586,53.840262 33.432808,53.409662 32.873895,54.264762 C 32.35177,55.063562 32.455244,56.754262 32.454953,56.798462 z"
+ id="path3301"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3303"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4627617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3330">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3332"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3334"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3336"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186543,16.262957 C 33.465843,16.460047 26.655203,28.448197 24.186543,37.450457 C 21.989543,38.778251 20.405293,42.344381 20.405293,46.575461 C 20.405293,50.984831 22.125543,54.706931 24.467793,55.888031 C 26.322543,61.032731 29.382433,64.011831 32.342793,65.731731 C 29.790303,70.432331 25.750033,74.420031 22.624043,79.200531 C 21.322503,81.176431 20.217143,83.350831 19.311543,85.669231 L 35.499043,85.669231 C 35.475523,85.714931 35.459853,85.780531 35.436543,85.825531 L 75.092793,85.825531 C 75.070433,85.775331 75.052703,85.719631 75.030293,85.669231 L 85.842793,85.669231 C 84.413933,82.328831 82.588343,79.141531 80.280293,76.294231 C 76.650353,71.958731 74.638473,68.398531 73.499043,64.794231 L 75.030293,64.950531 C 75.031073,64.950531 75.029513,64.919931 75.030293,64.919231 C 77.915013,64.832031 80.076483,60.731831 81.436543,56.450531 C 84.068413,55.628731 86.092793,51.651031 86.092793,46.887961 C 86.092793,42.291251 84.213403,38.452707 81.717793,37.450457 C 79.131393,28.151167 71.958733,16.054867 52.186543,16.262957 z"
+ id="path3338" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3369"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779274)" />
+ <svg:path
+ style="fill:url(#linearGradient3999);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720226,59.983731 L 67.311584,59.542831 L 67.972878,33.090967 C 67.972878,33.090967 72.161095,32.429667 72.161095,33.311397 C 72.161095,34.193127 71.940663,59.983731 71.720226,59.983731 z"
+ id="path3340" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.41486,19.387007 C 30.285544,19.744247 31.377356,40.181011 31.499117,51.239231 C 31.605213,61.035631 24.299753,66.589131 19.306963,74.224431 C 18.005406,76.200331 16.905599,78.374631 16,80.693031 L 82.520828,80.693031 C 81.09197,77.352631 79.250653,74.164531 76.942599,71.317231 C 70.852537,64.043331 69.300727,58.971631 68.820553,52.165931 C 68.49377,44.407121 74.305134,21.242817 52.37659,19.477857 C 51.33548,19.394797 50.355648,19.369437 49.41486,19.387007 z"
+ id="path3343" />
+ <svg:path
+ d="M 39.422413,30.549487 C 39.646391,36.374227 46.056486,41.447161 53.739757,41.880191 C 61.423027,42.313221 67.469981,37.942367 67.246003,32.117627 C 67.022025,26.292887 60.611936,21.219957 52.928666,20.786927 C 45.245395,20.353897 39.198435,24.724747 39.422413,30.549487 z"
+ id="path3345"
+ style="fill:url(#linearGradient3377);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3379);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.649785,51.693531 C 46.632534,51.716631 41.961725,53.247731 41.183793,56.571031 C 39.422099,64.096931 34.99238,75.322531 32.116901,80.865431 L 71.782284,80.865431 C 68.731342,74.022031 65.214664,65.438731 65.113848,58.383831 C 65.113848,54.104331 58.100534,51.663731 51.649785,51.693531 z"
+ id="path3347" />
+ <svg:path
+ id="path3349"
+ d="M 41.867705,65.454931 C 42.004403,73.201531 47.045412,75.028931 53.424847,75.028931 C 59.804502,75.028931 64.435181,73.885431 64.982215,65.454931 C 64.982215,60.170031 59.804502,57.111731 53.424847,57.111731 C 47.045412,57.111731 41.867705,60.170031 41.867705,65.454931 z"
+ style="font-size:12px;fill:url(#linearGradient3381);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ d="M 58.212161,43.342814 C 57.994648,47.129084 59.562029,51.536031 62.014559,51.678031 C 64.467096,51.820031 66.645571,47.675189 66.849104,43.857074 C 62.774618,43.123044 65.397968,43.783511 62.945437,43.641501 C 60.4929,43.499491 62.924184,43.097713 58.212161,43.342814 z"
+ id="path3351"
+ style="fill:url(#linearGradient3383);stroke:none;stroke-width:1.17873001;display:inline"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.855111 C 53.426911,49.235831 50.594412,52.711631 47.189836,52.618531 C 43.785255,52.525431 41.09785,48.898731 41.187346,44.518011 C 41.213569,43.234291 40.771238,46.928894 41.226571,43.387136 C 47.82628,42.901208 45.798475,42.220524 48.205374,42.286334 C 50.168567,42.340014 46.718234,42.710529 52.984646,42.673418 C 54.131649,46.812695 53.554288,43.000471 53.516401,44.855111 z"
+ id="path3353"
+ style="fill:url(#linearGradient3385);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 50.695758,45.845491 C 50.747175,48.250131 49.53419,50.202231 47.986473,50.205531 C 46.438762,50.208831 45.142409,48.262131 45.090992,45.857491 C 45.039569,43.452811 46.25256,41.500761 47.800271,41.497451 C 49.347988,41.494141 50.644341,43.440821 50.695758,45.845491 z"
+ id="path3355"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 60.50641,45.870841 C 60.31233,47.861431 61.060922,49.585331 62.178434,49.721231 C 63.29594,49.857131 64.359198,48.353631 64.553278,46.363071 C 64.747352,44.372471 63.998766,42.648581 62.881254,42.512661 C 61.763742,42.376731 60.70049,43.880241 60.50641,45.870841 z"
+ id="path3357"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 50.051634,44.470351 C 50.183599,45.811651 49.5585,46.954551 48.65543,47.023131 C 47.75236,47.091631 46.913296,46.059851 46.781331,44.718551 C 46.649361,43.377251 47.274466,42.234351 48.177535,42.165811 C 49.080605,42.097271 49.91967,43.129051 50.051634,44.470351 z"
+ id="path3359"
+ style="fill:url(#linearGradient3387);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 61.452175,44.815371 C 61.335631,45.939341 61.785145,46.912711 62.456178,46.989431 C 63.127217,47.066231 63.765671,46.217271 63.88221,45.093301 C 63.998755,43.969331 63.549246,42.995951 62.878207,42.919201 C 62.207169,42.842451 61.568714,43.691401 61.452175,44.815371 z"
+ id="path3361"
+ style="fill:url(#linearGradient3389);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3363"
+ d="M 62.613319,49.658431 C 60.931882,48.065731 56.776168,43.290791 48.977143,48.304531 C 47.527446,49.247931 46.351121,49.334231 43.56112,50.528931 C 37.979229,52.822531 40.648074,58.353631 46.55933,60.200231 C 49.090309,61.021031 51.390723,64.095231 56.000266,63.832431 C 59.937182,63.602631 60.968815,61.038931 63.387105,59.619831 C 67.68515,57.194031 68.319424,53.913731 65.998538,52.172931 C 63.67742,50.432231 62.76953,49.806431 62.613319,49.658431 z"
+ style="fill:url(#linearGradient3391);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.61859,53.928431 L 43.491399,54.110131 C 45.816518,54.246831 50.876337,59.306731 56.210487,59.306731 C 61.544636,59.306731 64.692987,54.382631 65.513591,54.382631 C 65.513591,54.382631 58.736912,59.783831 56.090476,59.232731 C 50.311264,58.764631 43.61859,53.928431 43.61859,53.928431 z"
+ id="path3365"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3367"
+ d="M 59.962359,49.221931 C 59.117765,48.462931 56.453617,46.380081 52.920531,48.512431 C 52.176143,48.934631 51.407416,49.394231 50.264187,50.021931 C 47.999712,51.339031 49.121318,53.237031 51.834266,54.437931 C 53.065415,54.941931 55.095074,56.054031 56.640569,55.976231 C 58.358015,55.818431 59.469096,54.698331 60.60736,53.968831 C 62.695518,52.589431 62.568716,51.475731 61.598734,50.548531 C 60.865458,49.911831 60.04083,49.292431 59.962359,49.221931 z"
+ style="fill:url(#linearGradient3393);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3395);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.46429,42.248011 C 19.46429,42.248011 18.832179,11.590747 48.857331,11.274687 C 78.882477,10.958637 79.830637,39.087461 79.830637,42.564061 C 79.830637,46.040661 76.986149,59.947031 71.613229,59.947031 C 71.929284,45.092491 71.929284,33.398487 71.929284,33.398487 L 37.479379,33.082427 L 37.163323,63.107631 C 37.163323,63.107631 20.728506,63.423631 19.46429,42.248011 z"
+ id="path3371"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454958,56.798431 C 32.454958,56.798431 42.551251,67.368431 46.855239,69.206031 C 51.159221,71.043731 59.564639,70.138531 59.564639,70.138531 C 59.564639,70.138531 60.75917,69.486431 60.772833,68.373331 C 60.788032,67.135731 59.712187,66.318131 59.712187,66.318131 C 59.712187,66.318131 50.840468,66.785731 46.883049,64.960231 C 42.925637,63.134831 34.593591,53.840231 34.593591,53.840231 C 34.593591,53.840231 33.432813,53.409631 32.8739,54.264731 C 32.351775,55.063531 32.455249,56.754231 32.454958,56.798431 z"
+ id="path3373"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3375"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4662617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3398">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3400"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3402"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3404"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.26299 C 33.465843,16.46008 26.655203,28.44823 24.186543,37.45049 C 21.989543,38.77828 20.405293,42.34441 20.405293,46.57549 C 20.405293,50.98486 22.125543,54.70696 24.467793,55.88806 C 26.322543,61.03276 29.382433,64.01186 32.342793,65.73176 C 29.790303,70.43236 25.750033,74.42006 22.624043,79.20056 C 21.322503,81.17646 20.217143,83.35086 19.311543,85.66926 L 35.499043,85.66926 C 35.475523,85.71496 35.459853,85.78056 35.436543,85.82556 L 75.092793,85.82556 C 75.070433,85.77536 75.052703,85.71966 75.030293,85.66926 L 85.842793,85.66926 C 84.413933,82.32886 82.588343,79.14156 80.280293,76.29426 C 76.650353,71.95876 74.638473,68.39856 73.499043,64.79426 L 75.030293,64.95056 C 75.031073,64.95056 75.029513,64.91996 75.030293,64.91926 C 77.915013,64.83206 80.076483,60.73186 81.436543,56.45056 C 84.068413,55.62876 86.092793,51.65106 86.092793,46.88799 C 86.092793,42.29128 84.213403,38.45274 81.717793,37.45049 C 79.131393,28.1512 71.958733,16.0549 52.186543,16.26299 z"
+ id="path3408" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3448"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779597)" />
+ <svg:path
+ style="fill:url(#linearGradient4046);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98376 L 67.311584,59.54286 L 67.972878,33.091 C 67.972878,33.091 72.161095,32.4297 72.161095,33.31143 C 72.161095,34.19316 71.940663,59.98376 71.720226,59.98376 z"
+ id="path3410" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38704 C 30.285544,19.74428 31.377356,40.18104 31.499117,51.23926 C 31.605213,61.03566 24.299753,66.58916 19.306963,74.22446 C 18.005406,76.20036 16.905599,78.37466 16,80.69306 L 82.520828,80.69306 C 81.09197,77.35266 79.250653,74.16456 76.942599,71.31726 C 70.852537,64.04336 69.300727,58.97166 68.820553,52.16596 C 68.49377,44.40715 74.305134,21.24285 52.37659,19.47789 C 51.33548,19.39483 50.355648,19.36947 49.41486,19.38704 z"
+ id="path3415" />
+ <svg:path
+ d="M 39.422413,30.54952 C 39.646391,36.37426 46.056486,41.44719 53.739757,41.88022 C 61.423027,42.31325 67.469981,37.9424 67.246003,32.11766 C 67.022025,26.29292 60.611936,21.21999 52.928666,20.78696 C 45.245395,20.35393 39.198435,24.72478 39.422413,30.54952 z"
+ id="path3418"
+ style="fill:url(#linearGradient4035);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4032);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69356 C 46.632534,51.71666 41.961725,53.24776 41.183793,56.57106 C 39.422099,64.09696 34.99238,75.32256 32.116901,80.86546 L 71.782284,80.86546 C 68.731342,74.02206 65.214664,65.43876 65.113848,58.38386 C 65.113848,54.10436 58.100534,51.66376 51.649785,51.69356 z"
+ id="path3420" />
+ <svg:path
+ id="path3422"
+ d="M 41.867705,65.45496 C 42.004403,73.20156 47.045412,75.02896 53.424847,75.02896 C 59.804502,75.02896 64.435181,73.88546 64.982215,65.45496 C 64.982215,60.17006 59.804502,57.11176 53.424847,57.11176 C 47.045412,57.11176 41.867705,60.17006 41.867705,65.45496 z"
+ style="font-size:12px;fill:url(#linearGradient4029);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.56519 C 57.750179,48.35146 59.562029,51.53606 62.014559,51.67806 C 64.467096,51.82006 66.631591,48.86576 66.849104,45.07945 C 67.06661,41.29315 65.254761,38.10862 62.80223,37.96661 C 60.349693,37.8246 58.185198,40.77888 57.967692,44.56519 z"
+ id="path3424"
+ style="fill:url(#linearGradient4026);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.85514 C 53.426911,49.23586 50.594412,52.71166 47.189836,52.61856 C 43.785255,52.52546 41.09785,48.89876 41.187346,44.51804 C 41.213569,43.23432 41.475341,42.02831 41.918035,40.96704 C 42.986031,38.40672 45.107011,36.68884 47.51391,36.75465 C 49.477103,36.80833 51.201835,38.03696 52.293182,39.90759 C 53.094453,41.28101 53.554288,43.0005 53.516401,44.85514 z"
+ id="path3426"
+ style="fill:url(#linearGradient4023);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84552 C 50.747175,48.25016 49.53419,50.20226 47.986473,50.20556 C 46.438762,50.20886 45.142409,48.26216 45.090992,45.85752 C 45.039569,43.45284 46.25256,41.50079 47.800271,41.49748 C 49.347988,41.49417 50.644341,43.44085 50.695758,45.84552 z"
+ id="path3428"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87087 C 60.31233,47.86146 61.060922,49.58536 62.178434,49.72126 C 63.29594,49.85716 64.359198,48.35366 64.553278,46.3631 C 64.747352,44.3725 63.998766,42.64861 62.881254,42.51269 C 61.763742,42.37676 60.70049,43.88027 60.50641,45.87087 z"
+ id="path3432"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47038 C 50.183599,45.81168 49.5585,46.95458 48.65543,47.02316 C 47.75236,47.09166 46.913296,46.05988 46.781331,44.71858 C 46.649361,43.37728 47.274466,42.23438 48.177535,42.16584 C 49.080605,42.0973 49.91967,43.12908 50.051634,44.47038 z"
+ id="path3434"
+ style="fill:url(#linearGradient4018);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.8154 C 61.335631,45.93937 61.785145,46.91274 62.456178,46.98946 C 63.127217,47.06626 63.765671,46.2173 63.88221,45.09333 C 63.998755,43.96936 63.549246,42.99598 62.878207,42.91923 C 62.207169,42.84248 61.568714,43.69143 61.452175,44.8154 z"
+ id="path3436"
+ style="fill:url(#linearGradient4015);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3438"
+ d="M 62.613319,49.65846 C 60.931882,48.06576 56.776168,43.29082 48.977143,48.30456 C 47.527446,49.24796 46.351121,49.33426 43.56112,50.52896 C 37.979229,52.82256 40.648074,58.35366 46.55933,60.20026 C 49.090309,61.02106 51.390723,64.09526 56.000266,63.83246 C 59.937182,63.60266 60.968815,61.03896 63.387105,59.61986 C 67.68515,57.19406 68.319424,53.91376 65.998538,52.17296 C 63.67742,50.43226 62.76953,49.80646 62.613319,49.65846 z"
+ style="fill:url(#linearGradient4012);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92846 L 43.491399,54.11016 C 45.816518,54.24686 50.876337,59.30676 56.210487,59.30676 C 61.544636,59.30676 64.692987,54.38266 65.513591,54.38266 C 65.513591,54.38266 58.736912,59.78386 56.090476,59.23276 C 50.311264,58.76466 43.61859,53.92846 43.61859,53.92846 z"
+ id="path3440"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3446"
+ d="M 59.962359,49.22196 C 59.117765,48.46296 56.453617,46.38011 52.920531,48.51246 C 52.176143,48.93466 51.407416,49.39426 50.264187,50.02196 C 47.999712,51.33906 49.121318,53.23706 51.834266,54.43796 C 53.065415,54.94196 55.095074,56.05406 56.640569,55.97626 C 58.358015,55.81846 59.469096,54.69836 60.60736,53.96886 C 62.695518,52.58946 62.568716,51.47576 61.598734,50.54856 C 60.865458,49.91186 60.04083,49.29246 59.962359,49.22196 z"
+ style="fill:url(#linearGradient4008);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4004);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24804 C 19.46429,42.24804 18.832179,11.59078 48.857331,11.27472 C 78.882477,10.95867 79.830637,39.08749 79.830637,42.56409 C 79.830637,46.04069 76.986149,59.94706 71.613229,59.94706 C 71.929284,45.09252 71.929284,33.39852 71.929284,33.39852 L 37.479379,33.08246 L 37.163323,63.10766 C 37.163323,63.10766 20.728506,63.42366 19.46429,42.24804 z"
+ id="path3450"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79846 C 32.454958,56.79846 42.551251,67.36846 46.855239,69.20606 C 51.159221,71.04376 59.564639,70.13856 59.564639,70.13856 C 59.564639,70.13856 60.75917,69.48646 60.772833,68.37336 C 60.788032,67.13576 59.712187,66.31816 59.712187,66.31816 C 59.712187,66.31816 50.840468,66.78576 46.883049,64.96026 C 42.925637,63.13486 34.593591,53.84026 34.593591,53.84026 C 34.593591,53.84026 33.432813,53.40966 32.8739,54.26476 C 32.351775,55.06356 32.455249,56.75426 32.454958,56.79846 z"
+ id="path3454"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3456"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4630317e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3490">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3492"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3494"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3496"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262947 C 33.465843,16.460037 26.655203,28.448187 24.186543,37.450447 C 21.989543,38.778237 20.405293,42.344367 20.405293,46.575447 C 20.405293,50.984817 22.125543,54.706917 24.467793,55.888017 C 26.322543,61.032717 29.382433,64.011817 32.342793,65.731717 C 29.790303,70.432317 25.750033,74.420017 22.624043,79.200517 C 21.322503,81.176417 20.217143,83.350817 19.311543,85.669217 L 35.499043,85.669217 C 35.475523,85.714917 35.459853,85.780517 35.436543,85.825517 L 75.092793,85.825517 C 75.070433,85.775317 75.052703,85.719617 75.030293,85.669217 L 85.842793,85.669217 C 84.413933,82.328817 82.588343,79.141517 80.280293,76.294217 C 76.650353,71.958717 74.638473,68.398517 73.499043,64.794217 L 75.030293,64.950517 C 75.031073,64.950517 75.029513,64.919917 75.030293,64.919217 C 77.915013,64.832017 80.076483,60.731817 81.436543,56.450517 C 84.068413,55.628717 86.092793,51.651017 86.092793,46.887947 C 86.092793,42.291237 84.213403,38.452697 81.717793,37.450447 C 79.131393,28.151157 71.958733,16.054857 52.186543,16.262947 z"
+ id="path3500" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3530"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779174)" />
+ <svg:path
+ style="fill:url(#linearGradient4093);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983717 L 67.311584,59.542817 L 67.972878,33.090957 C 67.972878,33.090957 72.161095,32.429657 72.161095,33.311387 C 72.161095,34.193117 71.940663,59.983717 71.720226,59.983717 z"
+ id="path3502" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.386997 C 30.285544,19.744237 31.377356,40.180997 31.499117,51.239217 C 31.605213,61.035617 24.299753,66.589117 19.306963,74.224417 C 18.005406,76.200317 16.905599,78.374617 16,80.693017 L 82.520828,80.693017 C 81.09197,77.352617 79.250653,74.164517 76.942599,71.317217 C 70.852537,64.043317 69.300727,58.971617 68.820553,52.165917 C 68.49377,44.407107 74.305134,21.242807 52.37659,19.477847 C 51.33548,19.394787 50.355648,19.369427 49.41486,19.386997 z"
+ id="path3504" />
+ <svg:path
+ d="M 39.422413,30.549477 C 39.646391,36.374217 46.056486,41.447147 53.739757,41.880177 C 61.423027,42.313207 67.469981,37.942357 67.246003,32.117617 C 67.022025,26.292877 60.611936,21.219947 52.928666,20.786917 C 45.245395,20.353887 39.198435,24.724737 39.422413,30.549477 z"
+ id="path3506"
+ style="fill:url(#linearGradient4082);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4079);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693517 C 46.632534,51.716617 41.961725,53.247717 41.183793,56.571017 C 39.422099,64.096917 34.99238,75.322517 32.116901,80.865417 L 71.782284,80.865417 C 68.731342,74.022017 65.214664,65.438717 65.113848,58.383817 C 65.113848,54.104317 58.100534,51.663717 51.649785,51.693517 z"
+ id="path3508" />
+ <svg:path
+ id="path3510"
+ d="M 41.867705,65.454917 C 42.004403,73.201517 47.045412,75.028917 53.424847,75.028917 C 59.804502,75.028917 64.435181,73.885417 64.982215,65.454917 C 64.982215,60.170017 59.804502,57.111717 53.424847,57.111717 C 47.045412,57.111717 41.867705,60.170017 41.867705,65.454917 z"
+ style="font-size:12px;fill:url(#linearGradient4076);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565147 C 57.750179,48.351417 59.562029,51.536017 62.014559,51.678017 C 64.467096,51.820017 66.631591,48.865717 66.849104,45.079407 C 67.06661,41.293107 65.254761,38.108577 62.80223,37.966567 C 60.349693,37.824557 58.185198,40.778837 57.967692,44.565147 z"
+ id="path3512"
+ style="fill:url(#linearGradient4073);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855097 C 53.426911,49.235817 50.594412,52.711617 47.189836,52.618517 C 43.785255,52.525417 41.09785,48.898717 41.187346,44.517997 C 41.213569,43.234277 41.475341,42.028267 41.918035,40.966997 C 42.986031,38.406677 45.107011,36.688797 47.51391,36.754607 C 49.477103,36.808287 51.201835,38.036917 52.293182,39.907547 C 53.094453,41.280967 53.554288,43.000457 53.516401,44.855097 z"
+ id="path3514"
+ style="fill:url(#linearGradient4070);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845477 C 50.747175,48.250117 49.53419,50.202217 47.986473,50.205517 C 46.438762,50.208817 45.142409,48.262117 45.090992,45.857477 C 45.039569,43.452797 46.25256,41.500747 47.800271,41.497437 C 49.347988,41.494127 50.644341,43.440807 50.695758,45.845477 z"
+ id="path3516"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870827 C 60.31233,47.861417 61.060922,49.585317 62.178434,49.721217 C 63.29594,49.857117 64.359198,48.353617 64.553278,46.363057 C 64.747352,44.372457 63.998766,42.648567 62.881254,42.512647 C 61.763742,42.376717 60.70049,43.880227 60.50641,45.870827 z"
+ id="path3518"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470337 C 50.183599,45.811637 49.5585,46.954537 48.65543,47.023117 C 47.75236,47.091617 46.913296,46.059837 46.781331,44.718537 C 46.649361,43.377237 47.274466,42.234337 48.177535,42.165797 C 49.080605,42.097257 49.91967,43.129037 50.051634,44.470337 z"
+ id="path3520"
+ style="fill:url(#linearGradient4065);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815357 C 61.335631,45.939327 61.785145,46.912697 62.456178,46.989417 C 63.127217,47.066217 63.765671,46.217257 63.88221,45.093287 C 63.998755,43.969317 63.549246,42.995937 62.878207,42.919187 C 62.207169,42.842437 61.568714,43.691387 61.452175,44.815357 z"
+ id="path3522"
+ style="fill:url(#linearGradient4062);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3524"
+ d="M 62.613319,49.658417 C 60.931882,48.065717 56.776168,43.290777 48.977143,48.304517 C 47.527446,49.247917 46.351121,49.334217 43.56112,50.528917 C 37.979229,52.822517 40.648074,58.353617 46.55933,60.200217 C 49.090309,61.021017 51.390723,64.095217 56.000266,63.832417 C 59.937182,63.602617 60.968815,61.038917 63.387105,59.619817 C 67.68515,57.194017 68.319424,53.913717 65.998538,52.172917 C 63.67742,50.432217 62.76953,49.806417 62.613319,49.658417 z"
+ style="fill:url(#linearGradient4059);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928417 L 43.491399,54.110117 C 45.816518,54.246817 50.876337,59.306717 56.210487,59.306717 C 61.544636,59.306717 64.692987,54.382617 65.513591,54.382617 C 65.513591,54.382617 58.736912,59.783817 56.090476,59.232717 C 50.311264,58.764617 43.61859,53.928417 43.61859,53.928417 z"
+ id="path3526"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3528"
+ d="M 59.962359,49.221917 C 59.117765,48.462917 56.453617,46.380067 52.920531,48.512417 C 52.176143,48.934617 51.407416,49.394217 50.264187,50.021917 C 47.999712,51.339017 49.121318,53.237017 51.834266,54.437917 C 53.065415,54.941917 55.095074,56.054017 56.640569,55.976217 C 58.358015,55.818417 59.469096,54.698317 60.60736,53.968817 C 62.695518,52.589417 62.568716,51.475717 61.598734,50.548517 C 60.865458,49.911817 60.04083,49.292417 59.962359,49.221917 z"
+ style="fill:url(#linearGradient4055);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4051);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.247997 C 19.46429,42.247997 18.832179,11.590737 48.857331,11.274677 C 78.882477,10.958627 79.830637,39.087447 79.830637,42.564047 C 79.830637,46.040647 76.986149,59.947017 71.613229,59.947017 C 71.929284,45.092477 71.929284,33.398477 71.929284,33.398477 L 37.479379,33.082417 L 37.163323,63.107617 C 37.163323,63.107617 20.728506,63.423617 19.46429,42.247997 z"
+ id="path3532"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798417 C 32.454958,56.798417 42.551251,67.368417 46.855239,69.206017 C 51.159221,71.043717 59.564639,70.138517 59.564639,70.138517 C 59.564639,70.138517 60.75917,69.486417 60.772833,68.373317 C 60.788032,67.135717 59.712187,66.318117 59.712187,66.318117 C 59.712187,66.318117 50.840468,66.785717 46.883049,64.960217 C 42.925637,63.134817 34.593591,53.840217 34.593591,53.840217 C 34.593591,53.840217 33.432813,53.409617 32.8739,54.264717 C 32.351775,55.063517 32.455249,56.754217 32.454958,56.798417 z"
+ id="path3534"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3536"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4672617e-2)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_helmet_red0.png b/data/images/sprites/tux_helmet_red0.png
new file mode 100644
index 0000000..1bb3ff9
Binary files /dev/null and b/data/images/sprites/tux_helmet_red0.png differ
diff --git a/data/images/sprites/tux_helmet_red1.png b/data/images/sprites/tux_helmet_red1.png
new file mode 100644
index 0000000..e7ff232
Binary files /dev/null and b/data/images/sprites/tux_helmet_red1.png differ
diff --git a/data/images/sprites/tux_helmet_red2.png b/data/images/sprites/tux_helmet_red2.png
new file mode 100644
index 0000000..f2e9a58
Binary files /dev/null and b/data/images/sprites/tux_helmet_red2.png differ
diff --git a/data/images/sprites/tux_helmet_red3.png b/data/images/sprites/tux_helmet_red3.png
new file mode 100644
index 0000000..570e51b
Binary files /dev/null and b/data/images/sprites/tux_helmet_red3.png differ
diff --git a/data/images/sprites/tux_helmet_red4.png b/data/images/sprites/tux_helmet_red4.png
new file mode 100644
index 0000000..e3935be
Binary files /dev/null and b/data/images/sprites/tux_helmet_red4.png differ
diff --git a/data/images/sprites/tux_helmet_red5.png b/data/images/sprites/tux_helmet_red5.png
new file mode 100644
index 0000000..08238b0
Binary files /dev/null and b/data/images/sprites/tux_helmet_red5.png differ
diff --git a/data/images/sprites/tux_helmet_redd.png b/data/images/sprites/tux_helmet_redd.png
new file mode 100644
index 0000000..b0e4664
Binary files /dev/null and b/data/images/sprites/tux_helmet_redd.png differ
diff --git a/data/images/sprites/tux_helmet_yellow.svg b/data/images/sprites/tux_helmet_yellow.svg
new file mode 100644
index 0000000..962603a
--- /dev/null
+++ b/data/images/sprites/tux_helmet_yellow.svg
@@ -0,0 +1,6543 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="100"
+ height="100"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tux_helmet_yellow.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0">
+ <desc>6 frames</desc>
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ id="linearGradient3924">
+ <svg:stop
+ id="stop3926"
+ offset="0"
+ style="stop-color:#bcba00;stop-opacity:1;" />
+ <svg:stop
+ id="stop3928"
+ offset="1"
+ style="stop-color:#a5a500;stop-opacity:1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient6753">
+ <svg:stop
+ style="stop-color:#fffd00;stop-opacity:1;"
+ offset="0"
+ id="stop6755" />
+ <svg:stop
+ style="stop-color:#a29a00;stop-opacity:1;"
+ offset="1"
+ id="stop6757" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3333">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3335" />
+ <svg:stop
+ style="stop-color:#0033ea;stop-opacity:0;"
+ offset="1"
+ id="stop3337" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3323">
+ <svg:stop
+ style="stop-color:#fffbff;stop-opacity:1;"
+ offset="0"
+ id="stop3325" />
+ <svg:stop
+ style="stop-color:#f3f7f9;stop-opacity:0;"
+ offset="1"
+ id="stop3327" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3313">
+ <svg:stop
+ style="stop-color:#fdffff;stop-opacity:0.64462811;"
+ offset="0"
+ id="stop3315" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3317" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3303">
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0.51239669;"
+ offset="0"
+ id="stop3305" />
+ <svg:stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop3307" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient3291">
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3293" />
+ <svg:stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3295" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3303"
+ id="linearGradient3329"
+ x1="194.1282"
+ y1="357.67545"
+ x2="194.1282"
+ y2="320.93719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-0.8349641,-0.8349603)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3333"
+ id="linearGradient3339"
+ x1="202.06032"
+ y1="269.16965"
+ x2="205.40018"
+ y2="450.35599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.8253874e-6,2.6789494e-8)" />
+ <inkscape:perspective
+ id="perspective3569"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3949"
+ x="-0.24003901"
+ width="1.480078"
+ y="-0.23996101"
+ height="1.4799221">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.6296895"
+ id="feGaussianBlur3951" />
+ </svg:filter>
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3953"
+ x="-0.23996103"
+ width="1.4799221"
+ y="-0.24003899"
+ height="1.480078">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="9.629686"
+ id="feGaussianBlur3955" />
+ </svg:filter>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3388">
+ <svg:rect
+ style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3390"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2426">
+ <svg:rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect2428"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3224">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3226"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <svg:clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath3228">
+ <svg:rect
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ id="rect3230"
+ width="100"
+ height="100"
+ x="0"
+ y="952.36218"
+ ry="27.524401"
+ rx="27.524401" />
+ </svg:clipPath>
+ <inkscape:perspective
+ id="perspective2487"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3480"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3478"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3476"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3474"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3472"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3470"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3468"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3466"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3464"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3462"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3460"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3458"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3456"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3454"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3408"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3406"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3404"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3402"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3400"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3398"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3396"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3394"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3392"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3390"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3388"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3386"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3384"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3382"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3338"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3336"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3334"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3332"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3330"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3328"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3326"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3324"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3322"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3320"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3318"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3316"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3314"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3312"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3268"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3266"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3256"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3254"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3252"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3250"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3248"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3246"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3244"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3242"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3240"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3238"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3236"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3234"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3232"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3230"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3166"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3164"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3154"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3152"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3150"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3148"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3146"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3144"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3142"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3140"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3138"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3136"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3134"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3132"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3130"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3128"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3064"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3062"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3060"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3058"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3056"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3054"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3052"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3050"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3048"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3046"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3044"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3042"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3040"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3038"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2866"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2864"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2762"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2760"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2758"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2756"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2754"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2752"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2750"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2748"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2746"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2744"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2742"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2740"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2738"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2736"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2734"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2732"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2730"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2728"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2726"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2724"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3479"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3475"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3473"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3471"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3469"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3455"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3448"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3446"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3440"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3438"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3432"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3418"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3416"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ r="22.86916"
+ fy="200.60478"
+ fx="300.10394"
+ cy="200.60478"
+ cx="300.10394"
+ id="radialGradient3410"
+ xlink:href="#linearGradient3401"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2618"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2616"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2602"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3570"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2657"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2655"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2653"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2651"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2649"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2647"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2645"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2643"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2641"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2639"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2637"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2635"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2633"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2631"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2610"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2608"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2606"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2603"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2601"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2599"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2597"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2595"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2593"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2591"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2589"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2587"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2585"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2583"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2561"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2669"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2667"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2665"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2663"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2648"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2646"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2644"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2642"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2627"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2625"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2623"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2621"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2579"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2575"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2571"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2568"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2565"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2560"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2557"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2554"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2550"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2545"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2542"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2539"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2536"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2533"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2530"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2526"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2523"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2520"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2515"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2512"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2508"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3441"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3439"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3437"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3435"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3433"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3431"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3429"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3427"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3425"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3423"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3421"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3419"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3417"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3415"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3413"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3411"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3409"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3407"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3405"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3403"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient3401"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:radialGradient
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient2557"
+ xlink:href="#linearGradient172"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2553"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2549"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2546"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2543"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2538"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2535"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2532"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2529"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2525"
+ xlink:href="#linearGradient138"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2522"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2519"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2516"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="819.25677"
+ x2="540.23102"
+ y1="602.05945"
+ x1="440.54126"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2513"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2510"
+ xlink:href="#linearGradient153"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="643.92542"
+ x2="558.62012"
+ y1="560.19635"
+ x1="418.28036"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2507"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2504"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2501"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2497"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2494"
+ xlink:href="#linearGradient162"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2490"
+ xlink:href="#linearGradient167"
+ inkscape:collect="always" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)"
+ y2="482.55939"
+ x2="288.37628"
+ y1="398.85422"
+ x1="288.82358"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)"
+ y2="485.69934"
+ x2="285.45923"
+ y1="410.46326"
+ x1="284.68652"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1437"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)"
+ y2="582.63507"
+ x2="371.60889"
+ y1="474.01779"
+ x1="316.93988"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1435"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)"
+ y2="710.97723"
+ x2="230.53499"
+ y1="570.41809"
+ x1="223.10072"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1433"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="704.73077"
+ x2="182.24524"
+ y1="587.23602"
+ x1="117.88966"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1431"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)"
+ y2="737.8537"
+ x2="203.12654"
+ y1="630.30475"
+ x1="218.11714"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1429"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)"
+ y2="386.66583"
+ x2="279.64313"
+ y1="655.73102"
+ x1="381.56607"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1427"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)"
+ y2="737.41229"
+ x2="212.5099"
+ y1="657.11133"
+ x1="236.25362"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1425"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)"
+ y2="314.83911"
+ x2="867.33453"
+ y1="234.73897"
+ x1="867.34546"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1423"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)"
+ y2="331.44858"
+ x2="411.2215"
+ y1="242.94365"
+ x1="411.2215"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1421"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)"
+ y2="488.48251"
+ x2="323.2514"
+ y1="435.26761"
+ x1="322.48257"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1419"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)"
+ y2="614.50439"
+ x2="321.32224"
+ y1="498.17776"
+ x1="320.75104"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1417"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)"
+ y2="324.03815"
+ x2="377.48541"
+ y1="419.78485"
+ x1="375.17325"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1415"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)"
+ y2="394.10361"
+ x2="437.57941"
+ y1="528.87177"
+ x1="437.57941"
+ spreadMethod="reflect"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1413"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)"
+ y2="281.32513"
+ x2="387.06866"
+ y1="242.28218"
+ x1="389.63535"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1411"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ y2="281.01636"
+ x2="376.79556"
+ y1="240.92712"
+ x1="379.09573"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1409"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)"
+ y2="245.68338"
+ x2="380.5517"
+ y1="277.495"
+ x1="381.38742"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1407"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ y2="243.91606"
+ x2="380.27319"
+ y1="278.60202"
+ x1="378.93771"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1405"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)"
+ y2="330.09561"
+ x2="297.0856"
+ y1="237.93179"
+ x1="303.01761"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1403"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)"
+ y2="304.07886"
+ x2="400.84448"
+ y1="369.53015"
+ x1="400.57785"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1401"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ gradientUnits="userSpaceOnUse"
+ r="195.07191"
+ fy="1219.4125"
+ fx="446.77762"
+ cy="1219.4125"
+ cx="446.77762"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ id="radialGradient1399"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="-0.675295"
+ x2="0.19452"
+ y1="1.2934099"
+ x1="0.94027299"
+ id="linearGradient178"
+ xlink:href="#linearGradient153" />
+ <svg:radialGradient
+ id="radialGradient176"
+ xlink:href="#linearGradient172" />
+ <svg:radialGradient
+ gradientUnits="objectBoundingBox"
+ r="0.5"
+ fy="0.5"
+ fx="0.5"
+ cy="0.5"
+ cx="0.5"
+ id="radialGradient171"
+ xlink:href="#linearGradient172" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.97005898"
+ x2="0.50800002"
+ y1="0.191616"
+ x1="0.50000501"
+ id="linearGradient166"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98367399"
+ x2="0.46399999"
+ y1="0.51020199"
+ x1="0.60399801"
+ id="linearGradient165"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.98558098"
+ x2="0.41209599"
+ y1="0.34872901"
+ x1="0.50086302"
+ id="linearGradient161"
+ xlink:href="#linearGradient162" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.096282303"
+ x2="0.49215299"
+ y1="0.87917101"
+ x1="0.46201"
+ id="linearGradient159"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.136172"
+ x2="0.49843901"
+ y1="0.85418499"
+ x1="0.51730198"
+ id="linearGradient158"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.41252401"
+ x2="0.49482101"
+ y1="1.15284"
+ x1="0.49180499"
+ id="linearGradient157"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.23093501"
+ x2="0.453989"
+ y1="0.98882002"
+ x1="0.43568701"
+ id="linearGradient156"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ spreadMethod="reflect"
+ gradientUnits="objectBoundingBox"
+ y2="0.40625"
+ x2="0.5"
+ y1="0.89842999"
+ x1="0.5"
+ id="linearGradient152"
+ xlink:href="#linearGradient153" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="1.02569"
+ x2="0.487055"
+ y1="0.022184599"
+ x1="0.433979"
+ id="linearGradient151"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)"
+ gradientUnits="objectBoundingBox"
+ y2="0.94191301"
+ x2="0.156323"
+ y1="0.099496603"
+ x1="-0.30509499"
+ id="linearGradient150"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94634098"
+ x2="0.50400001"
+ y1="0.131707"
+ x1="0.5"
+ id="linearGradient149"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.92820501"
+ x2="0.51599997"
+ y1="0.37435901"
+ x1="0.50799799"
+ id="linearGradient148"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.8125"
+ x2="0.5"
+ y1="0.0234362"
+ x1="0.5"
+ id="linearGradient147"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.71875"
+ x2="0.57143003"
+ y1="0.023441499"
+ x1="0.57152498"
+ id="linearGradient146"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.75857902"
+ x2="0.86741799"
+ y1="-0.036155298"
+ x1="0.46741399"
+ id="linearGradient145"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94063401"
+ x2="0.64553201"
+ y1="0.059404202"
+ x1="0.70346397"
+ id="linearGradient144"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.93366498"
+ x2="0.41365999"
+ y1="0.028819799"
+ x1="0.46557701"
+ id="linearGradient143"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.94531101"
+ x2="0.553922"
+ y1="0.031192999"
+ x1="0.55880702"
+ id="linearGradient142"
+ xlink:href="#linearGradient167" />
+ <svg:linearGradient
+ gradientUnits="objectBoundingBox"
+ y2="0.90125799"
+ x2="0.417539"
+ y1="0.020191999"
+ x1="0.47424799"
+ id="linearGradient141"
+ xlink:href="#linearGradient138" />
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ id="stop139"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;" />
+ <svg:stop
+ id="stop140"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ id="stop154"
+ offset="0"
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;" />
+ <svg:stop
+ id="stop155"
+ offset="1"
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ id="stop163"
+ offset="0"
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;" />
+ <svg:stop
+ id="stop164"
+ offset="1"
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ id="stop168"
+ offset="0"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;" />
+ <svg:stop
+ id="stop169"
+ offset="1"
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ id="stop173"
+ offset="0"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;" />
+ <svg:stop
+ id="stop174"
+ offset="1"
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ id="perspective96"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 375 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <svg:linearGradient
+ id="linearGradient3401"
+ inkscape:collect="always">
+ <svg:stop
+ id="stop3403"
+ offset="0"
+ style="stop-color:#cf0000;stop-opacity:1;" />
+ <svg:stop
+ id="stop3405"
+ offset="1"
+ style="stop-color:#cf0000;stop-opacity:0;" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5682"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5684"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5686"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5688"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5690"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5692"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5696"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5698"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5700"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5702"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5704"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5706"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5708"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5710"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5712"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5714"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5716"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5764"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5766"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5768"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5770"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5772"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5774"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5776"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5778"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5780"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5782"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5784"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5786"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5788"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5837"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5839"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5841"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5843"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5845"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5847"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5849"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5851"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5873"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5875"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5877"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5879"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5881"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5883"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5885"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5887"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5889"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5906"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,97.47953,-386.75803)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,567.61653,-422.63473)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5912"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,581.63153,-572.11373)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient5918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,38.74253,-525.79773)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient5924"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,38.74253,-525.79773)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient5930"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,23.33053,-511.84973)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient5934"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-38.29847,-524.23073)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6891"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4574599,-2.5782549e-2,-1.3335564e-2,0.3468039,127.84431,-43.58718)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6893"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3288984,0,0,0.5119633,122.44213,-61.346999)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6895"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4137442,0,0,0.3207151,130.58926,-35.27367)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6897"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.344763,-1.9963088e-2,3.0575828e-2,0.5322547,109.51959,-60.09664)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6899"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.4785954,1.3085561e-2,1.258014e-2,0.6158094,453.51336,-94.784011)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6901"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.1269482,-9.6347085e-3,-1.8551036e-2,0.1885515,325.98839,25.563103)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6903"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(9.4330485e-2,-1.0788922e-2,1.6382361e-2,0.1580006,208.11025,34.619692)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6905"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4931038,0,0,0.3320148,122.40413,-57.088171)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6907"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2483526,0,0,0.1577943,189.38092,13.905801)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6909"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4337924,0,0,1.2339181,169.24547,36.645773)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient6914"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6918"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient6922"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6925"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6928"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient6939"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient6942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient6945"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7053"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7057"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7061"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7067"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7107"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7109"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7111"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7113"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7115"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7119"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7121"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7123"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-193.0161,1042.5098)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,-181.30846,1029.2878)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-220.25171,988.00876)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,-170.4184,1041.3317)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,-101.87887,1036.0658)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,-27.73024,966.09074)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-227.74335,986.2595)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-215.49252,1000.6927)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7158"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-220.22962,985.53249)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7161"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-217.08855,995.85883)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter7170">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="1.7130516"
+ id="feGaussianBlur7172" />
+ </svg:filter>
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7196"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7198"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7200"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7202"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7204"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7206"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7208"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7210"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7212"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7258"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7262"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7270"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7274"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.188743,930.84196)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.329808,920.51562)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.592708,935.6758)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.843542,921.24263)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.16957,901.07387)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.020943,971.04897)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.481406,976.31487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.351903,922.99189)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.5913496,964.2709)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.1162869,977.49292)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient7580"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7582"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7584"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7586"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient7588"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7590"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7592"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient7594"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient7596"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient7598"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3155"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3159"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3163"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3167"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3170"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3175"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3178"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3181"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3184"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3187"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3305"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.09986,-22.182378)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3307"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.24092,-32.508723)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3309"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.50382,-17.348538)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3321"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.26302,-30.032453)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3325"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.680234,11.246562)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0274,24.468582)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3377"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182413)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3379"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508753)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3381"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348573)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3383"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781743)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3385"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950503)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3387"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3389"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290497)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3391"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032483)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3393"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802383,11.246527)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3395"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468547)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3459"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3461"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3463"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3465"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3467"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3477"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3483"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3485"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3487"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18237)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3540"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50871)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34853)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3544"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.7817)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95046)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3548"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02464)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29054)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3552"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03244)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24657)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3556"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46859)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,976.83077)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,963.60875)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3114"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,922.32974)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3117"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,975.65272)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3120"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,970.38682)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3125"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,900.41172)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3129"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,920.58048)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3133"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,935.01365)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3137"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,919.85347)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3141"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,930.17981)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3922"
+ x1="67.137154"
+ y1="998.78058"
+ x2="72.335526"
+ y2="998.78058"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient3933"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468587)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3937"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246567)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3941"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032443)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290537)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3947"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024637)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950463)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3955"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781703)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3958"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348533)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3961"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508713)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3964"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182373)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3975"
+ x1="67.137154"
+ y1="46.418354"
+ x2="72.335526"
+ y2="46.418354"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3983"
+ x1="67.137154"
+ y1="46.418358"
+ x2="72.335526"
+ y2="46.418358"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3991"
+ x1="67.137146"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient3999"
+ x1="67.137154"
+ y1="46.418316"
+ x2="72.335526"
+ y2="46.418316"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4004"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.46858)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4008"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.24656)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4012"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.03245)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4015"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.29053)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4018"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.02463)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4023"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.95047)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4026"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.78171)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4029"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.34854)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4032"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.50872)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4035"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.18238)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4046"
+ x1="67.137154"
+ y1="46.418346"
+ x2="72.335526"
+ y2="46.418346"
+ gradientUnits="userSpaceOnUse" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6753"
+ id="radialGradient4051"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.83367,0,0,0.7174543,-2.0273979,24.468537)"
+ cx="54.316231"
+ cy="2.9836645"
+ fx="54.316231"
+ fy="2.9836645"
+ r="36.705799" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4055"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.1444031,0,0,9.1748549e-2,9.6802386,11.246517)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient4059"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2867122,0,0,0.193048,-29.263014,-30.032493)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(5.4847895e-2,-6.273154e-3,9.5254255e-3,9.1868501e-2,20.570295,23.290487)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4065"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-7.3813269e-2,-5.6020434e-3,-1.0786389e-2,0.1096321,89.109832,18.024587)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4070"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.2782764,7.6085209e-3,7.3146469e-3,0.3580587,163.25846,-51.950513)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4073"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2004604,-1.1607418e-2,1.7778132e-2,0.3094763,-36.754653,-31.781753)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient4076"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2405691,0,0,0.1864779,-24.503819,-17.348583)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient4079"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.191236,0,0,0.297678,-29.240919,-32.508763)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient4082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.2659873,-1.4991108e-2,-7.7538837e-3,0.201647,-26.099854,-22.182423)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3924"
+ id="linearGradient4093"
+ x1="67.137154"
+ y1="46.418304"
+ x2="72.335526"
+ y2="46.418304"
+ gradientUnits="userSpaceOnUse" />
+ </svg:defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.4518985"
+ inkscape:cx="6.5447458"
+ inkscape:cy="69.184869"
+ inkscape:document-units="px"
+ inkscape:current-layer="default"
+ showgrid="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="726"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <svg:metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <svg:g
+ inkscape:label="default"
+ inkscape:groupmode="layer"
+ id="default"
+ transform="translate(0,-952.36218)"
+ style="display:inline">
+ <svg:g
+ id="g3232"
+ transform="translate(0,-2.6171874e-6)">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3861"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="rect3855"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="rect3575"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7632"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,952.64015)" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,968.62518 C 33.465843,968.82227 26.655203,980.81042 24.186543,989.81268 C 21.989543,991.14047 20.405293,994.7066 20.405293,998.93768 C 20.405293,1003.347 22.125543,1007.0691 24.467793,1008.2502 C 26.322543,1013.3949 29.382433,1016.3741 32.342793,1018.0939 C 29.790303,1022.7945 25.750033,1026.7822 22.624043,1031.5628 C 21.322503,1033.5386 20.217143,1035.713 19.311543,1038.0314 L 35.499043,1038.0314 C 35.475523,1038.0772 35.459853,1038.1427 35.436543,1038.1878 L 75.092793,1038.1878 C 75.070433,1038.1375 75.052703,1038.0819 75.030293,1038.0314 L 85.842793,1038.0314 C 84.413933,1034.691 82.588343,1031.5037 80.280293,1028.6564 C 76.650353,1024.321 74.638473,1020.7607 73.499043,1017.1564 L 75.030293,1017.3127 C 75.031073,1017.3127 75.029513,1017.2822 75.030293,1017.2814 C 77.915013,1017.1943 80.076483,1013.094 81.436543,1008.8127 C 84.068413,1007.9909 86.092793,1004.0132 86.092793,999.25018 C 86.092793,994.65347 84.213403,990.81493 81.717793,989.81268 C 79.131393,980.51339 71.958733,968.41709 52.186543,968.62518 z"
+ id="path7602" />
+ <svg:path
+ style="fill:url(#linearGradient3922);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,1012.346 L 67.311584,1011.905 L 67.972878,985.45319 C 67.972878,985.45319 72.161095,984.79189 72.161095,985.67362 C 72.161095,986.55535 71.940663,1012.346 71.720226,1012.346 z"
+ id="path7604" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,971.74923 C 30.285544,972.10647 31.377356,992.54323 31.499117,1003.6014 C 31.605213,1013.3978 24.299753,1018.9513 19.306963,1026.5866 C 18.005406,1028.5625 16.905599,1030.7369 16,1033.0552 L 82.520828,1033.0552 C 81.09197,1029.7148 79.250653,1026.5267 76.942599,1023.6794 C 70.852537,1016.4055 69.300727,1011.3338 68.820553,1004.5281 C 68.49377,996.76934 74.305134,973.60504 52.37659,971.84008 C 51.33548,971.75702 50.355648,971.73166 49.41486,971.74923 z"
+ id="path7606" />
+ <svg:path
+ d="M 39.422413,982.91171 C 39.646391,988.73645 46.056486,993.80938 53.739757,994.24241 C 61.423027,994.67544 67.469981,990.30459 67.246003,984.47985 C 67.022025,978.65511 60.611936,973.58218 52.928666,973.14915 C 45.245395,972.71612 39.198435,977.08697 39.422413,982.91171 z"
+ id="path7608"
+ style="fill:url(#linearGradient3141);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3137);stroke:none;stroke-width:1.25"
+ d="M 51.649785,1004.0557 C 46.632534,1004.0788 41.961725,1005.61 41.183793,1008.9332 C 39.422099,1016.4591 34.99238,1027.6847 32.116901,1033.2277 L 71.782284,1033.2277 C 68.731342,1026.3843 65.214664,1017.8009 65.113848,1010.746 C 65.113848,1006.4665 58.100534,1004.0259 51.649785,1004.0557 z"
+ id="path7610" />
+ <svg:path
+ id="path7612"
+ d="M 41.867705,1017.8171 C 42.004403,1025.5638 47.045412,1027.3911 53.424847,1027.3911 C 59.804502,1027.3911 64.435181,1026.2477 64.982215,1017.8171 C 64.982215,1012.5322 59.804502,1009.4739 53.424847,1009.4739 C 47.045412,1009.4739 41.867705,1012.5322 41.867705,1017.8171 z"
+ style="font-size:12px;fill:url(#linearGradient3133);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,996.92738 C 57.750179,1000.7136 59.562029,1003.8982 62.014559,1004.0403 C 64.467096,1004.1822 66.631591,1001.2279 66.849104,997.44164 C 67.06661,993.65534 65.254761,990.47081 62.80223,990.3288 C 60.349693,990.18679 58.185198,993.14107 57.967692,996.92738 z"
+ id="path7614"
+ style="fill:url(#linearGradient3129);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,997.21733 C 53.426911,1001.598 50.594412,1005.0738 47.189836,1004.9807 C 43.785255,1004.8877 41.09785,1001.2609 41.187346,996.88023 C 41.213569,995.59651 41.475341,994.3905 41.918035,993.32923 C 42.986031,990.76891 45.107011,989.05103 47.51391,989.11684 C 49.477103,989.17052 51.201835,990.39915 52.293182,992.26978 C 53.094453,993.6432 53.554288,995.36269 53.516401,997.21733 z"
+ id="path7616"
+ style="fill:url(#linearGradient3125);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,998.20771 C 50.747175,1000.6123 49.53419,1002.5644 47.986473,1002.5677 C 46.438762,1002.5711 45.142409,1000.6243 45.090992,998.21971 C 45.039569,995.81503 46.25256,993.86298 47.800271,993.85967 C 49.347988,993.85636 50.644341,995.80304 50.695758,998.20771 z"
+ id="path7618"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,998.23306 C 60.31233,1000.2236 61.060922,1001.9475 62.178434,1002.0834 C 63.29594,1002.2193 64.359198,1000.7158 64.553278,998.72529 C 64.747352,996.73469 63.998766,995.0108 62.881254,994.87488 C 61.763742,994.73895 60.70049,996.24246 60.50641,998.23306 z"
+ id="path7620"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,996.83257 C 50.183599,998.17387 49.5585,999.31677 48.65543,999.38535 C 47.75236,999.45385 46.913296,998.42207 46.781331,997.08077 C 46.649361,995.73947 47.274466,994.59657 48.177535,994.52803 C 49.080605,994.45949 49.91967,995.49127 50.051634,996.83257 z"
+ id="path7622"
+ style="fill:url(#linearGradient3120);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,997.17759 C 61.335631,998.30156 61.785145,999.27493 62.456178,999.35165 C 63.127217,999.42845 63.765671,998.57949 63.88221,997.45552 C 63.998755,996.33155 63.549246,995.35817 62.878207,995.28142 C 62.207169,995.20467 61.568714,996.05362 61.452175,997.17759 z"
+ id="path7624"
+ style="fill:url(#linearGradient3117);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7626"
+ d="M 62.613319,1002.0206 C 60.931882,1000.428 56.776168,995.65301 48.977143,1000.6667 C 47.527446,1001.6101 46.351121,1001.6964 43.56112,1002.8911 C 37.979229,1005.1848 40.648074,1010.7158 46.55933,1012.5625 C 49.090309,1013.3832 51.390723,1016.4574 56.000266,1016.1946 C 59.937182,1015.9648 60.968815,1013.4011 63.387105,1011.982 C 67.68515,1009.5562 68.319424,1006.2759 65.998538,1004.5351 C 63.67742,1002.7944 62.76953,1002.1686 62.613319,1002.0206 z"
+ style="fill:url(#linearGradient3114);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,1006.2906 L 43.491399,1006.4724 C 45.816518,1006.6091 50.876337,1011.6689 56.210487,1011.6689 C 61.544636,1011.6689 64.692987,1006.7448 65.513591,1006.7448 C 65.513591,1006.7448 58.736912,1012.146 56.090476,1011.5949 C 50.311264,1011.1268 43.61859,1006.2906 43.61859,1006.2906 z"
+ id="path7628"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7630"
+ d="M 59.962359,1001.5842 C 59.117765,1000.8252 56.453617,998.7423 52.920531,1000.8746 C 52.176143,1001.2968 51.407416,1001.7564 50.264187,1002.3841 C 47.999712,1003.7012 49.121318,1005.5992 51.834266,1006.8001 C 53.065415,1007.3041 55.095074,1008.4162 56.640569,1008.3384 C 58.358015,1008.1807 59.469096,1007.0605 60.60736,1006.3311 C 62.695518,1004.9516 62.568716,1003.8379 61.598734,1002.9108 C 60.865458,1002.274 60.04083,1001.6546 59.962359,1001.5842 z"
+ style="fill:url(#linearGradient3110);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,994.61023 C 19.46429,994.61023 18.832179,963.95297 48.857331,963.63691 C 78.882477,963.32086 79.830637,991.44968 79.830637,994.92628 C 79.830637,998.40288 76.986149,1012.3093 71.613229,1012.3093 C 71.929284,997.45471 71.929284,985.76071 71.929284,985.76071 L 37.479379,985.44465 L 37.163323,1015.4698 C 37.163323,1015.4698 20.728506,1015.7858 19.46429,994.61023 z"
+ id="path7634"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,1009.1607 C 32.454958,1009.1607 42.551251,1019.7306 46.855239,1021.5682 C 51.159221,1023.4059 59.564639,1022.5007 59.564639,1022.5007 C 59.564639,1022.5007 60.75917,1021.8486 60.772833,1020.7355 C 60.788032,1019.4979 59.712187,1018.6803 59.712187,1018.6803 C 59.712187,1018.6803 50.840468,1019.1479 46.883049,1017.3225 C 42.925637,1015.497 34.593591,1006.2024 34.593591,1006.2024 C 34.593591,1006.2024 33.432813,1005.7718 32.8739,1006.6269 C 32.351775,1007.4257 32.455249,1009.1164 32.454958,1009.1607 z"
+ id="path7636"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7638"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,952.32756)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2414">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2416"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2418"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2420"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262997 C 33.465843,16.460087 26.655203,28.448237 24.186543,37.450497 C 21.989543,38.778287 20.405293,42.344417 20.405293,46.575497 C 20.405293,50.984867 22.125543,54.706967 24.467793,55.888067 C 26.322543,61.032767 29.382433,64.011867 32.342793,65.731767 C 29.790303,70.432367 25.750033,74.420067 22.624043,79.200567 C 21.322503,81.176467 20.217143,83.350867 19.311543,85.669267 L 35.499043,85.669267 C 35.475523,85.714967 35.459853,85.780567 35.436543,85.825567 L 75.092793,85.825567 C 75.070433,85.775367 75.052703,85.719667 75.030293,85.669267 L 85.842793,85.669267 C 84.413933,82.328867 82.588343,79.141567 80.280293,76.294267 C 76.650353,71.958767 74.638473,68.398567 73.499043,64.794267 L 75.030293,64.950567 C 75.031073,64.950567 75.029513,64.919967 75.030293,64.919267 C 77.915013,64.832067 80.076483,60.731867 81.436543,56.450567 C 84.068413,55.628767 86.092793,51.651067 86.092793,46.887997 C 86.092793,42.291287 84.213403,38.452747 81.717793,37.450497 C 79.131393,28.151207 71.958733,16.054907 52.186543,16.262997 z"
+ id="path7542" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7572"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779668)" />
+ <svg:path
+ style="fill:url(#linearGradient3975);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983767 L 67.311584,59.542867 L 67.972878,33.091007 C 67.972878,33.091007 72.161095,32.429707 72.161095,33.311437 C 72.161095,34.193167 71.940663,59.983767 71.720226,59.983767 z"
+ id="path7544" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.387047 C 30.285544,19.744287 31.377356,40.181047 31.499117,51.239267 C 31.605213,61.035667 24.299753,66.589167 19.306963,74.224467 C 18.005406,76.200367 16.905599,78.374667 16,80.693067 L 82.520828,80.693067 C 81.09197,77.352667 79.250653,74.164567 76.942599,71.317267 C 70.852537,64.043367 69.300727,58.971667 68.820553,52.165967 C 68.49377,44.407157 74.305134,21.242857 52.37659,19.477897 C 51.33548,19.394837 50.355648,19.369477 49.41486,19.387047 z"
+ id="path7546" />
+ <svg:path
+ d="M 39.422413,30.549527 C 39.646391,36.374267 46.056486,41.447197 53.739757,41.880227 C 61.423027,42.313257 67.469981,37.942407 67.246003,32.117667 C 67.022025,26.292927 60.611936,21.219997 52.928666,20.786967 C 45.245395,20.353937 39.198435,24.724787 39.422413,30.549527 z"
+ id="path7548"
+ style="fill:url(#linearGradient3964);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3961);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693567 C 46.632534,51.716667 41.961725,53.247767 41.183793,56.571067 C 39.422099,64.096967 34.99238,75.322567 32.116901,80.865467 L 71.782284,80.865467 C 68.731342,74.022067 65.214664,65.438767 65.113848,58.383867 C 65.113848,54.104367 58.100534,51.663767 51.649785,51.693567 z"
+ id="path7550" />
+ <svg:path
+ id="path7552"
+ d="M 41.867705,65.454967 C 42.004403,73.201567 47.045412,75.028967 53.424847,75.028967 C 59.804502,75.028967 64.435181,73.885467 64.982215,65.454967 C 64.982215,60.170067 59.804502,57.111767 53.424847,57.111767 C 47.045412,57.111767 41.867705,60.170067 41.867705,65.454967 z"
+ style="font-size:12px;fill:url(#linearGradient3958);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565197 C 57.750179,48.351467 59.562029,51.536067 62.014559,51.678067 C 64.467096,51.820067 66.631591,48.865767 66.849104,45.079457 C 67.06661,41.293157 65.254761,38.108627 62.80223,37.966617 C 60.349693,37.824607 58.185198,40.778887 57.967692,44.565197 z"
+ id="path7554"
+ style="fill:url(#linearGradient3955);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855147 C 53.426911,49.235867 50.594412,52.711667 47.189836,52.618567 C 43.785255,52.525467 41.09785,48.898767 41.187346,44.518047 C 41.213569,43.234327 41.475341,42.028317 41.918035,40.967047 C 42.986031,38.406727 45.107011,36.688847 47.51391,36.754657 C 49.477103,36.808337 51.201835,38.036967 52.293182,39.907597 C 53.094453,41.281017 53.554288,43.000507 53.516401,44.855147 z"
+ id="path7556"
+ style="fill:url(#linearGradient3952);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845527 C 50.747175,48.250167 49.53419,50.202267 47.986473,50.205567 C 46.438762,50.208867 45.142409,48.262167 45.090992,45.857527 C 45.039569,43.452847 46.25256,41.500797 47.800271,41.497487 C 49.347988,41.494177 50.644341,43.440857 50.695758,45.845527 z"
+ id="path7558"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870877 C 60.31233,47.861467 61.060922,49.585367 62.178434,49.721267 C 63.29594,49.857167 64.359198,48.353667 64.553278,46.363107 C 64.747352,44.372507 63.998766,42.648617 62.881254,42.512697 C 61.763742,42.376767 60.70049,43.880277 60.50641,45.870877 z"
+ id="path7560"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470387 C 50.183599,45.811687 49.5585,46.954587 48.65543,47.023167 C 47.75236,47.091667 46.913296,46.059887 46.781331,44.718587 C 46.649361,43.377287 47.274466,42.234387 48.177535,42.165847 C 49.080605,42.097307 49.91967,43.129087 50.051634,44.470387 z"
+ id="path7562"
+ style="fill:url(#linearGradient3947);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815407 C 61.335631,45.939377 61.785145,46.912747 62.456178,46.989467 C 63.127217,47.066267 63.765671,46.217307 63.88221,45.093337 C 63.998755,43.969367 63.549246,42.995987 62.878207,42.919237 C 62.207169,42.842487 61.568714,43.691437 61.452175,44.815407 z"
+ id="path7564"
+ style="fill:url(#linearGradient3944);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7566"
+ d="M 62.613319,49.658467 C 60.931882,48.065767 56.776168,43.290827 48.977143,48.304567 C 47.527446,49.247967 46.351121,49.334267 43.56112,50.528967 C 37.979229,52.822567 40.648074,58.353667 46.55933,60.200267 C 49.090309,61.021067 51.390723,64.095267 56.000266,63.832467 C 59.937182,63.602667 60.968815,61.038967 63.387105,59.619867 C 67.68515,57.194067 68.319424,53.913767 65.998538,52.172967 C 63.67742,50.432267 62.76953,49.806467 62.613319,49.658467 z"
+ style="fill:url(#linearGradient3941);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928467 L 43.491399,54.110167 C 45.816518,54.246867 50.876337,59.306767 56.210487,59.306767 C 61.544636,59.306767 64.692987,54.382667 65.513591,54.382667 C 65.513591,54.382667 58.736912,59.783867 56.090476,59.232767 C 50.311264,58.764667 43.61859,53.928467 43.61859,53.928467 z"
+ id="path7568"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7570"
+ d="M 59.962359,49.221967 C 59.117765,48.462967 56.453617,46.380117 52.920531,48.512467 C 52.176143,48.934667 51.407416,49.394267 50.264187,50.021967 C 47.999712,51.339067 49.121318,53.237067 51.834266,54.437967 C 53.065415,54.941967 55.095074,56.054067 56.640569,55.976267 C 58.358015,55.818467 59.469096,54.698367 60.60736,53.968867 C 62.695518,52.589467 62.568716,51.475767 61.598734,50.548567 C 60.865458,49.911867 60.04083,49.292467 59.962359,49.221967 z"
+ style="fill:url(#linearGradient3937);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.248047 C 19.46429,42.248047 18.832179,11.590787 48.857331,11.274727 C 78.882477,10.958677 79.830637,39.087497 79.830637,42.564097 C 79.830637,46.040697 76.986149,59.947067 71.613229,59.947067 C 71.929284,45.092527 71.929284,33.398527 71.929284,33.398527 L 37.479379,33.082467 L 37.163323,63.107667 C 37.163323,63.107667 20.728506,63.423667 19.46429,42.248047 z"
+ id="path7574"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798467 C 32.454958,56.798467 42.551251,67.368467 46.855239,69.206067 C 51.159221,71.043767 59.564639,70.138567 59.564639,70.138567 C 59.564639,70.138567 60.75917,69.486467 60.772833,68.373367 C 60.788032,67.135767 59.712187,66.318167 59.712187,66.318167 C 59.712187,66.318167 50.840468,66.785767 46.883049,64.960267 C 42.925637,63.134867 34.593591,53.840267 34.593591,53.840267 C 34.593591,53.840267 33.432813,53.409667 32.8739,54.264767 C 32.351775,55.063567 32.455249,56.754267 32.454958,56.798467 z"
+ id="path7576"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7578"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4623202e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g2432">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect2434"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path2436"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path2438"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.263 C 33.465843,16.46009 26.655203,28.44824 24.186543,37.4505 C 21.989543,38.77829 20.405293,42.34442 20.405293,46.5755 C 20.405293,50.98487 22.125543,54.70697 24.467793,55.88807 C 26.322543,61.03277 29.382433,64.01187 32.342793,65.73177 C 29.790303,70.43237 25.750033,74.42007 22.624043,79.20057 C 21.322503,81.17647 20.217143,83.35087 19.311543,85.66927 L 35.499043,85.66927 C 35.475523,85.71497 35.459853,85.78057 35.436543,85.82557 L 75.092793,85.82557 C 75.070433,85.77537 75.052703,85.71967 75.030293,85.66927 L 85.842793,85.66927 C 84.413933,82.32887 82.588343,79.14157 80.280293,76.29427 C 76.650353,71.95877 74.638473,68.39857 73.499043,64.79427 L 75.030293,64.95057 C 75.031073,64.95057 75.029513,64.91997 75.030293,64.91927 C 77.915013,64.83207 80.076483,60.73187 81.436543,56.45057 C 84.068413,55.62877 86.092793,51.65107 86.092793,46.888 C 86.092793,42.29129 84.213403,38.45275 81.717793,37.4505 C 79.131393,28.15121 71.958733,16.05491 52.186543,16.263 z"
+ id="path7280" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7312"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.27797)" />
+ <svg:path
+ style="fill:url(#linearGradient3983);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98377 L 67.311584,59.54287 L 67.972878,33.09101 C 67.972878,33.09101 72.161095,32.42971 72.161095,33.31144 C 72.161095,34.19317 71.940663,59.98377 71.720226,59.98377 z"
+ id="path7284" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38705 C 30.285544,19.74429 31.377356,40.18105 31.499117,51.23927 C 31.605213,61.03567 24.299753,66.58917 19.306963,74.22447 C 18.005406,76.20037 16.905599,78.37467 16,80.69307 L 82.520828,80.69307 C 81.09197,77.35267 79.250653,74.16457 76.942599,71.31727 C 70.852537,64.04337 69.300727,58.97167 68.820553,52.16597 C 68.49377,44.40716 74.305134,21.24286 52.37659,19.4779 C 51.33548,19.39484 50.355648,19.36948 49.41486,19.38705 z"
+ id="path7286" />
+ <svg:path
+ d="M 39.422413,30.54953 C 39.646391,36.37427 46.056486,41.4472 53.739757,41.88023 C 61.423027,42.31326 67.469981,37.94241 67.246003,32.11767 C 67.022025,26.29293 60.611936,21.22 52.928666,20.78697 C 45.245395,20.35394 39.198435,24.72479 39.422413,30.54953 z"
+ id="path7288"
+ style="fill:url(#linearGradient3187);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient3184);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69357 C 46.632534,51.71667 41.961725,53.24777 41.183793,56.57107 C 39.422099,64.09697 34.99238,75.32257 32.116901,80.86547 L 71.782284,80.86547 C 68.731342,74.02207 65.214664,65.43877 65.113848,58.38387 C 65.113848,54.10437 58.100534,51.66377 51.649785,51.69357 z"
+ id="path7290" />
+ <svg:path
+ id="path7292"
+ d="M 41.867705,65.45497 C 42.004403,73.20157 47.045412,75.02897 53.424847,75.02897 C 59.804502,75.02897 64.435181,73.88547 64.982215,65.45497 C 64.982215,60.17007 59.804502,57.11177 53.424847,57.11177 C 47.045412,57.11177 41.867705,60.17007 41.867705,65.45497 z"
+ style="font-size:12px;fill:url(#linearGradient3181);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 58.212161,43.342853 C 57.994648,47.129123 59.562029,51.53607 62.014559,51.67807 C 64.467096,51.82007 66.645571,47.675228 66.849104,43.857113 C 62.774618,43.123083 65.397968,43.78355 62.945437,43.64154 C 60.4929,43.49953 62.924184,43.097752 58.212161,43.342853 z"
+ id="path7294"
+ style="fill:url(#linearGradient3178);stroke:none;stroke-width:1.17873001"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.85515 C 53.426911,49.23587 50.594412,52.71167 47.189836,52.61857 C 43.785255,52.52547 41.09785,48.89877 41.187346,44.51805 C 41.213569,43.23433 40.771238,46.928933 41.226571,43.387175 C 47.82628,42.901247 45.798475,42.220563 48.205374,42.286373 C 50.168567,42.340053 46.718234,42.710568 52.984646,42.673457 C 54.131649,46.812734 53.554288,43.00051 53.516401,44.85515 z"
+ id="path7296"
+ style="fill:url(#linearGradient3175);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84553 C 50.747175,48.25017 49.53419,50.20227 47.986473,50.20557 C 46.438762,50.20887 45.142409,48.26217 45.090992,45.85753 C 45.039569,43.45285 46.25256,41.5008 47.800271,41.49749 C 49.347988,41.49418 50.644341,43.44086 50.695758,45.84553 z"
+ id="path7298"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87088 C 60.31233,47.86147 61.060922,49.58537 62.178434,49.72127 C 63.29594,49.85717 64.359198,48.35367 64.553278,46.36311 C 64.747352,44.37251 63.998766,42.64862 62.881254,42.5127 C 61.763742,42.37677 60.70049,43.88028 60.50641,45.87088 z"
+ id="path7300"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47039 C 50.183599,45.81169 49.5585,46.95459 48.65543,47.02317 C 47.75236,47.09167 46.913296,46.05989 46.781331,44.71859 C 46.649361,43.37729 47.274466,42.23439 48.177535,42.16585 C 49.080605,42.09731 49.91967,43.12909 50.051634,44.47039 z"
+ id="path7302"
+ style="fill:url(#linearGradient3170);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.81541 C 61.335631,45.93938 61.785145,46.91275 62.456178,46.98947 C 63.127217,47.06627 63.765671,46.21731 63.88221,45.09334 C 63.998755,43.96937 63.549246,42.99599 62.878207,42.91924 C 62.207169,42.84249 61.568714,43.69144 61.452175,44.81541 z"
+ id="path7304"
+ style="fill:url(#linearGradient3167);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path7306"
+ d="M 62.613319,49.65847 C 60.931882,48.06577 56.776168,43.29083 48.977143,48.30457 C 47.527446,49.24797 46.351121,49.33427 43.56112,50.52897 C 37.979229,52.82257 40.648074,58.35367 46.55933,60.20027 C 49.090309,61.02107 51.390723,64.09527 56.000266,63.83247 C 59.937182,63.60267 60.968815,61.03897 63.387105,59.61987 C 67.68515,57.19407 68.319424,53.91377 65.998538,52.17297 C 63.67742,50.43227 62.76953,49.80647 62.613319,49.65847 z"
+ style="fill:url(#linearGradient3163);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92847 L 43.491399,54.11017 C 45.816518,54.24687 50.876337,59.30677 56.210487,59.30677 C 61.544636,59.30677 64.692987,54.38267 65.513591,54.38267 C 65.513591,54.38267 58.736912,59.78387 56.090476,59.23277 C 50.311264,58.76467 43.61859,53.92847 43.61859,53.92847 z"
+ id="path7308"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path7310"
+ d="M 59.962359,49.22197 C 59.117765,48.46297 56.453617,46.38012 52.920531,48.51247 C 52.176143,48.93467 51.407416,49.39427 50.264187,50.02197 C 47.999712,51.33907 49.121318,53.23707 51.834266,54.43797 C 53.065415,54.94197 55.095074,56.05407 56.640569,55.97627 C 58.358015,55.81847 59.469096,54.69837 60.60736,53.96887 C 62.695518,52.58947 62.568716,51.47577 61.598734,50.54857 C 60.865458,49.91187 60.04083,49.29247 59.962359,49.22197 z"
+ style="fill:url(#linearGradient3159);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient3155);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24805 C 19.46429,42.24805 18.832179,11.59079 48.857331,11.27473 C 78.882477,10.95868 79.830637,39.0875 79.830637,42.5641 C 79.830637,46.0407 76.986149,59.94707 71.613229,59.94707 C 71.929284,45.09253 71.929284,33.39853 71.929284,33.39853 L 37.479379,33.08247 L 37.163323,63.10767 C 37.163323,63.10767 20.728506,63.42367 19.46429,42.24805 z"
+ id="path7314"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79847 C 32.454958,56.79847 42.551251,67.36847 46.855239,69.20607 C 51.159221,71.04377 59.564639,70.13857 59.564639,70.13857 C 59.564639,70.13857 60.75917,69.48647 60.772833,68.37337 C 60.788032,67.13577 59.712187,66.31817 59.712187,66.31817 C 59.712187,66.31817 50.840468,66.78577 46.883049,64.96027 C 42.925637,63.13487 34.593591,53.84027 34.593591,53.84027 C 34.593591,53.84027 33.432813,53.40967 32.8739,54.26477 C 32.351775,55.06357 32.455249,56.75427 32.454958,56.79847 z"
+ id="path7316"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path7318"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.462e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3259">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3261"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3263"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3265"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186538,16.262992 C 33.465838,16.460082 26.655198,28.448232 24.186538,37.450492 C 21.989538,38.778282 20.405288,42.344412 20.405288,46.575492 C 20.405288,50.984862 22.125538,54.706962 24.467788,55.888062 C 26.322538,61.032762 29.382428,64.011862 32.342788,65.731762 C 29.790298,70.432362 25.750028,74.420062 22.624038,79.200562 C 21.322498,81.176462 20.217138,83.350862 19.311538,85.669262 L 35.499038,85.669262 C 35.475518,85.714962 35.459848,85.780562 35.436538,85.825562 L 75.092788,85.825562 C 75.070428,85.775362 75.052698,85.719662 75.030288,85.669262 L 85.842788,85.669262 C 84.413928,82.328862 82.588338,79.141562 80.280288,76.294262 C 76.650348,71.958762 74.638468,68.398562 73.499038,64.794262 L 75.030288,64.950562 C 75.031068,64.950562 75.029508,64.919962 75.030288,64.919262 C 77.915008,64.832062 80.076478,60.731862 81.436538,56.450562 C 84.068408,55.628762 86.092788,51.651062 86.092788,46.887992 C 86.092788,42.291282 84.213398,38.452742 81.717788,37.450492 C 79.131388,28.151202 71.958728,16.054902 52.186538,16.262992 z"
+ id="path3267" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3297"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.43084,0.2779624)" />
+ <svg:path
+ style="fill:url(#linearGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720221,59.983762 L 67.311579,59.542862 L 67.972873,33.091002 C 67.972873,33.091002 72.16109,32.429702 72.16109,33.311432 C 72.16109,34.193162 71.940658,59.983762 71.720221,59.983762 z"
+ id="path3269" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.414855,19.387042 C 30.285539,19.744282 31.377351,40.181042 31.499112,51.239262 C 31.605208,61.035662 24.299748,66.589162 19.306958,74.224462 C 18.005401,76.200362 16.905594,78.374662 15.999995,80.693062 L 82.520823,80.693062 C 81.091965,77.352662 79.250648,74.164562 76.942594,71.317262 C 70.852532,64.043362 69.300722,58.971662 68.820548,52.165962 C 68.493765,44.407152 74.305129,21.242852 52.376585,19.477892 C 51.335475,19.394832 50.355643,19.369472 49.414855,19.387042 z"
+ id="path3271" />
+ <svg:path
+ d="M 39.422408,30.549522 C 39.646386,36.374262 46.056481,41.447192 53.739752,41.880222 C 61.423022,42.313252 67.469976,37.942402 67.245998,32.117662 C 67.02202,26.292922 60.611931,21.219992 52.928661,20.786962 C 45.24539,20.353932 39.19843,24.724782 39.422408,30.549522 z"
+ id="path3273"
+ style="fill:url(#linearGradient3305);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3307);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.64978,51.693562 C 46.632529,51.716662 41.96172,53.247762 41.183788,56.571062 C 39.422094,64.096962 34.992375,75.322562 32.116896,80.865462 L 71.782279,80.865462 C 68.731337,74.022062 65.214659,65.438762 65.113843,58.383862 C 65.113843,54.104362 58.100529,51.663762 51.64978,51.693562 z"
+ id="path3275" />
+ <svg:path
+ id="path3277"
+ d="M 41.8677,65.454962 C 42.004398,73.201562 47.045407,75.028962 53.424842,75.028962 C 59.804497,75.028962 64.435176,73.885462 64.98221,65.454962 C 64.98221,60.170062 59.804497,57.111762 53.424842,57.111762 C 47.045407,57.111762 41.8677,60.170062 41.8677,65.454962 z"
+ style="font-size:12px;fill:url(#linearGradient3309);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ id="path3291"
+ d="M 62.613314,49.658462 C 60.931877,48.065762 56.776163,43.290822 48.977138,48.304562 C 47.527441,49.247962 46.351116,49.334262 43.561115,50.528962 C 37.979224,52.822562 40.648069,58.353662 46.559325,60.200262 C 49.090304,61.021062 51.390718,64.095262 56.000261,63.832462 C 59.937177,63.602662 60.96881,61.038962 63.3871,59.619862 C 67.685145,57.194062 68.319419,53.913762 65.998533,52.172962 C 63.677415,50.432262 62.769525,49.806462 62.613314,49.658462 z"
+ style="fill:url(#linearGradient3321);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.618585,53.928462 L 43.491394,54.110162 C 45.816513,54.246862 50.876332,59.306762 56.210482,59.306762 C 61.544631,59.306762 64.692982,54.382662 65.513586,54.382662 C 65.513586,54.382662 58.736907,59.783862 56.090471,59.232762 C 50.311259,58.764662 43.618585,53.928462 43.618585,53.928462 z"
+ id="path3293"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3295"
+ d="M 59.962354,49.221962 C 59.11776,48.462962 56.453612,46.380112 52.920526,48.512462 C 52.176138,48.934662 51.407411,49.394262 50.264182,50.021962 C 47.999707,51.339062 49.121313,53.237062 51.834261,54.437962 C 53.06541,54.941962 55.095069,56.054062 56.640564,55.976262 C 58.35801,55.818462 59.469091,54.698362 60.607355,53.968862 C 62.695513,52.589462 62.568711,51.475762 61.598729,50.548562 C 60.865453,49.911862 60.040825,49.292462 59.962354,49.221962 z"
+ style="fill:url(#linearGradient3325);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3327);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.464285,42.248042 C 19.464285,42.248042 18.832174,11.590782 48.857326,11.274722 C 78.882472,10.958672 79.830632,39.087492 79.830632,42.564092 C 79.830632,46.040692 76.986144,59.947062 71.613224,59.947062 C 71.929279,45.092522 71.929279,33.398522 71.929279,33.398522 L 37.479374,33.082462 L 37.163318,63.107662 C 37.163318,63.107662 20.728501,63.423662 19.464285,42.248042 z"
+ id="path3299"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454953,56.798462 C 32.454953,56.798462 42.551246,67.368462 46.855234,69.206062 C 51.159216,71.043762 59.564634,70.138562 59.564634,70.138562 C 59.564634,70.138562 60.759165,69.486462 60.772828,68.373362 C 60.788027,67.135762 59.712182,66.318162 59.712182,66.318162 C 59.712182,66.318162 50.840463,66.785762 46.883044,64.960262 C 42.925632,63.134862 34.593586,53.840262 34.593586,53.840262 C 34.593586,53.840262 33.432808,53.409662 32.873895,54.264762 C 32.35177,55.063562 32.455244,56.754262 32.454953,56.798462 z"
+ id="path3301"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3303"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4627617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3330">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3332"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3334"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3336"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;filter:url(#filter7170)"
+ d="M 52.186543,16.262957 C 33.465843,16.460047 26.655203,28.448197 24.186543,37.450457 C 21.989543,38.778251 20.405293,42.344381 20.405293,46.575461 C 20.405293,50.984831 22.125543,54.706931 24.467793,55.888031 C 26.322543,61.032731 29.382433,64.011831 32.342793,65.731731 C 29.790303,70.432331 25.750033,74.420031 22.624043,79.200531 C 21.322503,81.176431 20.217143,83.350831 19.311543,85.669231 L 35.499043,85.669231 C 35.475523,85.714931 35.459853,85.780531 35.436543,85.825531 L 75.092793,85.825531 C 75.070433,85.775331 75.052703,85.719631 75.030293,85.669231 L 85.842793,85.669231 C 84.413933,82.328831 82.588343,79.141531 80.280293,76.294231 C 76.650353,71.958731 74.638473,68.398531 73.499043,64.794231 L 75.030293,64.950531 C 75.031073,64.950531 75.029513,64.919931 75.030293,64.919231 C 77.915013,64.832031 80.076483,60.731831 81.436543,56.450531 C 84.068413,55.628731 86.092793,51.651031 86.092793,46.887961 C 86.092793,42.291251 84.213403,38.452707 81.717793,37.450457 C 79.131393,28.151167 71.958733,16.054867 52.186543,16.262957 z"
+ id="path3338" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3369"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779274)" />
+ <svg:path
+ style="fill:url(#linearGradient3999);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 71.720226,59.983731 L 67.311584,59.542831 L 67.972878,33.090967 C 67.972878,33.090967 72.161095,32.429667 72.161095,33.311397 C 72.161095,34.193127 71.940663,59.983731 71.720226,59.983731 z"
+ id="path3340" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25;display:inline"
+ d="M 49.41486,19.387007 C 30.285544,19.744247 31.377356,40.181011 31.499117,51.239231 C 31.605213,61.035631 24.299753,66.589131 19.306963,74.224431 C 18.005406,76.200331 16.905599,78.374631 16,80.693031 L 82.520828,80.693031 C 81.09197,77.352631 79.250653,74.164531 76.942599,71.317231 C 70.852537,64.043331 69.300727,58.971631 68.820553,52.165931 C 68.49377,44.407121 74.305134,21.242817 52.37659,19.477857 C 51.33548,19.394797 50.355648,19.369437 49.41486,19.387007 z"
+ id="path3343" />
+ <svg:path
+ d="M 39.422413,30.549487 C 39.646391,36.374227 46.056486,41.447161 53.739757,41.880191 C 61.423027,42.313221 67.469981,37.942367 67.246003,32.117627 C 67.022025,26.292887 60.611936,21.219957 52.928666,20.786927 C 45.245395,20.353897 39.198435,24.724747 39.422413,30.549487 z"
+ id="path3345"
+ style="fill:url(#linearGradient3377);stroke:none;stroke-width:1.26498997;display:inline" />
+ <svg:path
+ style="fill:url(#linearGradient3379);stroke:none;stroke-width:1.25;display:inline"
+ d="M 51.649785,51.693531 C 46.632534,51.716631 41.961725,53.247731 41.183793,56.571031 C 39.422099,64.096931 34.99238,75.322531 32.116901,80.865431 L 71.782284,80.865431 C 68.731342,74.022031 65.214664,65.438731 65.113848,58.383831 C 65.113848,54.104331 58.100534,51.663731 51.649785,51.693531 z"
+ id="path3347" />
+ <svg:path
+ id="path3349"
+ d="M 41.867705,65.454931 C 42.004403,73.201531 47.045412,75.028931 53.424847,75.028931 C 59.804502,75.028931 64.435181,73.885431 64.982215,65.454931 C 64.982215,60.170031 59.804502,57.111731 53.424847,57.111731 C 47.045412,57.111731 41.867705,60.170031 41.867705,65.454931 z"
+ style="font-size:12px;fill:url(#linearGradient3381);stroke:none;stroke-width:1.38846004;stroke-dasharray:none;display:inline" />
+ <svg:path
+ d="M 58.212161,43.342814 C 57.994648,47.129084 59.562029,51.536031 62.014559,51.678031 C 64.467096,51.820031 66.645571,47.675189 66.849104,43.857074 C 62.774618,43.123044 65.397968,43.783511 62.945437,43.641501 C 60.4929,43.499491 62.924184,43.097713 58.212161,43.342814 z"
+ id="path3351"
+ style="fill:url(#linearGradient3383);stroke:none;stroke-width:1.17873001;display:inline"
+ sodipodi:nodetypes="cscsc" />
+ <svg:path
+ sodipodi:nodetypes="csscscc"
+ d="M 53.516401,44.855111 C 53.426911,49.235831 50.594412,52.711631 47.189836,52.618531 C 43.785255,52.525431 41.09785,48.898731 41.187346,44.518011 C 41.213569,43.234291 40.771238,46.928894 41.226571,43.387136 C 47.82628,42.901208 45.798475,42.220524 48.205374,42.286334 C 50.168567,42.340014 46.718234,42.710529 52.984646,42.673418 C 54.131649,46.812695 53.554288,43.000471 53.516401,44.855111 z"
+ id="path3353"
+ style="fill:url(#linearGradient3385);stroke:none;stroke-width:0.93138498;display:inline" />
+ <svg:path
+ d="M 50.695758,45.845491 C 50.747175,48.250131 49.53419,50.202231 47.986473,50.205531 C 46.438762,50.208831 45.142409,48.262131 45.090992,45.857491 C 45.039569,43.452811 46.25256,41.500761 47.800271,41.497451 C 49.347988,41.494141 50.644341,43.440821 50.695758,45.845491 z"
+ id="path3355"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline" />
+ <svg:path
+ d="M 60.50641,45.870841 C 60.31233,47.861431 61.060922,49.585331 62.178434,49.721231 C 63.29594,49.857131 64.359198,48.353631 64.553278,46.363071 C 64.747352,44.372471 63.998766,42.648581 62.881254,42.512661 C 61.763742,42.376731 60.70049,43.880241 60.50641,45.870841 z"
+ id="path3357"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline" />
+ <svg:path
+ d="M 50.051634,44.470351 C 50.183599,45.811651 49.5585,46.954551 48.65543,47.023131 C 47.75236,47.091631 46.913296,46.059851 46.781331,44.718551 C 46.649361,43.377251 47.274466,42.234351 48.177535,42.165811 C 49.080605,42.097271 49.91967,43.129051 50.051634,44.470351 z"
+ id="path3359"
+ style="fill:url(#linearGradient3387);stroke:none;stroke-width:3.1916101;display:inline" />
+ <svg:path
+ d="M 61.452175,44.815371 C 61.335631,45.939341 61.785145,46.912711 62.456178,46.989431 C 63.127217,47.066231 63.765671,46.217271 63.88221,45.093301 C 63.998755,43.969331 63.549246,42.995951 62.878207,42.919201 C 62.207169,42.842451 61.568714,43.691401 61.452175,44.815371 z"
+ id="path3361"
+ style="fill:url(#linearGradient3389);stroke:none;stroke-width:4.12025976;display:inline" />
+ <svg:path
+ id="path3363"
+ d="M 62.613319,49.658431 C 60.931882,48.065731 56.776168,43.290791 48.977143,48.304531 C 47.527446,49.247931 46.351121,49.334231 43.56112,50.528931 C 37.979229,52.822531 40.648074,58.353631 46.55933,60.200231 C 49.090309,61.021031 51.390723,64.095231 56.000266,63.832431 C 59.937182,63.602631 60.968815,61.038931 63.387105,59.619831 C 67.68515,57.194031 68.319424,53.913731 65.998538,52.172931 C 63.67742,50.432231 62.76953,49.806431 62.613319,49.658431 z"
+ style="fill:url(#linearGradient3391);stroke:#e68c3f;stroke-width:0.88224226;display:inline" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153;display:inline"
+ d="M 43.61859,53.928431 L 43.491399,54.110131 C 45.816518,54.246831 50.876337,59.306731 56.210487,59.306731 C 61.544636,59.306731 64.692987,54.382631 65.513591,54.382631 C 65.513591,54.382631 58.736912,59.783831 56.090476,59.232731 C 50.311264,58.764631 43.61859,53.928431 43.61859,53.928431 z"
+ id="path3365"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3367"
+ d="M 59.962359,49.221931 C 59.117765,48.462931 56.453617,46.380081 52.920531,48.512431 C 52.176143,48.934631 51.407416,49.394231 50.264187,50.021931 C 47.999712,51.339031 49.121318,53.237031 51.834266,54.437931 C 53.065415,54.941931 55.095074,56.054031 56.640569,55.976231 C 58.358015,55.818431 59.469096,54.698331 60.60736,53.968831 C 62.695518,52.589431 62.568716,51.475731 61.598734,50.548531 C 60.865458,49.911831 60.04083,49.292431 59.962359,49.221931 z"
+ style="fill:url(#linearGradient3393);stroke:none;display:inline" />
+ <svg:path
+ style="fill:url(#radialGradient3395);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 19.46429,42.248011 C 19.46429,42.248011 18.832179,11.590747 48.857331,11.274687 C 78.882477,10.958637 79.830637,39.087461 79.830637,42.564061 C 79.830637,46.040661 76.986149,59.947031 71.613229,59.947031 C 71.929284,45.092491 71.929284,33.398487 71.929284,33.398487 L 37.479379,33.082427 L 37.163323,63.107631 C 37.163323,63.107631 20.728506,63.423631 19.46429,42.248011 z"
+ id="path3371"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 32.454958,56.798431 C 32.454958,56.798431 42.551251,67.368431 46.855239,69.206031 C 51.159221,71.043731 59.564639,70.138531 59.564639,70.138531 C 59.564639,70.138531 60.75917,69.486431 60.772833,68.373331 C 60.788032,67.135731 59.712187,66.318131 59.712187,66.318131 C 59.712187,66.318131 50.840468,66.785731 46.883049,64.960231 C 42.925637,63.134831 34.593591,53.840231 34.593591,53.840231 C 34.593591,53.840231 33.432813,53.409631 32.8739,54.264731 C 32.351775,55.063531 32.455249,56.754231 32.454958,56.798431 z"
+ id="path3373"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:inline"
+ id="path3375"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4662617e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3398">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3400"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3402"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3404"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.26299 C 33.465843,16.46008 26.655203,28.44823 24.186543,37.45049 C 21.989543,38.77828 20.405293,42.34441 20.405293,46.57549 C 20.405293,50.98486 22.125543,54.70696 24.467793,55.88806 C 26.322543,61.03276 29.382433,64.01186 32.342793,65.73176 C 29.790303,70.43236 25.750033,74.42006 22.624043,79.20056 C 21.322503,81.17646 20.217143,83.35086 19.311543,85.66926 L 35.499043,85.66926 C 35.475523,85.71496 35.459853,85.78056 35.436543,85.82556 L 75.092793,85.82556 C 75.070433,85.77536 75.052703,85.71966 75.030293,85.66926 L 85.842793,85.66926 C 84.413933,82.32886 82.588343,79.14156 80.280293,76.29426 C 76.650353,71.95876 74.638473,68.39856 73.499043,64.79426 L 75.030293,64.95056 C 75.031073,64.95056 75.029513,64.91996 75.030293,64.91926 C 77.915013,64.83206 80.076483,60.73186 81.436543,56.45056 C 84.068413,55.62876 86.092793,51.65106 86.092793,46.88799 C 86.092793,42.29128 84.213403,38.45274 81.717793,37.45049 C 79.131393,28.1512 71.958733,16.0549 52.186543,16.26299 z"
+ id="path3408" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3448"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779597)" />
+ <svg:path
+ style="fill:url(#linearGradient4046);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.98376 L 67.311584,59.54286 L 67.972878,33.091 C 67.972878,33.091 72.161095,32.4297 72.161095,33.31143 C 72.161095,34.19316 71.940663,59.98376 71.720226,59.98376 z"
+ id="path3410" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.38704 C 30.285544,19.74428 31.377356,40.18104 31.499117,51.23926 C 31.605213,61.03566 24.299753,66.58916 19.306963,74.22446 C 18.005406,76.20036 16.905599,78.37466 16,80.69306 L 82.520828,80.69306 C 81.09197,77.35266 79.250653,74.16456 76.942599,71.31726 C 70.852537,64.04336 69.300727,58.97166 68.820553,52.16596 C 68.49377,44.40715 74.305134,21.24285 52.37659,19.47789 C 51.33548,19.39483 50.355648,19.36947 49.41486,19.38704 z"
+ id="path3415" />
+ <svg:path
+ d="M 39.422413,30.54952 C 39.646391,36.37426 46.056486,41.44719 53.739757,41.88022 C 61.423027,42.31325 67.469981,37.9424 67.246003,32.11766 C 67.022025,26.29292 60.611936,21.21999 52.928666,20.78696 C 45.245395,20.35393 39.198435,24.72478 39.422413,30.54952 z"
+ id="path3418"
+ style="fill:url(#linearGradient4035);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4032);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.69356 C 46.632534,51.71666 41.961725,53.24776 41.183793,56.57106 C 39.422099,64.09696 34.99238,75.32256 32.116901,80.86546 L 71.782284,80.86546 C 68.731342,74.02206 65.214664,65.43876 65.113848,58.38386 C 65.113848,54.10436 58.100534,51.66376 51.649785,51.69356 z"
+ id="path3420" />
+ <svg:path
+ id="path3422"
+ d="M 41.867705,65.45496 C 42.004403,73.20156 47.045412,75.02896 53.424847,75.02896 C 59.804502,75.02896 64.435181,73.88546 64.982215,65.45496 C 64.982215,60.17006 59.804502,57.11176 53.424847,57.11176 C 47.045412,57.11176 41.867705,60.17006 41.867705,65.45496 z"
+ style="font-size:12px;fill:url(#linearGradient4029);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.56519 C 57.750179,48.35146 59.562029,51.53606 62.014559,51.67806 C 64.467096,51.82006 66.631591,48.86576 66.849104,45.07945 C 67.06661,41.29315 65.254761,38.10862 62.80223,37.96661 C 60.349693,37.8246 58.185198,40.77888 57.967692,44.56519 z"
+ id="path3424"
+ style="fill:url(#linearGradient4026);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.85514 C 53.426911,49.23586 50.594412,52.71166 47.189836,52.61856 C 43.785255,52.52546 41.09785,48.89876 41.187346,44.51804 C 41.213569,43.23432 41.475341,42.02831 41.918035,40.96704 C 42.986031,38.40672 45.107011,36.68884 47.51391,36.75465 C 49.477103,36.80833 51.201835,38.03696 52.293182,39.90759 C 53.094453,41.28101 53.554288,43.0005 53.516401,44.85514 z"
+ id="path3426"
+ style="fill:url(#linearGradient4023);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.84552 C 50.747175,48.25016 49.53419,50.20226 47.986473,50.20556 C 46.438762,50.20886 45.142409,48.26216 45.090992,45.85752 C 45.039569,43.45284 46.25256,41.50079 47.800271,41.49748 C 49.347988,41.49417 50.644341,43.44085 50.695758,45.84552 z"
+ id="path3428"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.87087 C 60.31233,47.86146 61.060922,49.58536 62.178434,49.72126 C 63.29594,49.85716 64.359198,48.35366 64.553278,46.3631 C 64.747352,44.3725 63.998766,42.64861 62.881254,42.51269 C 61.763742,42.37676 60.70049,43.88027 60.50641,45.87087 z"
+ id="path3432"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.47038 C 50.183599,45.81168 49.5585,46.95458 48.65543,47.02316 C 47.75236,47.09166 46.913296,46.05988 46.781331,44.71858 C 46.649361,43.37728 47.274466,42.23438 48.177535,42.16584 C 49.080605,42.0973 49.91967,43.12908 50.051634,44.47038 z"
+ id="path3434"
+ style="fill:url(#linearGradient4018);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.8154 C 61.335631,45.93937 61.785145,46.91274 62.456178,46.98946 C 63.127217,47.06626 63.765671,46.2173 63.88221,45.09333 C 63.998755,43.96936 63.549246,42.99598 62.878207,42.91923 C 62.207169,42.84248 61.568714,43.69143 61.452175,44.8154 z"
+ id="path3436"
+ style="fill:url(#linearGradient4015);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3438"
+ d="M 62.613319,49.65846 C 60.931882,48.06576 56.776168,43.29082 48.977143,48.30456 C 47.527446,49.24796 46.351121,49.33426 43.56112,50.52896 C 37.979229,52.82256 40.648074,58.35366 46.55933,60.20026 C 49.090309,61.02106 51.390723,64.09526 56.000266,63.83246 C 59.937182,63.60266 60.968815,61.03896 63.387105,59.61986 C 67.68515,57.19406 68.319424,53.91376 65.998538,52.17296 C 63.67742,50.43226 62.76953,49.80646 62.613319,49.65846 z"
+ style="fill:url(#linearGradient4012);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.92846 L 43.491399,54.11016 C 45.816518,54.24686 50.876337,59.30676 56.210487,59.30676 C 61.544636,59.30676 64.692987,54.38266 65.513591,54.38266 C 65.513591,54.38266 58.736912,59.78386 56.090476,59.23276 C 50.311264,58.76466 43.61859,53.92846 43.61859,53.92846 z"
+ id="path3440"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3446"
+ d="M 59.962359,49.22196 C 59.117765,48.46296 56.453617,46.38011 52.920531,48.51246 C 52.176143,48.93466 51.407416,49.39426 50.264187,50.02196 C 47.999712,51.33906 49.121318,53.23706 51.834266,54.43796 C 53.065415,54.94196 55.095074,56.05406 56.640569,55.97626 C 58.358015,55.81846 59.469096,54.69836 60.60736,53.96886 C 62.695518,52.58946 62.568716,51.47576 61.598734,50.54856 C 60.865458,49.91186 60.04083,49.29246 59.962359,49.22196 z"
+ style="fill:url(#linearGradient4008);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4004);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.24804 C 19.46429,42.24804 18.832179,11.59078 48.857331,11.27472 C 78.882477,10.95867 79.830637,39.08749 79.830637,42.56409 C 79.830637,46.04069 76.986149,59.94706 71.613229,59.94706 C 71.929284,45.09252 71.929284,33.39852 71.929284,33.39852 L 37.479379,33.08246 L 37.163323,63.10766 C 37.163323,63.10766 20.728506,63.42366 19.46429,42.24804 z"
+ id="path3450"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.79846 C 32.454958,56.79846 42.551251,67.36846 46.855239,69.20606 C 51.159221,71.04376 59.564639,70.13856 59.564639,70.13856 C 59.564639,70.13856 60.75917,69.48646 60.772833,68.37336 C 60.788032,67.13576 59.712187,66.31816 59.712187,66.31816 C 59.712187,66.31816 50.840468,66.78576 46.883049,64.96026 C 42.925637,63.13486 34.593591,53.84026 34.593591,53.84026 C 34.593591,53.84026 33.432813,53.40966 32.8739,54.26476 C 32.351775,55.06356 32.455249,56.75426 32.454958,56.79846 z"
+ id="path3454"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3456"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4630317e-2)" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ transform="translate(0,-952.36218)"
+ style="display:inline"
+ id="g3490">
+ <svg:rect
+ rx="27.524401"
+ ry="27.524401"
+ y="952.36218"
+ x="0"
+ height="100"
+ width="100"
+ id="rect3492"
+ style="fill:#0033cc;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1" />
+ <svg:path
+ clip-path="url(#clipPath3228)"
+ id="path3494"
+ d="M 23.53125,948.08098 C 8.282732,948.08098 -4,960.33245 -4,975.58098 L -4,1020.5498 C -4,1030.7597 1.5042325,1039.6104 9.71875,1044.3622 C 7.362686,1040.3015 6,1035.6011 6,1030.5498 L 6,985.58098 C 6,970.33245 18.282732,958.08098 33.53125,958.08098 L 78.46875,958.08098 C 83.514556,958.08098 88.254777,959.4172 92.3125,961.76848 C 87.558171,953.56369 78.671461,948.08098 68.46875,948.08098 L 23.53125,948.08098 z"
+ style="opacity:0.9;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3953)" />
+ <svg:path
+ clip-path="url(#clipPath3224)"
+ id="path3496"
+ d="M 90.29375,960.04958 C 92.64503,964.10728 93.98125,968.81628 93.98125,973.86208 L 93.98125,1018.831 C 93.98125,1034.0795 81.69852,1046.3622 66.45,1046.3622 L 21.5125,1046.3622 C 16.47398,1046.3622 11.75378,1044.9884 7.7,1042.6434 C 12.45622,1050.8409 21.31532,1056.3622 31.5125,1056.3622 L 76.45,1056.3622 C 91.69852,1056.3622 103.98125,1044.0795 103.98125,1028.831 L 103.98125,983.86208 C 103.98125,973.65938 98.49854,964.80388 90.29375,960.04958 z"
+ style="opacity:0.9;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3949)" />
+ </svg:g>
+ <svg:path
+ style="fill:#000000;fill-opacity:0.79190799;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter7170)"
+ d="M 52.186543,16.262947 C 33.465843,16.460037 26.655203,28.448187 24.186543,37.450447 C 21.989543,38.778237 20.405293,42.344367 20.405293,46.575447 C 20.405293,50.984817 22.125543,54.706917 24.467793,55.888017 C 26.322543,61.032717 29.382433,64.011817 32.342793,65.731717 C 29.790303,70.432317 25.750033,74.420017 22.624043,79.200517 C 21.322503,81.176417 20.217143,83.350817 19.311543,85.669217 L 35.499043,85.669217 C 35.475523,85.714917 35.459853,85.780517 35.436543,85.825517 L 75.092793,85.825517 C 75.070433,85.775317 75.052703,85.719617 75.030293,85.669217 L 85.842793,85.669217 C 84.413933,82.328817 82.588343,79.141517 80.280293,76.294217 C 76.650353,71.958717 74.638473,68.398517 73.499043,64.794217 L 75.030293,64.950517 C 75.031073,64.950517 75.029513,64.919917 75.030293,64.919217 C 77.915013,64.832017 80.076483,60.731817 81.436543,56.450517 C 84.068413,55.628717 86.092793,51.651017 86.092793,46.887947 C 86.092793,42.291237 84.213403,38.452697 81.717793,37.450447 C 79.131393,28.151157 71.958733,16.054857 52.186543,16.262947 z"
+ id="path3500" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3530"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-23.430834,0.2779174)" />
+ <svg:path
+ style="fill:url(#linearGradient4093);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.3488664;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 71.720226,59.983717 L 67.311584,59.542817 L 67.972878,33.090957 C 67.972878,33.090957 72.161095,32.429657 72.161095,33.311387 C 72.161095,34.193117 71.940663,59.983717 71.720226,59.983717 z"
+ id="path3502" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 49.41486,19.386997 C 30.285544,19.744237 31.377356,40.180997 31.499117,51.239217 C 31.605213,61.035617 24.299753,66.589117 19.306963,74.224417 C 18.005406,76.200317 16.905599,78.374617 16,80.693017 L 82.520828,80.693017 C 81.09197,77.352617 79.250653,74.164517 76.942599,71.317217 C 70.852537,64.043317 69.300727,58.971617 68.820553,52.165917 C 68.49377,44.407107 74.305134,21.242807 52.37659,19.477847 C 51.33548,19.394787 50.355648,19.369427 49.41486,19.386997 z"
+ id="path3504" />
+ <svg:path
+ d="M 39.422413,30.549477 C 39.646391,36.374217 46.056486,41.447147 53.739757,41.880177 C 61.423027,42.313207 67.469981,37.942357 67.246003,32.117617 C 67.022025,26.292877 60.611936,21.219947 52.928666,20.786917 C 45.245395,20.353887 39.198435,24.724737 39.422413,30.549477 z"
+ id="path3506"
+ style="fill:url(#linearGradient4082);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ style="fill:url(#linearGradient4079);stroke:none;stroke-width:1.25"
+ d="M 51.649785,51.693517 C 46.632534,51.716617 41.961725,53.247717 41.183793,56.571017 C 39.422099,64.096917 34.99238,75.322517 32.116901,80.865417 L 71.782284,80.865417 C 68.731342,74.022017 65.214664,65.438717 65.113848,58.383817 C 65.113848,54.104317 58.100534,51.663717 51.649785,51.693517 z"
+ id="path3508" />
+ <svg:path
+ id="path3510"
+ d="M 41.867705,65.454917 C 42.004403,73.201517 47.045412,75.028917 53.424847,75.028917 C 59.804502,75.028917 64.435181,73.885417 64.982215,65.454917 C 64.982215,60.170017 59.804502,57.111717 53.424847,57.111717 C 47.045412,57.111717 41.867705,60.170017 41.867705,65.454917 z"
+ style="font-size:12px;fill:url(#linearGradient4076);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ d="M 57.967692,44.565147 C 57.750179,48.351417 59.562029,51.536017 62.014559,51.678017 C 64.467096,51.820017 66.631591,48.865717 66.849104,45.079407 C 67.06661,41.293107 65.254761,38.108577 62.80223,37.966567 C 60.349693,37.824557 58.185198,40.778837 57.967692,44.565147 z"
+ id="path3512"
+ style="fill:url(#linearGradient4073);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 53.516401,44.855097 C 53.426911,49.235817 50.594412,52.711617 47.189836,52.618517 C 43.785255,52.525417 41.09785,48.898717 41.187346,44.517997 C 41.213569,43.234277 41.475341,42.028267 41.918035,40.966997 C 42.986031,38.406677 45.107011,36.688797 47.51391,36.754607 C 49.477103,36.808287 51.201835,38.036917 52.293182,39.907547 C 53.094453,41.280967 53.554288,43.000457 53.516401,44.855097 z"
+ id="path3514"
+ style="fill:url(#linearGradient4070);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 50.695758,45.845477 C 50.747175,48.250117 49.53419,50.202217 47.986473,50.205517 C 46.438762,50.208817 45.142409,48.262117 45.090992,45.857477 C 45.039569,43.452797 46.25256,41.500747 47.800271,41.497437 C 49.347988,41.494127 50.644341,43.440807 50.695758,45.845477 z"
+ id="path3516"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 60.50641,45.870827 C 60.31233,47.861417 61.060922,49.585317 62.178434,49.721217 C 63.29594,49.857117 64.359198,48.353617 64.553278,46.363057 C 64.747352,44.372457 63.998766,42.648567 62.881254,42.512647 C 61.763742,42.376717 60.70049,43.880227 60.50641,45.870827 z"
+ id="path3518"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 50.051634,44.470337 C 50.183599,45.811637 49.5585,46.954537 48.65543,47.023117 C 47.75236,47.091617 46.913296,46.059837 46.781331,44.718537 C 46.649361,43.377237 47.274466,42.234337 48.177535,42.165797 C 49.080605,42.097257 49.91967,43.129037 50.051634,44.470337 z"
+ id="path3520"
+ style="fill:url(#linearGradient4065);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 61.452175,44.815357 C 61.335631,45.939327 61.785145,46.912697 62.456178,46.989417 C 63.127217,47.066217 63.765671,46.217257 63.88221,45.093287 C 63.998755,43.969317 63.549246,42.995937 62.878207,42.919187 C 62.207169,42.842437 61.568714,43.691387 61.452175,44.815357 z"
+ id="path3522"
+ style="fill:url(#linearGradient4062);stroke:none;stroke-width:4.12025976" />
+ <svg:path
+ id="path3524"
+ d="M 62.613319,49.658417 C 60.931882,48.065717 56.776168,43.290777 48.977143,48.304517 C 47.527446,49.247917 46.351121,49.334217 43.56112,50.528917 C 37.979229,52.822517 40.648074,58.353617 46.55933,60.200217 C 49.090309,61.021017 51.390723,64.095217 56.000266,63.832417 C 59.937182,63.602617 60.968815,61.038917 63.387105,59.619817 C 67.68515,57.194017 68.319424,53.913717 65.998538,52.172917 C 63.67742,50.432217 62.76953,49.806417 62.613319,49.658417 z"
+ style="fill:url(#linearGradient4059);stroke:#e68c3f;stroke-width:0.88224226" />
+ <svg:path
+ style="fill:#000000;fill-opacity:0.76712329;stroke:#e68c3f;stroke-width:0.58816153"
+ d="M 43.61859,53.928417 L 43.491399,54.110117 C 45.816518,54.246817 50.876337,59.306717 56.210487,59.306717 C 61.544636,59.306717 64.692987,54.382617 65.513591,54.382617 C 65.513591,54.382617 58.736912,59.783817 56.090476,59.232717 C 50.311264,58.764617 43.61859,53.928417 43.61859,53.928417 z"
+ id="path3526"
+ sodipodi:nodetypes="ccsccc" />
+ <svg:path
+ id="path3528"
+ d="M 59.962359,49.221917 C 59.117765,48.462917 56.453617,46.380067 52.920531,48.512417 C 52.176143,48.934617 51.407416,49.394217 50.264187,50.021917 C 47.999712,51.339017 49.121318,53.237017 51.834266,54.437917 C 53.065415,54.941917 55.095074,56.054017 56.640569,55.976217 C 58.358015,55.818417 59.469096,54.698317 60.60736,53.968817 C 62.695518,52.589417 62.568716,51.475717 61.598734,50.548517 C 60.865458,49.911817 60.04083,49.292417 59.962359,49.221917 z"
+ style="fill:url(#linearGradient4055);stroke:none" />
+ <svg:path
+ style="fill:url(#radialGradient4051);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.42677993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 19.46429,42.247997 C 19.46429,42.247997 18.832179,11.590737 48.857331,11.274677 C 78.882477,10.958627 79.830637,39.087447 79.830637,42.564047 C 79.830637,46.040647 76.986149,59.947017 71.613229,59.947017 C 71.929284,45.092477 71.929284,33.398477 71.929284,33.398477 L 37.479379,33.082417 L 37.163323,63.107617 C 37.163323,63.107617 20.728506,63.423617 19.46429,42.247997 z"
+ id="path3532"
+ sodipodi:nodetypes="cscccccc" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.59769368px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 32.454958,56.798417 C 32.454958,56.798417 42.551251,67.368417 46.855239,69.206017 C 51.159221,71.043717 59.564639,70.138517 59.564639,70.138517 C 59.564639,70.138517 60.75917,69.486417 60.772833,68.373317 C 60.788032,67.135717 59.712187,66.318117 59.712187,66.318117 C 59.712187,66.318117 50.840468,66.785717 46.883049,64.960217 C 42.925637,63.134817 34.593591,53.840217 34.593591,53.840217 C 34.593591,53.840217 33.432813,53.409617 32.8739,54.264717 C 32.351775,55.063517 32.455249,56.754217 32.454958,56.798417 z"
+ id="path3534"
+ sodipodi:nodetypes="czczczczc" />
+ <svg:path
+ sodipodi:type="arc"
+ style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.60000002;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3536"
+ sodipodi:cx="210.73929"
+ sodipodi:cy="71.507187"
+ sodipodi:rx="11.827205"
+ sodipodi:ry="16.665607"
+ d="M 222.56649,71.507187 A 11.827205,16.665607 0 1 1 198.91208,71.507187 A 11.827205,16.665607 0 1 1 222.56649,71.507187 z"
+ transform="matrix(0.4771043,0,0,0.5824215,-77.82053,-3.4672617e-2)" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/sprites/tux_helmet_yellow0.png b/data/images/sprites/tux_helmet_yellow0.png
new file mode 100644
index 0000000..03d4b2b
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow0.png differ
diff --git a/data/images/sprites/tux_helmet_yellow1.png b/data/images/sprites/tux_helmet_yellow1.png
new file mode 100644
index 0000000..15e4722
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow1.png differ
diff --git a/data/images/sprites/tux_helmet_yellow2.png b/data/images/sprites/tux_helmet_yellow2.png
new file mode 100644
index 0000000..a64c830
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow2.png differ
diff --git a/data/images/sprites/tux_helmet_yellow3.png b/data/images/sprites/tux_helmet_yellow3.png
new file mode 100644
index 0000000..cafb4dc
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow3.png differ
diff --git a/data/images/sprites/tux_helmet_yellow4.png b/data/images/sprites/tux_helmet_yellow4.png
new file mode 100644
index 0000000..ae2a1a1
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow4.png differ
diff --git a/data/images/sprites/tux_helmet_yellow5.png b/data/images/sprites/tux_helmet_yellow5.png
new file mode 100644
index 0000000..5180945
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellow5.png differ
diff --git a/data/images/sprites/tux_helmet_yellowd.png b/data/images/sprites/tux_helmet_yellowd.png
new file mode 100644
index 0000000..4d4736c
Binary files /dev/null and b/data/images/sprites/tux_helmet_yellowd.png differ
diff --git a/data/images/sprites/tux_helmetd.png b/data/images/sprites/tux_helmetd.png
new file mode 100644
index 0000000..29a7efc
Binary files /dev/null and b/data/images/sprites/tux_helmetd.png differ
diff --git a/data/images/status/Makefile.am b/data/images/status/Makefile.am
new file mode 100644
index 0000000..2cd3398
--- /dev/null
+++ b/data/images/status/Makefile.am
@@ -0,0 +1,33 @@
+## Process with AutoMake:
+
+statusdir = $(pkgdatadir)/images/status
+
+dist_status_DATA = demo.png \
+ demo-small.png \
+ gameover.png \
+ gameover_won.png \
+ keypad_no_neg.png \
+ keypad.png \
+ led_neg_sign.png \
+ lednums.png \
+ left_gray.png \
+ left.png \
+ left_gray.svg \
+ left.svg \
+ loading.png \
+ nbs.png \
+ numbers.png \
+ nums.png \
+ paused.png \
+ right_gray.png \
+ right.png \
+ right_gray.svg \
+ right.svg \
+ score.png \
+ standby.png \
+ stop.png \
+ stop.svg \
+ title.png \
+ tux4kids.png \
+ tux4kids.svg \
+ wave.png
diff --git a/data/images/status/demo-small.png b/data/images/status/demo-small.png
new file mode 100644
index 0000000..63a6c07
Binary files /dev/null and b/data/images/status/demo-small.png differ
diff --git a/data/images/status/demo.png b/data/images/status/demo.png
new file mode 100644
index 0000000..976d21f
Binary files /dev/null and b/data/images/status/demo.png differ
diff --git a/data/images/status/gameover.png b/data/images/status/gameover.png
new file mode 100644
index 0000000..7467bde
Binary files /dev/null and b/data/images/status/gameover.png differ
diff --git a/data/images/status/gameover_won.png b/data/images/status/gameover_won.png
new file mode 100644
index 0000000..6297fa1
Binary files /dev/null and b/data/images/status/gameover_won.png differ
diff --git a/data/images/status/keypad.png b/data/images/status/keypad.png
new file mode 100644
index 0000000..570e682
Binary files /dev/null and b/data/images/status/keypad.png differ
diff --git a/data/images/status/keypad_no_neg.png b/data/images/status/keypad_no_neg.png
new file mode 100644
index 0000000..86d5320
Binary files /dev/null and b/data/images/status/keypad_no_neg.png differ
diff --git a/data/images/status/led_neg_sign.png b/data/images/status/led_neg_sign.png
new file mode 100644
index 0000000..a6a5821
Binary files /dev/null and b/data/images/status/led_neg_sign.png differ
diff --git a/data/images/status/lednums.png b/data/images/status/lednums.png
new file mode 100644
index 0000000..e6f2404
Binary files /dev/null and b/data/images/status/lednums.png differ
diff --git a/data/images/status/left.png b/data/images/status/left.png
new file mode 100644
index 0000000..73f9a29
Binary files /dev/null and b/data/images/status/left.png differ
diff --git a/data/images/status/left.svg b/data/images/status/left.svg
new file mode 100644
index 0000000..f27f510
--- /dev/null
+++ b/data/images/status/left.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="284.74118"
+ height="284.74118"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="left.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ style="display:inline">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#0000ff;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3231"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3253"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3257"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="206.8645" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2398693"
+ inkscape:cx="78.832708"
+ inkscape:cy="156.3241"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-width="1272"
+ inkscape:window-height="736"
+ inkscape:window-x="0"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="blue"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-53.599009,-65.504064)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3231);fill-opacity:1;fill-rule:nonzero;stroke:#000090;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2453"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101525,1.0101525)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3253);fill-opacity:1;fill-rule:nonzero;stroke:#1f1f8b;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3251"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101524,1.0101523)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="left"
+ style="display:inline">
+ <path
+ style="fill:#fffffb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 51,139.64622 C 51,139.64622 126.40449,58.436559 132.62618,52.830749 C 138.47038,47.565068 147.58301,51.733979 152.73697,56.379669 C 157.89094,61.025369 165.94398,74.526209 159.8349,81.222129 C 154.01971,87.595949 118.79264,122.41669 118.79264,122.41669 C 118.79264,122.41669 208.55851,123.83303 218.88827,123.44689 C 229.88495,123.03582 233.60523,135.15193 233.18016,141.55382 C 232.75511,147.95569 232.71767,161.28884 218.52594,162.33227 C 203.66986,163.42453 119.61331,161.66439 119.61331,161.66439 C 119.61331,161.66439 156.50244,203.17343 161.22743,208.67779 C 166.22421,214.49878 160.33797,224.49415 155.10295,227.91094 C 149.86794,231.32774 139.85442,237.74171 132.62618,230.27688 C 125.71307,223.1375 51,139.64622 51,139.64622 z"
+ id="path3235"
+ sodipodi:nodetypes="czzzczzzczzzc" />
+ </g>
+</svg>
diff --git a/data/images/status/left_gray.png b/data/images/status/left_gray.png
new file mode 100644
index 0000000..2a46d2c
Binary files /dev/null and b/data/images/status/left_gray.png differ
diff --git a/data/images/status/left_gray.svg b/data/images/status/left_gray.svg
new file mode 100644
index 0000000..f98ce8a
--- /dev/null
+++ b/data/images/status/left_gray.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="284.74118"
+ height="284.74118"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="left_gray.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ style="display:inline">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#343430;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3231"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3253"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3257"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="206.8645" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2398693"
+ inkscape:cx="197.79686"
+ inkscape:cy="156.3241"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:window-width="1272"
+ inkscape:window-height="736"
+ inkscape:window-x="0"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="gray"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-53.599009,-65.504064)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3231);fill-opacity:1;fill-rule:nonzero;stroke:#000090;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2453"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101525,1.0101525)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3253);fill-opacity:1;fill-rule:nonzero;stroke:#1f1f1d;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3251"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101524,1.0101523)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="left"
+ style="display:inline">
+ <path
+ style="fill:#fffffb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 51,139.64622 C 51,139.64622 126.40449,58.436559 132.62618,52.830749 C 138.47038,47.565068 147.58301,51.733979 152.73697,56.379669 C 157.89094,61.025369 165.94398,74.526209 159.8349,81.222129 C 154.01971,87.595949 118.79264,122.41669 118.79264,122.41669 C 118.79264,122.41669 208.55851,123.83303 218.88827,123.44689 C 229.88495,123.03582 233.60523,135.15193 233.18016,141.55382 C 232.75511,147.95569 232.71767,161.28884 218.52594,162.33227 C 203.66986,163.42453 119.61331,161.66439 119.61331,161.66439 C 119.61331,161.66439 156.50244,203.17343 161.22743,208.67779 C 166.22421,214.49878 160.33797,224.49415 155.10295,227.91094 C 149.86794,231.32774 139.85442,237.74171 132.62618,230.27688 C 125.71307,223.1375 51,139.64622 51,139.64622 z"
+ id="path3235"
+ sodipodi:nodetypes="czzzczzzczzzc" />
+ </g>
+</svg>
diff --git a/data/images/status/loading.png b/data/images/status/loading.png
new file mode 100644
index 0000000..04796df
Binary files /dev/null and b/data/images/status/loading.png differ
diff --git a/data/images/status/nbs.png b/data/images/status/nbs.png
new file mode 100644
index 0000000..a10cf22
Binary files /dev/null and b/data/images/status/nbs.png differ
diff --git a/data/images/status/numbers.png b/data/images/status/numbers.png
new file mode 100644
index 0000000..410f110
Binary files /dev/null and b/data/images/status/numbers.png differ
diff --git a/data/images/status/nums.png b/data/images/status/nums.png
new file mode 100644
index 0000000..b36e0f0
Binary files /dev/null and b/data/images/status/nums.png differ
diff --git a/data/images/status/options.png b/data/images/status/options.png
new file mode 100644
index 0000000..1b17593
Binary files /dev/null and b/data/images/status/options.png differ
diff --git a/data/images/status/paused.png b/data/images/status/paused.png
new file mode 100644
index 0000000..dd772f0
Binary files /dev/null and b/data/images/status/paused.png differ
diff --git a/data/images/status/right.png b/data/images/status/right.png
new file mode 100644
index 0000000..b34e4c8
Binary files /dev/null and b/data/images/status/right.png differ
diff --git a/data/images/status/right.svg b/data/images/status/right.svg
new file mode 100644
index 0000000..8a0f7f3
--- /dev/null
+++ b/data/images/status/right.svg
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="284.74118"
+ height="284.74118"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="right.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ style="display:inline">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#0000ff;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3231"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3253"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3257"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="206.8645" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2398693"
+ inkscape:cx="78.832708"
+ inkscape:cy="156.3241"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer3"
+ showgrid="false"
+ inkscape:window-width="1272"
+ inkscape:window-height="736"
+ inkscape:window-x="0"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="blue"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-53.599009,-65.504064)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3231);fill-opacity:1;fill-rule:nonzero;stroke:#000090;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2453"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101525,1.0101525)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3253);fill-opacity:1;fill-rule:nonzero;stroke:#1f1f8b;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3251"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101524,1.0101523)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="right"
+ style="display:inline">
+ <path
+ style="fill:#fffffb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 233.21244,139.64623 C 233.21244,139.64623 157.80795,58.436564 151.58626,52.830754 C 145.74206,47.565073 136.62943,51.733984 131.47547,56.379674 C 126.3215,61.025374 118.26846,74.526214 124.37754,81.222134 C 130.19273,87.595954 165.4198,122.4167 165.4198,122.4167 C 165.4198,122.4167 75.65393,123.83304 65.32417,123.4469 C 54.32749,123.03583 50.60721,135.15194 51.03228,141.55383 C 51.45733,147.9557 51.49477,161.28884 65.6865,162.33227 C 80.54258,163.42453 164.59913,161.66439 164.59913,161.66439 C 164.59913,161.66439 127.71,203.17343 122.98501,208.67779 C 117.98823,214.49878 123.87447,224.49415 129.10949,227.91094 C 134.3445,231.32774 144.35802,237.74171 151.58626,230.27688 C 158.49937,223.1375 233.21244,139.64623 233.21244,139.64623 z"
+ id="path3248"
+ sodipodi:nodetypes="czzzczzzczzzc" />
+ </g>
+</svg>
diff --git a/data/images/status/right_gray.png b/data/images/status/right_gray.png
new file mode 100644
index 0000000..96a4e9a
Binary files /dev/null and b/data/images/status/right_gray.png differ
diff --git a/data/images/status/right_gray.svg b/data/images/status/right_gray.svg
new file mode 100644
index 0000000..22b4af1
--- /dev/null
+++ b/data/images/status/right_gray.svg
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="284.74118"
+ height="284.74118"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="right_gray.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ style="display:inline">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#343430;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3231"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3253"
+ gradientUnits="userSpaceOnUse"
+ x1="196.97975"
+ y1="343.23511"
+ x2="196.97975"
+ y2="71.504059" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2398693"
+ inkscape:cx="197.79686"
+ inkscape:cy="156.3241"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer3"
+ showgrid="false"
+ inkscape:window-width="1272"
+ inkscape:window-height="736"
+ inkscape:window-x="0"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="gray"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-53.599009,-65.504064)"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3231);fill-opacity:1;fill-rule:nonzero;stroke:#000090;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2453"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101525,1.0101525)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3253);fill-opacity:1;fill-rule:nonzero;stroke:#1f1f1d;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path3251"
+ sodipodi:cx="196.97975"
+ sodipodi:cy="206.8645"
+ sodipodi:rx="136.37059"
+ sodipodi:ry="136.37059"
+ d="M 333.35034,206.8645 A 136.37059,136.37059 0 1 1 60.609161,206.8645 A 136.37059,136.37059 0 1 1 333.35034,206.8645 z"
+ transform="translate(-1.0101524,1.0101523)" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer3"
+ inkscape:label="right"
+ style="display:inline">
+ <path
+ style="fill:#fffffb;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2.00000024;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 233.21244,139.64623 C 233.21244,139.64623 157.80795,58.436564 151.58626,52.830754 C 145.74206,47.565073 136.62943,51.733984 131.47547,56.379674 C 126.3215,61.025374 118.26846,74.526214 124.37754,81.222134 C 130.19273,87.595954 165.4198,122.4167 165.4198,122.4167 C 165.4198,122.4167 75.65393,123.83304 65.32417,123.4469 C 54.32749,123.03583 50.60721,135.15194 51.03228,141.55383 C 51.45733,147.9557 51.49477,161.28884 65.6865,162.33227 C 80.54258,163.42453 164.59913,161.66439 164.59913,161.66439 C 164.59913,161.66439 127.71,203.17343 122.98501,208.67779 C 117.98823,214.49878 123.87447,224.49415 129.10949,227.91094 C 134.3445,231.32774 144.35802,237.74171 151.58626,230.27688 C 158.49937,223.1375 233.21244,139.64623 233.21244,139.64623 z"
+ id="path3248"
+ sodipodi:nodetypes="czzzczzzczzzc" />
+ </g>
+</svg>
diff --git a/data/images/status/score.png b/data/images/status/score.png
new file mode 100644
index 0000000..432979d
Binary files /dev/null and b/data/images/status/score.png differ
diff --git a/data/images/status/standby.png b/data/images/status/standby.png
new file mode 100644
index 0000000..4649d5f
Binary files /dev/null and b/data/images/status/standby.png differ
diff --git a/data/images/status/stop.png b/data/images/status/stop.png
new file mode 100644
index 0000000..0662ca8
Binary files /dev/null and b/data/images/status/stop.png differ
diff --git a/data/images/status/stop.svg b/data/images/status/stop.svg
new file mode 100644
index 0000000..bab8e49
--- /dev/null
+++ b/data/images/status/stop.svg
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32.000011"
+ height="32.000011"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="stop.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3225">
+ <stop
+ style="stop-color:#b80000;stop-opacity:1;"
+ offset="0"
+ id="stop3227" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3229" />
+ </linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3225"
+ id="linearGradient3284"
+ x1="149.50258"
+ y1="318.41022"
+ x2="149.50258"
+ y2="58.953316"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.8286513"
+ inkscape:cx="43.247149"
+ inkscape:cy="13.687266"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1272"
+ inkscape:window-height="736"
+ inkscape:window-x="0"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-19.774133,-286.41021)">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient3284);fill-opacity:1;fill-rule:nonzero;stroke:#d10000;stroke-width:15;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path2453"
+ sodipodi:cx="149.50258"
+ sodipodi:cy="188.68176"
+ sodipodi:rx="122.22845"
+ sodipodi:ry="122.22845"
+ d="M 271.73103,188.68176 A 122.22845,122.22845 0 1 1 27.274132,188.68176 A 122.22845,122.22845 0 1 1 271.73103,188.68176 z"
+ transform="matrix(0.1233346,0,0,0.1233346,17.335298,279.13923)" />
+ <path
+ style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.37000367;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:1.89999998;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 28.752917,292.31286 L 25.413643,295.65573 L 32.311454,302.55354 L 25.413643,309.45135 L 28.752917,312.79422 L 35.650728,305.89282 L 42.552133,312.79422 L 45.891407,309.45135 L 38.993597,302.55354 L 45.891407,295.65573 L 42.552133,292.31286 L 35.650728,299.21427 L 28.752917,292.31286 z"
+ id="rect3277" />
+ </g>
+</svg>
diff --git a/data/images/status/title.png b/data/images/status/title.png
new file mode 100644
index 0000000..09b6ae8
Binary files /dev/null and b/data/images/status/title.png differ
diff --git a/data/images/status/tux4kids.png b/data/images/status/tux4kids.png
new file mode 100644
index 0000000..d638e5b
Binary files /dev/null and b/data/images/status/tux4kids.png differ
diff --git a/data/images/status/tux4kids.svg b/data/images/status/tux4kids.svg
new file mode 100644
index 0000000..41aceba
--- /dev/null
+++ b/data/images/status/tux4kids.svg
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ width="192"
+ height="67"
+ version="1.0"
+ sodipodi:docname="tux4kids.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective9" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="722"
+ inkscape:window-width="1280"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="1.9887378"
+ inkscape:cx="89.711158"
+ inkscape:cy="122.27851"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="svg2" />
+ <g
+ id="g2384"
+ transform="translate(0.8583871,-0.1656694)">
+ <path
+ style="fill:#929393"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 109.04966,47.47432 C 112.98052,45.441593 112.77193,45.001958 108.00518,45.272919 C 104.95612,45.446239 104.00914,45.914307 104.00518,47.25 C 103.99882,49.400062 105.22062,49.454393 109.04966,47.47432 z M 134.53212,47.551027 C 136.43945,46.754091 138,45.888455 138,45.627389 C 138,45.366324 135.97501,45.230862 133.50002,45.326363 C 129.94715,45.463455 129.00004,45.868321 129.00002,47.25 C 129,49.377985 130.02598,49.433813 134.53212,47.551027 z M 148.50332,45.994623 C 148.84975,45.434099 148.00116,45 146.55902,45 C 144.65192,45 144,45.518471 144,47.035184 C 144,48.741058 144.31461,48.901996 145.94431,48.029806 C 147.01368,47.457498 148.16523,46.541665 148.50332,45.994623 z M 174.99938,47.000332 C 178.22437,45.27437 176.38946,44.053681 172.27693,45.189203 C 170.23789,45.75221 166.64142,45.948569 164.28479,45.625557 C 159.83968,45.016286 158.68574,46.088831 161.75,47.981551 C 163.76803,49.228039 171.97214,48.620462 174.99938,47.000332 z M 118,45 C 118,44.45 117.325,44 116.5,44 C 115.675,44 115,44.45 115,45 C 115,45.55 115.675,46 116.5,46 C 117.325,46 118,45.55 118,45 z M 64.604167,35.270833 C 64.271875,34.938542 64.035526,35.529167 64.078947,36.583333 C 64.126931,37.748276 64.363888,37.985233 64.683114,37.1875 C 64.971985,36.465625 64.936458,35.603125 64.604167,35.270833 z M 64.604167,30.270833 C 64.271875,29.938542 64.035526,30.529167 64.078947,31.583333 C 64.126931,32.748276 64.363888,32.985233 64.683114,32.1875 C 64.971985,31.465625 64.936458,30.603125 64.604167,30.270833 z"
+ id="path2440" />
+ <path
+ style="fill:#6ca0aa"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 109.04966,47.47432 C 112.98052,45.441593 112.77193,45.001958 108.00518,45.272919 C 104.95612,45.446239 104.00914,45.914307 104.00518,47.25 C 103.99882,49.400062 105.22062,49.454393 109.04966,47.47432 z M 134.53212,47.551027 C 136.43945,46.754091 138,45.888455 138,45.627389 C 138,45.366324 135.97501,45.230862 133.50002,45.326363 C 129.94715,45.463455 129.00004,45.868321 129.00002,47.25 C 129,49.377985 130.02598,49.433813 134.53212,47.551027 z M 148.50332,45.994623 C 148.84975,45.434099 148.00116,45 146.55902,45 C 144.65192,45 144,45.518471 144,47.035184 C 144,48.741058 144.31461,48.901996 145.94431,48.029806 C 147.01368,47.457498 148.16523,46.541665 148.50332,45.994623 z M 174.99938,47.000332 C 178.22437,45.27437 176.38946,44.053681 172.27693,45.189203 C 170.23789,45.75221 166.64142,45.948569 164.28479,45.625557 C 159.83968,45.016286 158.68574,46.088831 161.75,47.981551 C 163.76803,49.228039 171.97214,48.620462 174.99938,47.000332 z M 87.5,47 C 86.4,46.527314 84.43504,46.108942 83.133423,46.070285 C 81.160329,46.011686 80.846306,45.584333 81.244751,43.5 C 81.807504,40.556146 81.322188,40.398449 78.779987,42.699109 C 76.962304,44.344089 77.007581,44.454252 80.201247,46.157193 C 82.015561,47.12463 84.85,47.903403 86.5,47.887799 C 89.06715,47.863523 89.211434,47.735428 87.5,47 z M 118,45 C 118,44.45 117.325,44 116.5,44 C 115.675,44 115,44.45 115,45 C 115,45.55 115.675,46 116.5,46 C 117.325,46 118,45.55 118,45 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 134.57015,34.322214 C 134.26434,33.525276 133.51247,33.183275 132.89934,33.562213 C 131.75754,34.267883 132.38752,41.256672 133.78654,43.404618 C 134.64437,44.721654 135.36328,36.389088 134.57015,34.322214 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 118.09735,40.25 C 116.7607,37.846005 112.09697,33 111.12005,33 C 109.79271,33 107.9612,37.857988 109.03771,38.523306 C 109.56697,38.850406 110,38.191476 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.71009,42 118.81069,41.532964 118.09735,40.25 z M 63.992385,39.509176 C 65.633442,37.531823 66.293811,28.417509 64.974617,25.952571 C 63.865115,23.879448 61.514472,23.358551 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.969749,36.532201 C 60.771142,37.80806 60.089166,39.335257 60.454248,39.925972 C 61.369579,41.407008 62.530858,41.270207 63.992385,39.509176 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 101,35.440983 C 101,35.198442 100.55,35 100,35 C 99.45,35 99,35.476558 99,36.059017 C 99,36.641476 99.45,36.839919 100,36.5 C 100.55,36.160081 101,35.683524 101,35.440983 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 90,23.258564 C 90,23.093998 88.3125,23.829065 86.25,24.892047 C 81.385619,27.399078 75.5501,33.46303 76.508925,35.014441 C 76.996688,35.803659 79.381175,34.082214 83.621344,29.879735 C 87.129605,26.402658 90,23.423131 90,23.258564 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 100,26.2 C 100,24.66 100.54,22.86 101.2,22.2 C 102.13333,21.266667 102.04631,21 100.80841,21 C 99.933032,21 98.944952,22.083195 98.612673,23.407099 C 98.280394,24.731004 97.733465,26.531004 97.397276,27.407099 C 96.994368,28.457059 97.333765,29 98.393011,29 C 99.48638,29 100,28.105074 100,26.2 z M 71,18.881966 C 71,18.331966 70.55,18.160081 70,18.5 C 69.45,18.839919 69,19.568034 69,20.118034 C 69,20.668034 69.45,20.839919 70,20.5 C 70.55,20.160081 71,19.431966 71,18.881966 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z"
+ id="path2438" />
+ <path
+ style="fill:#fbac02"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.86943,45.428138 105,45.514937 105,43.5 C 105,42.675 104.55,42 104,42 C 102.72874,42 102.72383,44.143423 103.98748,47.467057 C 104.94554,49.986965 105.06319,50.018685 107.93777,48.532179 C 109.56733,47.689505 111.36473,46.212534 111.932,45.250022 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 87.5,47 C 86.4,46.527314 84.43504,46.108942 83.133423,46.070285 C 81.160329,46.011686 80.846306,45.584333 81.244751,43.5 C 81.807504,40.556146 81.322188,40.398449 78.779987,42.699109 C 76.962304,44.344089 77.007581,44.454252 80.201247,46.157193 C 82.015561,47.12463 84.85,47.903403 86.5,47.887799 C 89.06715,47.863523 89.211434,47.735428 87.5,47 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 118.09735,40.25 C 116.7607,37.846005 112.09697,33 111.12005,33 C 109.79271,33 107.9612,37.857988 109.03771,38.523306 C 109.56697,38.850406 110,38.191476 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.71009,42 118.81069,41.532964 118.09735,40.25 z M 63.992385,39.509176 C 65.633442,37.531823 66.293811,28.417509 64.974617,25.952571 C 63.865115,23.879448 61.514472,23.358551 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.969749,36.532201 C 60.771142,37.80806 60.089166,39.335257 60.454248,39.925972 C 61.369579,41.407008 62.530858,41.270207 63.992385,39.509176 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 101,35.440983 C 101,35.198442 100.55,35 100,35 C 99.45,35 99,35.476558 99,36.059017 C 99,36.641476 99.45,36.839919 100,36.5 C 100.55,36.160081 101,35.683524 101,35.440983 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 90,23.258564 C 90,23.093998 88.3125,23.829065 86.25,24.892047 C 81.385619,27.399078 75.5501,33.46303 76.508925,35.014441 C 76.996688,35.803659 79.381175,34.082214 83.621344,29.879735 C 87.129605,26.402658 90,23.423131 90,23.258564 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 100,26.2 C 100,24.66 100.54,22.86 101.2,22.2 C 102.13333,21.266667 102.04631,21 100.80841,21 C 99.933032,21 98.944952,22.083195 98.612673,23.407099 C 98.280394,24.731004 97.733465,26.531004 97.397276,27.407099 C 96.994368,28.457059 97.333765,29 98.393011,29 C 99.48638,29 100,28.105074 100,26.2 z M 71,18.881966 C 71,18.331966 70.55,18.160081 70,18.5 C 69.45,18.839919 69,19.568034 69,20.118034 C 69,20.668034 69.45,20.839919 70,20.5 C 70.55,20.160081 71,19.431966 71,18.881966 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z"
+ id="path2436" />
+ <path
+ style="fill:#8834dd"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 97.793623,49.285498 C 103.33061,46.537368 103.02096,44.66084 97.438017,47.130443 C 90.390968,50.247688 81.552249,49.479127 75.515762,45.224218 C 70.191835,41.471568 69.043315,43.413467 74.25,47.364348 C 80.646067,52.217743 90.298705,53.005394 97.793623,49.285498 z M 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.86943,45.428138 105,45.514937 105,43.5 C 105,42.675 104.55,42 104,42 C 102.72874,42 102.72383,44.143423 103.98748,47.467057 C 104.94554,49.986965 105.06319,50.018685 107.93777,48.532179 C 109.56733,47.689505 111.36473,46.212534 111.932,45.250022 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 87.5,47 C 86.4,46.527314 84.43504,46.108942 83.133423,46.070285 C 81.160329,46.011686 80.846306,45.584333 81.244751,43.5 C 81.807504,40.556146 81.322188,40.398449 78.779987,42.699109 C 76.962304,44.344089 77.007581,44.454252 80.201247,46.157193 C 82.015561,47.12463 84.85,47.903403 86.5,47.887799 C 89.06715,47.863523 89.211434,47.735428 87.5,47 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 93.342959,42.588355 C 97.527477,42.051773 103.28012,38.214494 105.15475,34.709352 C 106.08344,32.972911 105.54322,33.196118 102.63095,35.752135 C 97.11913,40.58971 88,43.873945 88,41.021439 C 88,40.426161 87.020798,40.489032 85.5,41.181954 C 84.125,41.808446 83,42.670507 83,43.097644 C 83,43.8321 84.04489,43.78065 93.342959,42.588355 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 118.09735,40.25 C 116.7607,37.846005 112.09697,33 111.12005,33 C 109.79271,33 107.9612,37.857988 109.03771,38.523306 C 109.56697,38.850406 110,38.191476 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.71009,42 118.81069,41.532964 118.09735,40.25 z M 63.992385,39.509176 C 65.633442,37.531823 66.293811,28.417509 64.974617,25.952571 C 63.865115,23.879448 61.514472,23.358551 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.969749,36.532201 C 60.771142,37.80806 60.089166,39.335257 60.454248,39.925972 C 61.369579,41.407008 62.530858,41.270207 63.992385,39.509176 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 88.573316,29.287809 C 96.402123,22.122801 98.154034,20 96.238386,20 C 95.097807,20 79,35.016692 79,36.080671 C 79,37.81134 80.157658,36.98991 88.573316,29.287809 z M 89.862093,33.965755 C 90.488966,32.167505 90.528815,31.173174 89.959918,31.524772 C 89.431963,31.851066 89,32.679608 89,33.365975 C 89,34.052343 87.7625,35.102914 86.25,35.700578 L 83.5,36.787239 L 86.152175,36.893619 C 88.250104,36.977769 89.025395,36.36591 89.862093,33.965755 z M 94.1875,36.316886 C 93.465625,36.028015 92.603125,36.063542 92.270833,36.395833 C 91.938542,36.728125 92.529167,36.964474 93.583333,36.921053 C 94.748276,36.873069 94.985233,36.636112 94.1875,36.316886 z M 101,35.440983 C 101,35.198442 100.55,35 100,35 C 99.45,35 99,35.476558 99,36.059017 C 99,36.641476 99.45,36.839919 100,36.5 C 100.55,36.160081 101,35.683524 101,35.440983 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 90,23.258564 C 90,23.093998 88.3125,23.829065 86.25,24.892047 C 81.385619,27.399078 75.5501,33.46303 76.508925,35.014441 C 76.996688,35.803659 79.381175,34.082214 83.621344,29.879735 C 87.129605,26.402658 90,23.423131 90,23.258564 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 100,26.2 C 100,24.66 100.54,22.86 101.2,22.2 C 102.13333,21.266667 102.04631,21 100.80841,21 C 99.933032,21 98.944952,22.083195 98.612673,23.407099 C 98.280394,24.731004 97.733465,26.531004 97.397276,27.407099 C 96.994368,28.457059 97.333765,29 98.393011,29 C 99.48638,29 100,28.105074 100,26.2 z M 71,18.881966 C 71,18.331966 70.55,18.160081 70,18.5 C 69.45,18.839919 69,19.568034 69,20.118034 C 69,20.668034 69.45,20.839919 70,20.5 C 70.55,20.160081 71,19.431966 71,18.881966 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 105.0767,16.592415 C 102.56514,13.566177 95.483781,11 89.644438,11 C 83.914495,11 76,13.912053 76,16.020324 C 76,17.425787 78.658958,17.22772 81.834215,15.585731 C 88.807619,11.979643 98.050341,13.083182 102.55391,18.059567 C 104.69774,20.428475 107.1006,19.031069 105.0767,16.592415 z"
+ id="path2434" />
+ <path
+ style="fill:#a98c63"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 97.793623,49.285498 C 103.33061,46.537368 103.02096,44.66084 97.438017,47.130443 C 90.390968,50.247688 81.552249,49.479127 75.515762,45.224218 C 70.191835,41.471568 69.043315,43.413467 74.25,47.364348 C 80.646067,52.217743 90.298705,53.005394 97.793623,49.285498 z M 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.86943,45.428138 105,45.514937 105,43.5 C 105,42.675 104.55,42 104,42 C 102.72874,42 102.72383,44.143423 103.98748,47.467057 C 104.94554,49.986965 105.06319,50.018685 107.93777,48.532179 C 109.56733,47.689505 111.36473,46.212534 111.932,45.250022 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 87.5,47 C 86.4,46.527314 84.43504,46.108942 83.133423,46.070285 C 81.160329,46.011686 80.846306,45.584333 81.244751,43.5 C 81.807504,40.556146 81.322188,40.398449 78.779987,42.699109 C 76.962304,44.344089 77.007581,44.454252 80.201247,46.157193 C 82.015561,47.12463 84.85,47.903403 86.5,47.887799 C 89.06715,47.863523 89.211434,47.735428 87.5,47 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 93.342959,42.588355 C 97.527477,42.051773 103.28012,38.214494 105.15475,34.709352 C 106.08344,32.972911 105.54322,33.196118 102.63095,35.752135 C 97.11913,40.58971 88,43.873945 88,41.021439 C 88,40.426161 87.020798,40.489032 85.5,41.181954 C 84.125,41.808446 83,42.670507 83,43.097644 C 83,43.8321 84.04489,43.78065 93.342959,42.588355 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 118.09735,40.25 C 116.7607,37.846005 112.09697,33 111.12005,33 C 109.79271,33 107.9612,37.857988 109.03771,38.523306 C 109.56697,38.850406 110,38.191476 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.71009,42 118.81069,41.532964 118.09735,40.25 z M 63.992385,39.509176 C 65.633442,37.531823 66.293811,28.417509 64.974617,25.952571 C 63.865115,23.879448 61.514472,23.358551 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.969749,36.532201 C 60.771142,37.80806 60.089166,39.335257 60.454248,39.925972 C 61.369579,41.407008 62.530858,41.270207 63.992385,39.509176 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 88.573316,29.287809 C 96.402123,22.122801 98.154034,20 96.238386,20 C 95.097807,20 79,35.016692 79,36.080671 C 79,37.81134 80.157658,36.98991 88.573316,29.287809 z M 89.862093,33.965755 C 90.488966,32.167505 90.528815,31.173174 89.959918,31.524772 C 89.431963,31.851066 89,32.679608 89,33.365975 C 89,34.052343 87.7625,35.102914 86.25,35.700578 L 83.5,36.787239 L 86.152175,36.893619 C 88.250104,36.977769 89.025395,36.36591 89.862093,33.965755 z M 94.1875,36.316886 C 93.465625,36.028015 92.603125,36.063542 92.270833,36.395833 C 91.938542,36.728125 92.529167,36.964474 93.583333,36.921053 C 94.748276,36.873069 94.985233,36.636112 94.1875,36.316886 z M 101,35.440983 C 101,35.198442 100.55,35 100,35 C 99.45,35 99,35.476558 99,36.059017 C 99,36.641476 99.45,36.839919 100,36.5 C 100.55,36.160081 101,35.683524 101,35.440983 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 90,23.258564 C 90,23.093998 88.3125,23.829065 86.25,24.892047 C 81.385619,27.399078 75.5501,33.46303 76.508925,35.014441 C 76.996688,35.803659 79.381175,34.082214 83.621344,29.879735 C 87.129605,26.402658 90,23.423131 90,23.258564 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 100,26.2 C 100,24.66 100.54,22.86 101.2,22.2 C 102.13333,21.266667 102.04631,21 100.80841,21 C 99.933032,21 98.944952,22.083195 98.612673,23.407099 C 98.280394,24.731004 97.733465,26.531004 97.397276,27.407099 C 96.994368,28.457059 97.333765,29 98.393011,29 C 99.48638,29 100,28.105074 100,26.2 z M 12.75,24.816752 C 12.360851,22.974911 17.627133,20.844155 23.995791,20.266665 L 29.784374,19.741775 L 30.471642,22.870887 C 31.384778,27.028367 33.119874,26.91656 32.34765,22.75 C 31.33771,17.300831 30.01079,16.561837 23.842383,18.013211 C 15.053775,20.081095 11,22.005134 11,24.10858 C 11,25.148861 11.45,26 12,26 C 12.55,26 12.8875,25.467538 12.75,24.816752 z M 38.974435,21.158757 C 42.283854,20.005087 43,20.451243 43,23.666667 C 43,25.074074 43.595238,26 44.5,26 C 45.50722,26 46,24.99262 46,22.933578 C 46,20.188075 46.283665,19.900271 48.710454,20.183578 C 50.611412,20.405498 51.626941,21.246642 52.110774,23 C 52.735054,25.262322 52.810117,25.293866 52.90032,23.331787 C 52.955144,22.139271 52.726855,20.451771 52.393011,19.581787 C 51.698405,17.771674 46.959416,17.440584 45.312868,19.087132 C 44.644674,19.755326 43.998441,19.806494 43.635913,19.219912 C 43.265517,18.620599 41.549431,18.66504 39.023045,19.339371 C 35.391607,20.308658 35.013256,20.709432 35.136182,23.456592 C 35.235803,25.682934 35.385998,25.916641 35.695629,24.327102 C 35.945425,23.044739 37.289203,21.746232 38.974435,21.158757 z M 63.012887,22 C 63.97163,22 65.435049,23.0125 66.26493,24.25 L 67.773804,26.5 L 70.846409,24.25 C 74.608258,21.495283 75.212709,21.472571 77.5,24 C 80.250496,27.039264 81.341437,26.38895 79.306536,22.923116 C 76.159965,17.56389 75.135309,17.253071 72.34944,20.812753 C 69.73474,24.15372 68,24.902896 68,22.69113 C 68,21.971251 67.393345,20.55261 66.651879,19.538594 C 65.367289,17.781813 65.084532,17.845759 60.651879,20.895505 C 58.093345,22.655822 56,24.557124 56,25.120621 C 56,25.684118 57.185686,25.212499 58.634859,24.07258 C 60.084031,22.932661 62.054144,22 63.012887,22 z M 71,18.881966 C 71,18.331966 70.55,18.160081 70,18.5 C 69.45,18.839919 69,19.568034 69,20.118034 C 69,20.668034 69.45,20.839919 70,20.5 C 70.55,20.160081 71,19.431966 71,18.881966 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 105.0767,16.592415 C 102.56514,13.566177 95.483781,11 89.644438,11 C 83.914495,11 76,13.912053 76,16.020324 C 76,17.425787 78.658958,17.22772 81.834215,15.585731 C 88.807619,11.979643 98.050341,13.083182 102.55391,18.059567 C 104.69774,20.428475 107.1006,19.031069 105.0767,16.592415 z"
+ id="path2432" />
+ <path
+ style="fill:#f79202"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 99.145244,48.614497 C 103.69293,46.255072 103.8303,46.243053 104.33178,48.160708 C 104.81837,50.021454 105.01451,50.043858 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.837768 101.85316,45.450499 99.75,45.118421 C 99.3375,45.053289 99,45.476558 99,46.059017 C 99,46.641476 98.588435,46.863673 98.08541,46.552786 C 97.582386,46.2419 97.019886,46.40707 96.83541,46.919831 C 96.172673,48.761948 91.347027,49.20417 89.715185,47.572328 C 88.850405,46.707547 86.729416,46 85.001878,46 C 82.346703,46 81.910322,45.664115 82.180449,43.828328 C 82.356202,42.633908 83.175,41.474649 84,41.252197 C 85.310776,40.89876 85.314429,40.976632 84.02896,41.869496 C 81.666636,43.510325 83.064023,43.762295 90.234164,42.988386 C 97.373086,42.217848 102.79088,39.203868 105.11618,34.709352 C 106.0439,32.91618 105.65765,33.064798 103.06571,35.498313 C 101.05645,37.384755 100.12098,37.848295 100.54309,36.748313 C 100.93279,35.732756 100.75001,35 100.10699,35 C 99.498145,35 99,35.926558 99,37.059017 C 99,38.423213 98.578184,38.87529 97.75,38.398692 C 97.0625,38.003053 96.844994,38.058989 97.266652,38.522994 C 97.688311,38.986998 96.624147,39.959144 94.901842,40.683319 C 91.450502,42.134499 88.001116,42.417631 87.997995,41.25 C 87.996893,40.8375 86.440606,40.389241 84.53958,40.25387 C 81.977849,40.071449 80.438435,40.652474 78.592368,42.498541 L 76.101567,44.989342 L 78.800784,46.454633 C 80.285353,47.260544 81.005017,47.937942 80.400038,47.959962 C 79.79506,47.981983 77.43256,46.647177 75.150038,44.993728 C 70.078744,41.3201 69.230144,43.555234 74.25,47.364348 C 81.046358,52.521487 90.682053,53.005357 99.145244,48.614497 z M 82.270833,48.395833 C 82.603125,48.063542 83.465625,48.028015 84.1875,48.316886 C 84.985233,48.636112 84.748276,48.873069 83.583333,48.921053 C 82.529167,48.964474 81.938542,48.728125 82.270833,48.395833 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 102,42.972368 C 102,42.472089 101.32758,42.3208 100.50574,42.63617 C 99.683903,42.95154 99.264997,43.619757 99.574842,44.121097 C 100.2229,45.169682 102,44.327922 102,42.972368 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 64.171259,39.345012 C 65.348019,38.280059 66,36.298164 66,33.785995 C 66,31.433473 66.398097,30.128003 67.001724,30.501066 C 67.552673,30.841571 67.058224,29.518128 65.902948,27.560083 C 63.845397,24.072793 61.709427,23.043107 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.969749,36.532201 C 60.771142,37.80806 60.089166,39.335257 60.454248,39.925972 C 61.357403,41.387307 62.03086,41.282047 64.171259,39.345012 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 88.967387,29.002617 C 93.62445,24.65697 97.114709,20.781376 96.723518,20.390185 C 96.332327,19.998994 95.109503,20.495914 94.006131,21.494452 C 92.902759,22.49299 92,23.00765 92,22.638142 C 92,21.180212 82.296832,27.033825 79,30.480629 C 75.614471,34.020165 75.563487,34.186616 77.44113,35.569922 C 78.508751,36.356465 79.633751,36.978353 79.94113,36.951896 C 80.248508,36.925439 84.310324,33.348264 88.967387,29.002617 z M 89.862093,33.965755 C 90.488966,32.167505 90.528815,31.173174 89.959918,31.524772 C 89.431963,31.851066 89,32.793034 89,33.618034 C 89,34.443034 88.657537,34.90638 88.238972,34.647693 C 87.820406,34.389005 86.609398,34.812447 85.547842,35.588676 C 83.70371,36.937138 83.73325,37 86.211045,37 C 88.199931,37 89.050877,36.292812 89.862093,33.965755 z M 94.1875,36.316886 C 93.465625,36.028015 92.603125,36.063542 92.270833,36.395833 C 91.938542,36.728125 92.529167,36.964474 93.583333,36.921053 C 94.748276,36.873069 94.985233,36.636112 94.1875,36.316886 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 100,25.942386 C 100,24.388992 100.45,22.839919 101,22.5 C 102.61715,21.500546 102.14936,20.428571 100.09607,20.428571 C 98.754496,20.428571 98.041207,21.325222 97.681145,23.464286 C 97.400099,25.133929 96.871323,27.254667 96.506086,28.177037 C 95.981615,29.501538 96.279051,29.739787 97.92101,29.310405 C 99.407272,28.921739 100,27.961503 100,25.942386 z M 12.75,24.816752 C 12.360851,22.974911 17.627133,20.844155 23.995791,20.266665 L 29.784374,19.741775 L 30.471642,22.870887 C 31.384778,27.028367 33.119874,26.91656 32.34765,22.75 C 31.33771,17.300831 30.01079,16.561837 23.842383,18.013211 C 15.053775,20.081095 11,22.005134 11,24.10858 C 11,25.148861 11.45,26 12,26 C 12.55,26 12.8875,25.467538 12.75,24.816752 z M 38.974435,21.158757 C 42.283854,20.005087 43,20.451243 43,23.666667 C 43,25.074074 43.595238,26 44.5,26 C 45.50722,26 46,24.99262 46,22.933578 C 46,20.188075 46.283665,19.900271 48.710454,20.183578 C 50.611412,20.405498 51.626941,21.246642 52.110774,23 C 52.735054,25.262322 52.810117,25.293866 52.90032,23.331787 C 52.955144,22.139271 52.726855,20.451771 52.393011,19.581787 C 51.698405,17.771674 46.959416,17.440584 45.312868,19.087132 C 44.644674,19.755326 43.998441,19.806494 43.635913,19.219912 C 43.265517,18.620599 41.549431,18.66504 39.023045,19.339371 C 35.391607,20.308658 35.013256,20.709432 35.136182,23.456592 C 35.235803,25.682934 35.385998,25.916641 35.695629,24.327102 C 35.945425,23.044739 37.289203,21.746232 38.974435,21.158757 z M 63.012887,22 C 63.97163,22 65.435049,23.0125 66.26493,24.25 L 67.773804,26.5 L 70.846409,24.25 C 74.608258,21.495283 75.212709,21.472571 77.5,24 C 80.250496,27.039264 81.341437,26.38895 79.306536,22.923116 C 76.159965,17.56389 75.135309,17.253071 72.34944,20.812753 C 69.73474,24.15372 68,24.902896 68,22.69113 C 68,21.971251 67.393345,20.55261 66.651879,19.538594 C 65.367289,17.781813 65.084532,17.845759 60.651879,20.895505 C 58.093345,22.655822 56,24.557124 56,25.120621 C 56,25.684118 57.185686,25.212499 58.634859,24.07258 C 60.084031,22.932661 62.054144,22 63.012887,22 z M 71.590697,18.257364 C 70.8972,17.563866 69,18.972907 69,20.181462 C 69,20.844555 69.573782,20.768693 70.524166,19.979944 C 71.362457,19.284224 71.842396,18.509063 71.590697,18.257364 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 106.29238,16.925763 C 103.04181,13.812134 95.220502,11 89.811223,11 C 83.91895,11 76,13.878506 76,16.020324 C 76,17.425787 78.658958,17.22772 81.834215,15.585731 C 88.791733,11.987859 98.049605,13.082369 102.52933,18.032407 C 103.91104,19.559179 104.61125,19.737601 105.69417,18.83885 C 106.459,18.204102 106.72819,17.343213 106.29238,16.925763 z"
+ id="path2430" />
+ <path
+ style="fill:#c81f92"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.72023,46.062156 103.78414,46.066551 104.31011,48.077874 C 104.82029,50.028792 104.99692,50.052951 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05424,42.416258 101.76388,42.153377 100.64296,42.583515 C 99.774112,42.916923 99.102298,43.484526 99.15004,43.844856 C 99.371606,45.517135 98.930297,46.984992 98.25,46.838518 C 97.8375,46.749704 96.266408,47.18708 94.758684,47.810466 C 91.958522,48.968226 89,48.496884 89,46.893011 C 89,46.401855 87.425,46 85.5,46 C 83.575,46 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.39894,24.922473 106,25.982902 106,28.944236 C 106,31.748709 101.09996,38.953955 101.0316,36.25 C 100.97726,34.100472 99,34.887849 99,37.059017 C 99,38.191476 98.581094,38.859136 98.069098,38.542705 C 97.557102,38.226274 96.88293,38.380407 96.570937,38.885222 C 96.258944,39.390037 94.622312,40.284615 92.933976,40.873171 C 90.269773,41.801917 89.906958,41.721644 90.187389,40.265483 C 90.365101,39.342697 91.599777,38.330548 92.931112,38.016262 C 94.262448,37.701977 95.557831,36.826507 95.809742,36.070775 C 96.139878,35.080366 95.649907,34.858289 94.05489,35.275395 C 92.598182,35.656333 91.98551,35.451867 92.261937,34.677037 C 92.492892,34.029667 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.786518,23 97.264932,23 C 98.031897,23 97.705362,24.889365 96.283782,28.677037 C 95.997777,29.439071 96.575035,29.662386 97.92101,29.310405 C 99.407272,28.921739 100,27.961503 100,25.942386 C 100,24.388992 100.45,22.839919 101,22.5 C 103.04756,21.234537 101.88652,20.399316 98.25,20.521723 C 93.421149,20.684265 83.468586,25.809757 79.057442,30.405742 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.5052,39.965914 85.146413,40.357183 83.565914,40.165745 C 81.627524,39.930957 80.360045,40.468652 79.306608,41.972643 C 76.949172,45.338355 73.968996,44.175288 71.322889,38.856853 C 69.108462,34.406055 69.079335,34.05393 70.619799,30.356853 C 72.20329,26.556512 72.198379,26.525641 70.284677,28.25 C 67.685364,30.592135 67.306363,30.49312 65.5,27 C 63.965252,24.032124 61.676215,23.096843 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.887762,36.619472 C 60.168818,38.449204 59.905445,39.305445 60.789615,40.189615 C 61.673785,41.073785 62.439548,40.91219 63.982502,39.515835 C 66.281922,37.434889 66.177782,37.383108 68.371772,41.698307 C 70.200344,45.294792 75.006189,49.222626 79.5,50.793448 C 83.581211,52.220045 90.977876,52.245458 95.100777,50.847048 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 12.75,24.816752 C 12.360851,22.974911 17.627133,20.844155 23.995791,20.266665 L 29.784374,19.741775 L 30.471642,22.870887 C 31.384778,27.028367 33.119874,26.91656 32.34765,22.75 C 31.33771,17.300831 30.01079,16.561837 23.842383,18.013211 C 15.053775,20.081095 11,22.005134 11,24.10858 C 11,25.148861 11.45,26 12,26 C 12.55,26 12.8875,25.467538 12.75,24.816752 z M 38.974435,21.158757 C 42.283854,20.005087 43,20.451243 43,23.666667 C 43,25.074074 43.595238,26 44.5,26 C 45.50722,26 46,24.99262 46,22.933578 C 46,20.188075 46.283665,19.900271 48.710454,20.183578 C 50.611412,20.405498 51.626941,21.246642 52.110774,23 C 52.735054,25.262322 52.810117,25.293866 52.90032,23.331787 C 52.955144,22.139271 52.726855,20.451771 52.393011,19.581787 C 51.698405,17.771674 46.959416,17.440584 45.312868,19.087132 C 44.644674,19.755326 43.998441,19.806494 43.635913,19.219912 C 43.265517,18.620599 41.549431,18.66504 39.023045,19.339371 C 35.391607,20.308658 35.013256,20.709432 35.136182,23.456592 C 35.235803,25.682934 35.385998,25.916641 35.695629,24.327102 C 35.945425,23.044739 37.289203,21.746232 38.974435,21.158757 z M 63.012887,22 C 63.97163,22 65.435049,23.0125 66.26493,24.25 L 67.773804,26.5 L 70.846409,24.25 C 74.608258,21.495283 75.212709,21.472571 77.5,24 C 80.250496,27.039264 81.341437,26.38895 79.306536,22.923116 C 76.159965,17.56389 75.135309,17.253071 72.34944,20.812753 C 69.73474,24.15372 68,24.902896 68,22.69113 C 68,21.971251 67.393345,20.55261 66.651879,19.538594 C 65.367289,17.781813 65.084532,17.845759 60.651879,20.895505 C 58.093345,22.655822 56,24.557124 56,25.120621 C 56,25.684118 57.185686,25.212499 58.634859,24.07258 C 60.084031,22.932661 62.054144,22 63.012887,22 z M 71.590697,18.257364 C 70.8972,17.563866 69,18.972907 69,20.181462 C 69,20.844555 69.573782,20.768693 70.524166,19.979944 C 71.362457,19.284224 71.842396,18.509063 71.590697,18.257364 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 106.70365,18.404051 C 106.90183,17.80128 105.13707,16.019214 102.78198,14.443904 C 95.854174,9.8099243 80.820222,9.8969142 76.922374,14.593534 C 76.019657,15.681241 75.98347,16.38347 76.788643,17.188643 C 77.593817,17.993817 79.242564,17.711751 82.881643,16.146262 C 85.625659,14.965818 88.988373,14 90.354342,14 C 93.019892,14 98.983246,16.974326 98.993677,18.309017 C 98.997155,18.753976 99.418906,18.859136 99.930902,18.542705 C 100.4429,18.226274 101.16036,18.45045 101.52526,19.040874 C 102.34752,20.371317 106.21318,19.895931 106.70365,18.404051 z"
+ id="path2428" />
+ <path
+ style="fill:#7936c9"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.72023,46.062156 103.78414,46.066551 104.31011,48.077874 C 104.82029,50.028792 104.99692,50.052951 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05424,42.416258 101.76388,42.153377 100.64296,42.583515 C 99.774112,42.916923 99.102298,43.484526 99.15004,43.844856 C 99.371606,45.517135 98.930297,46.984992 98.25,46.838518 C 97.8375,46.749704 96.266408,47.18708 94.758684,47.810466 C 91.958522,48.968226 89,48.496884 89,46.893011 C 89,46.401855 87.425,46 85.5,46 C 83.575,46 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.39894,24.922473 106,25.982902 106,28.944236 C 106,31.748709 101.09996,38.953955 101.0316,36.25 C 100.97726,34.100472 99,34.887849 99,37.059017 C 99,38.191476 98.581094,38.859136 98.069098,38.542705 C 97.557102,38.226274 96.88293,38.380407 96.570937,38.885222 C 96.258944,39.390037 94.622312,40.284615 92.933976,40.873171 C 90.269773,41.801917 89.906958,41.721644 90.187389,40.265483 C 90.365101,39.342697 91.599777,38.330548 92.931112,38.016262 C 94.262448,37.701977 95.557831,36.826507 95.809742,36.070775 C 96.139878,35.080366 95.649907,34.858289 94.05489,35.275395 C 92.598182,35.656333 91.98551,35.451867 92.261937,34.677037 C 92.492892,34.029667 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.786518,23 97.264932,23 C 98.031897,23 97.705362,24.889365 96.283782,28.677037 C 95.997777,29.439071 96.575035,29.662386 97.92101,29.310405 C 99.407272,28.921739 100,27.961503 100,25.942386 C 100,24.388992 100.45,22.839919 101,22.5 C 103.04756,21.234537 101.88652,20.399316 98.25,20.521723 C 93.421149,20.684265 83.468586,25.809757 79.057442,30.405742 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.5052,39.965914 85.146413,40.357183 83.565914,40.165745 C 81.627524,39.930957 80.360045,40.468652 79.306608,41.972643 C 76.949172,45.338355 73.968996,44.175288 71.322889,38.856853 C 69.108462,34.406055 69.079335,34.05393 70.619799,30.356853 C 72.20329,26.556512 72.198379,26.525641 70.284677,28.25 C 67.685364,30.592135 67.306363,30.49312 65.5,27 C 63.965252,24.032124 61.676215,23.096843 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.887762,36.619472 C 60.168818,38.449204 59.905445,39.305445 60.789615,40.189615 C 61.673785,41.073785 62.439548,40.91219 63.982502,39.515835 C 66.281922,37.434889 66.177782,37.383108 68.371772,41.698307 C 70.200344,45.294792 75.006189,49.222626 79.5,50.793448 C 83.581211,52.220045 90.977876,52.245458 95.100777,50.847048 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 27.979574,43.258802 C 31.182813,41.184409 28.996481,40.344604 24.856825,42.059305 C 22.331567,43.105301 21.663814,43.079885 20.922954,41.909577 C 20.278171,40.891038 20.026378,41.292966 20.015313,43.358408 C 20.00129,45.976055 20.23163,46.159866 22.75,45.540685 C 24.2625,45.168814 26.615808,44.141966 27.979574,43.258802 z M 50.361636,43.797964 C 51.879856,41.377577 50.360963,40.363358 48.17739,42.339464 C 45.910021,44.391405 42.995544,44.463865 40.44113,42.531803 C 38.015757,40.697344 37,40.62892 37,42.3 C 37,44.914708 39.481886,46.087952 44.39081,45.793804 C 47.686101,45.596347 49.644119,44.94185 50.361636,43.797964 z M 65.031165,44.175847 C 68.231913,41.584039 67.314471,39.601789 63.766935,41.444316 C 62.178878,42.269125 60.792578,42.473401 60.457918,41.931911 C 60.141145,41.41936 59.22315,41 58.41793,41 C 57.178956,41 57.205709,41.384317 58.591957,43.5 C 60.540738,46.474216 62.003234,46.627717 65.031165,44.175847 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 76.5,42 C 76.839919,41.45 76.416476,41 75.559017,41 C 74.701558,41 74,41.45 74,42 C 74,42.55 74.423442,43 74.940983,43 C 75.458524,43 76.160081,42.55 76.5,42 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 12.75,24.816752 C 12.360851,22.974911 17.627133,20.844155 23.995791,20.266665 L 29.784374,19.741775 L 30.471642,22.870887 C 31.384778,27.028367 33.119874,26.91656 32.34765,22.75 C 31.33771,17.300831 30.01079,16.561837 23.842383,18.013211 C 15.053775,20.081095 11,22.005134 11,24.10858 C 11,25.148861 11.45,26 12,26 C 12.55,26 12.8875,25.467538 12.75,24.816752 z M 38.974435,21.158757 C 42.283854,20.005087 43,20.451243 43,23.666667 C 43,25.074074 43.595238,26 44.5,26 C 45.50722,26 46,24.99262 46,22.933578 C 46,20.188075 46.283665,19.900271 48.710454,20.183578 C 50.611412,20.405498 51.626941,21.246642 52.110774,23 C 52.735054,25.262322 52.810117,25.293866 52.90032,23.331787 C 52.955144,22.139271 52.726855,20.451771 52.393011,19.581787 C 51.698405,17.771674 46.959416,17.440584 45.312868,19.087132 C 44.644674,19.755326 43.998441,19.806494 43.635913,19.219912 C 43.265517,18.620599 41.549431,18.66504 39.023045,19.339371 C 35.391607,20.308658 35.013256,20.709432 35.136182,23.456592 C 35.235803,25.682934 35.385998,25.916641 35.695629,24.327102 C 35.945425,23.044739 37.289203,21.746232 38.974435,21.158757 z M 63.012887,22 C 63.97163,22 65.435049,23.0125 66.26493,24.25 L 67.773804,26.5 L 70.846409,24.25 C 74.608258,21.495283 75.212709,21.472571 77.5,24 C 80.250496,27.039264 81.341437,26.38895 79.306536,22.923116 C 76.159965,17.56389 75.135309,17.253071 72.34944,20.812753 C 69.73474,24.15372 68,24.902896 68,22.69113 C 68,21.971251 67.393345,20.55261 66.651879,19.538594 C 65.367289,17.781813 65.084532,17.845759 60.651879,20.895505 C 58.093345,22.655822 56,24.557124 56,25.120621 C 56,25.684118 57.185686,25.212499 58.634859,24.07258 C 60.084031,22.932661 62.054144,22 63.012887,22 z M 71.590697,18.257364 C 70.8972,17.563866 69,18.972907 69,20.181462 C 69,20.844555 69.573782,20.768693 70.524166,19.979944 C 71.362457,19.284224 71.842396,18.509063 71.590697,18.257364 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 106.70365,18.404051 C 106.90183,17.80128 105.13707,16.019214 102.78198,14.443904 C 95.854174,9.8099243 80.820222,9.8969142 76.922374,14.593534 C 76.019657,15.681241 75.98347,16.38347 76.788643,17.188643 C 77.593817,17.993817 79.242564,17.711751 82.881643,16.146262 C 85.625659,14.965818 88.988373,14 90.354342,14 C 93.019892,14 98.983246,16.974326 98.993677,18.309017 C 98.997155,18.753976 99.418906,18.859136 99.930902,18.542705 C 100.4429,18.226274 101.16036,18.45045 101.52526,19.040874 C 102.34752,20.371317 106.21318,19.895931 106.70365,18.404051 z"
+ id="path2426" />
+ <path
+ style="fill:#a12a95"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.72023,46.062156 103.78414,46.066551 104.31011,48.077874 C 104.82029,50.028792 104.99692,50.052951 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05424,42.416258 101.76388,42.153377 100.64296,42.583515 C 99.774112,42.916923 99.102298,43.484526 99.15004,43.844856 C 99.371606,45.517135 98.930297,46.984992 98.25,46.838518 C 97.8375,46.749704 96.266408,47.18708 94.758684,47.810466 C 91.958522,48.968226 89,48.496884 89,46.893011 C 89,46.401855 87.425,46 85.5,46 C 83.575,46 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.39894,24.922473 106,25.982902 106,28.944236 C 106,31.748709 101.09996,38.953955 101.0316,36.25 C 100.97726,34.100472 99,34.887849 99,37.059017 C 99,38.191476 98.581094,38.859136 98.069098,38.542705 C 97.557102,38.226274 96.88293,38.380407 96.570937,38.885222 C 96.258944,39.390037 94.622312,40.284615 92.933976,40.873171 C 90.269773,41.801917 89.906958,41.721644 90.187389,40.265483 C 90.365101,39.342697 91.599777,38.330548 92.931112,38.016262 C 94.262448,37.701977 95.557831,36.826507 95.809742,36.070775 C 96.139878,35.080366 95.649907,34.858289 94.05489,35.275395 C 92.598182,35.656333 91.98551,35.451867 92.261937,34.677037 C 92.492892,34.029667 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.786518,23 97.264932,23 C 98.031897,23 97.705362,24.889365 96.283782,28.677037 C 95.997777,29.439071 96.575035,29.662386 97.92101,29.310405 C 99.407272,28.921739 100,27.961503 100,25.942386 C 100,24.388992 100.45,22.839919 101,22.5 C 103.04756,21.234537 101.88652,20.399316 98.25,20.521723 C 93.421149,20.684265 83.468586,25.809757 79.057442,30.405742 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.5052,39.965914 85.146413,40.357183 83.565914,40.165745 C 81.627524,39.930957 80.360045,40.468652 79.306608,41.972643 C 76.949172,45.338355 73.968996,44.175288 71.322889,38.856853 C 69.108462,34.406055 69.079335,34.05393 70.619799,30.356853 C 72.20329,26.556512 72.198379,26.525641 70.284677,28.25 C 67.685364,30.592135 67.306363,30.49312 65.5,27 C 63.965252,24.032124 61.676215,23.096843 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.887762,36.619472 C 60.168818,38.449204 59.905445,39.305445 60.789615,40.189615 C 61.673785,41.073785 62.439548,40.91219 63.982502,39.515835 C 66.281922,37.434889 66.177782,37.383108 68.371772,41.698307 C 70.200344,45.294792 75.006189,49.222626 79.5,50.793448 C 83.581211,52.220045 90.977876,52.245458 95.100777,50.847048 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 27.979574,43.258802 C 31.182813,41.184409 28.996481,40.344604 24.856825,42.059305 C 22.331567,43.105301 21.663814,43.079885 20.922954,41.909577 C 20.278171,40.891038 20.026378,41.292966 20.015313,43.358408 C 20.00129,45.976055 20.23163,46.159866 22.75,45.540685 C 24.2625,45.168814 26.615808,44.141966 27.979574,43.258802 z M 50.361636,43.797964 C 51.879856,41.377577 50.360963,40.363358 48.17739,42.339464 C 45.910021,44.391405 42.995544,44.463865 40.44113,42.531803 C 38.015757,40.697344 37,40.62892 37,42.3 C 37,44.914708 39.481886,46.087952 44.39081,45.793804 C 47.686101,45.596347 49.644119,44.94185 50.361636,43.797964 z M 65.031165,44.175847 C 68.231913,41.584039 67.314471,39.601789 63.766935,41.444316 C 62.178878,42.269125 60.792578,42.473401 60.457918,41.931911 C 60.141145,41.41936 59.22315,41 58.41793,41 C 57.178956,41 57.205709,41.384317 58.591957,43.5 C 60.540738,46.474216 62.003234,46.627717 65.031165,44.175847 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 76.5,42 C 76.839919,41.45 76.416476,41 75.559017,41 C 74.701558,41 74,41.45 74,42 C 74,42.55 74.423442,43 74.940983,43 C 75.458524,43 76.160081,42.55 76.5,42 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 18.491888,21.342618 22.204388,20.745219 24.793154,20.658206 C 29.194233,20.510277 29.520017,20.67307 29.808139,23.16416 C 30.035866,25.13308 29.579186,25.998786 28.058139,26.481547 C 26.926163,26.840823 26,27.983733 26,29.021347 C 26,30.808915 26.181453,30.792259 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 z M 36.565569,26.38286 C 36.866617,22.588705 38.216602,21.041855 41.25,21.015313 C 42.685375,21.002753 43,21.898928 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.824954 C 35,31.860546 36.099842,32.252486 36.565569,26.38286 z M 58.983833,26.969792 C 57.709342,24.588383 57.655432,24.709946 60.684259,23.135455 C 63.931291,21.447533 64.633093,21.699996 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 68.735773,23.623038 68.377974,23.642105 67.589356,20.5 C 67.244253,19.125 66.372619,18 65.652393,18 C 64.279816,18 55,23.824565 55,24.686075 C 55,24.959757 56.0125,26.42324 57.25,27.93826 C 59.719699,30.96181 60.797962,30.359524 58.983833,26.969792 z M 71.590697,18.257364 C 70.8972,17.563866 69,18.972907 69,20.181462 C 69,20.844555 69.573782,20.768693 70.524166,19.979944 C 71.362457,19.284224 71.842396,18.509063 71.590697,18.257364 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 106.70365,18.404051 C 106.90183,17.80128 105.13707,16.019214 102.78198,14.443904 C 95.854174,9.8099243 80.820222,9.8969142 76.922374,14.593534 C 76.019657,15.681241 75.98347,16.38347 76.788643,17.188643 C 77.593817,17.993817 79.242564,17.711751 82.881643,16.146262 C 85.625659,14.965818 88.988373,14 90.354342,14 C 93.019892,14 98.983246,16.974326 98.993677,18.309017 C 98.997155,18.753976 99.418906,18.859136 99.930902,18.542705 C 100.4429,18.226274 101.16036,18.45045 101.52526,19.040874 C 102.34752,20.371317 106.21318,19.895931 106.70365,18.404051 z"
+ id="path2424" />
+ <path
+ style="fill:#8e695b"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.72023,46.062156 103.78414,46.066551 104.31011,48.077874 C 104.82029,50.028792 104.99692,50.052951 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05424,42.416258 101.76388,42.153377 100.64296,42.583515 C 99.774112,42.916923 99.102298,43.484526 99.15004,43.844856 C 99.371606,45.517135 98.930297,46.984992 98.25,46.838518 C 97.8375,46.749704 96.266408,47.18708 94.758684,47.810466 C 91.958522,48.968226 89,48.496884 89,46.893011 C 89,46.401855 87.425,46 85.5,46 C 83.575,46 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.39894,24.922473 106,25.982902 106,28.944236 C 106,31.748709 101.09996,38.953955 101.0316,36.25 C 100.97726,34.100472 99,34.887849 99,37.059017 C 99,38.191476 98.581094,38.859136 98.069098,38.542705 C 97.557102,38.226274 96.88293,38.380407 96.570937,38.885222 C 96.258944,39.390037 94.622312,40.284615 92.933976,40.873171 C 90.269773,41.801917 89.906958,41.721644 90.187389,40.265483 C 90.365101,39.342697 91.599777,38.330548 92.931112,38.016262 C 94.262448,37.701977 95.557831,36.826507 95.809742,36.070775 C 96.139878,35.080366 95.649907,34.858289 94.05489,35.275395 C 92.598182,35.656333 91.98551,35.451867 92.261937,34.677037 C 92.492892,34.029667 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.786518,23 97.264932,23 C 98.031897,23 97.705362,24.889365 96.283782,28.677037 C 95.997777,29.439071 96.575035,29.662386 97.92101,29.310405 C 99.407272,28.921739 100,27.961503 100,25.942386 C 100,24.388992 100.45,22.839919 101,22.5 C 103.04756,21.234537 101.88652,20.399316 98.25,20.521723 C 93.421149,20.684265 83.468586,25.809757 79.057442,30.405742 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.5052,39.965914 85.146413,40.357183 83.565914,40.165745 C 81.627524,39.930957 80.360045,40.468652 79.306608,41.972643 C 76.949172,45.338355 73.968996,44.175288 71.322889,38.856853 C 69.108462,34.406055 69.079335,34.05393 70.619799,30.356853 C 72.20329,26.556512 72.198379,26.525641 70.284677,28.25 C 67.685364,30.592135 67.306363,30.49312 65.5,27 C 63.965252,24.032124 61.676215,23.096843 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 61.887762,36.619472 C 60.168818,38.449204 59.905445,39.305445 60.789615,40.189615 C 61.673785,41.073785 62.439548,40.91219 63.982502,39.515835 C 66.281922,37.434889 66.177782,37.383108 68.371772,41.698307 C 70.200344,45.294792 75.006189,49.222626 79.5,50.793448 C 83.581211,52.220045 90.977876,52.245458 95.100777,50.847048 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.130126,42.5 C 53.485437,38.417767 54.513624,34 53.108408,34 C 52.498784,34 52,34.865474 52,35.923275 C 52,36.981076 50.834998,39.231076 49.411106,40.923275 C 45.116816,46.026749 39.776105,44.595951 37.961168,37.85579 C 37.298703,35.395584 36.490178,34.109822 35.947096,34.652904 C 34.940126,35.659874 36.546308,42.688512 38.265145,44.79667 C 38.944339,45.629702 41.123898,45.987262 44.360791,45.79667 C 48.763151,45.537453 49.617744,45.121265 51.130126,42.5 z M 65.055975,44.155758 C 66.618152,42.890784 67.115894,41.744399 66.640661,40.505961 C 65.990764,38.812357 65.804896,38.834663 63.642933,40.865721 L 61.338062,43.031035 L 59.504561,41.005039 C 57.719589,39.032668 57.732963,38.91315 60.009844,36.489522 C 62.971649,33.336825 61.010051,33.227122 57.387765,36.342882 L 54.664002,38.685764 L 57.582001,42.342853 C 60.90241,46.504276 61.866794,46.7382 65.055975,44.155758 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 77.464027,41.451454 C 79.380616,40.00238 79.351199,39.889661 76.246078,36.784539 C 72.995107,33.533569 70.35985,33.530174 73.301578,36.780746 C 74.284904,37.867309 74.696202,39.445722 74.345482,40.786876 C 73.676656,43.34447 74.678022,43.557865 77.464027,41.451454 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 24.504362,33.04343 C 23.809322,26.122527 23.819279,26.083462 26.446424,25.424091 C 27.8988,25.059568 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.327586,27.873767 22.060842,29.442167 22.584016,33.5 C 22.938571,36.25 23.428771,38.8375 23.673348,39.25 C 24.881932,41.288378 25.139318,39.366049 24.504362,33.04343 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 18.491888,21.342618 22.204388,20.745219 24.793154,20.658206 C 29.194233,20.510277 29.520017,20.67307 29.808139,23.16416 C 30.035866,25.13308 29.579186,25.998786 28.058139,26.481547 C 26.926163,26.840823 26,27.983733 26,29.021347 C 26,30.808915 26.181453,30.792259 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 z M 36.565569,26.38286 C 36.866617,22.588705 38.216602,21.041855 41.25,21.015313 C 42.685375,21.002753 43,21.898928 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.824954 C 35,31.860546 36.099842,32.252486 36.565569,26.38286 z M 58.983833,26.969792 C 57.709342,24.588383 57.655432,24.709946 60.684259,23.135455 C 63.931291,21.447533 64.633093,21.699996 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 68.735773,23.623038 68.377974,23.642105 67.589356,20.5 C 67.244253,19.125 66.372619,18 65.652393,18 C 64.279816,18 55,23.824565 55,24.686075 C 55,24.959757 56.0125,26.42324 57.25,27.93826 C 59.719699,30.96181 60.797962,30.359524 58.983833,26.969792 z M 71.590697,18.257364 C 70.8972,17.563866 69,18.972907 69,20.181462 C 69,20.844555 69.573782,20.768693 70.524166,19.979944 C 71.362457,19.284224 71.842396,18.509063 71.590697,18.257364 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 106.70365,18.404051 C 106.90183,17.80128 105.13707,16.019214 102.78198,14.443904 C 95.854174,9.8099243 80.820222,9.8969142 76.922374,14.593534 C 76.019657,15.681241 75.98347,16.38347 76.788643,17.188643 C 77.593817,17.993817 79.242564,17.711751 82.881643,16.146262 C 85.625659,14.965818 88.988373,14 90.354342,14 C 93.019892,14 98.983246,16.974326 98.993677,18.309017 C 98.997155,18.753976 99.418906,18.859136 99.930902,18.542705 C 100.4429,18.226274 101.16036,18.45045 101.52526,19.040874 C 102.34752,20.371317 106.21318,19.895931 106.70365,18.404051 z"
+ id="path2422" />
+ <path
+ style="fill:#5d8b67"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.72023,46.062156 103.78414,46.066551 104.31011,48.077874 C 104.82029,50.028792 104.99692,50.052951 107.87375,48.565289 C 109.53851,47.704404 111.36473,46.212534 111.932,45.250022 C 112.78087,43.809721 113.12425,43.744559 113.8722,44.881834 C 115.00269,46.600771 121.2209,45.643689 123.02196,43.473538 C 124.48158,41.714806 123.40797,41.613217 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05709,42.40883 101.76426,42.153232 100.61708,42.593444 C 99.734006,42.932313 99.257275,43.607262 99.557681,44.09333 C 99.858088,44.579399 99.293004,44.672992 98.301938,44.301315 C 96.709951,43.704276 96.662123,43.824792 97.891444,45.335661 C 99.107546,46.830285 99.076042,46.966411 97.641444,46.415903 C 96.697882,46.053825 96,46.281766 96,46.952028 C 96,47.593331 95.499688,47.808824 94.888197,47.430902 C 94.276705,47.052979 93.453227,47.266663 93.058247,47.905754 C 92.662967,48.545331 91.551579,48.765155 90.586205,48.394706 C 89.199816,47.862699 89.1118,47.544504 90.166154,46.876149 C 91.002443,46.346026 89.728135,46.024914 86.75,46.015313 C 84.1375,46.006891 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.40866,24.949533 106,25.967481 106,28.865141 C 106,32.519858 102.11891,37.783243 100.86111,35.834294 C 100.15882,34.746098 99.845389,34.739281 99.161729,35.797334 C 98.490292,36.83647 98.071349,36.790897 97.056724,35.568348 C 96.06867,34.377815 95.339735,34.282996 93.743365,35.137347 C 92.117907,36.007265 91.798101,35.951495 92.189297,34.866334 C 92.460204,34.11485 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.804339,23 97.304533,23 C 97.804728,23 98.002585,23.5625 97.744216,24.25 C 95.86815,29.242075 95.893593,29.840587 97.958916,29.300493 C 99.424774,28.917162 100,27.94529 100,25.851984 C 100,24.188562 100.6415,22.691064 101.49426,22.36383 C 103.75766,21.495282 102.38849,20.232381 99.524321,20.546787 C 98.135944,20.699193 97,20.358413 97,19.789499 C 97,19.170537 96.397577,19.255077 95.5,20 C 94.675,20.684689 94,20.895045 94,20.467457 C 94,20.039869 93.2125,20.382339 92.25,21.228501 C 91.2875,22.074662 88.7,23.679974 86.5,24.795859 C 84.3,25.911745 80.950849,28.4375 79.057442,30.408648 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.505241,39.965791 85.146507,40.357198 83.566766,40.165857 C 81.755257,39.946443 80.000076,40.590751 78.454899,42.04237 C 75.386359,44.925114 73.771716,44.173186 71.176965,38.653091 C 69.162831,34.368204 69.134051,33.92285 70.638022,30.31324 C 72.187954,26.593319 72.180675,26.541588 70.340579,28.19941 C 68.236587,30.094986 66.871128,29.585646 65.11452,26.25 C 63.889773,23.92431 61.566313,23.274669 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 62.074518,36.42068 C 60.933533,37.635202 60,39.162399 60,39.814451 C 60,41.36673 62.222928,41.331121 64.023466,39.75 C 64.806373,39.0625 64.587255,39.528382 63.536538,40.785294 L 61.626144,43.070588 L 59.615552,41.059996 L 57.604959,39.049404 L 59.976794,36.524702 C 61.281303,35.136116 62.015603,34 61.608573,34 C 59.831514,34 56.971907,36.239579 54.907705,39.247966 C 53.680445,41.036584 53.283007,41.943644 54.024508,41.263654 C 55.102506,40.275081 55.736163,40.356243 57.186346,41.668641 C 59.243142,43.530016 59.648,45.490941 57.75,44.398692 C 57.0625,44.003053 56.849096,44.063092 57.27577,44.532111 C 58.699502,46.097143 62.273156,46.051041 64.738264,44.43584 C 66.653328,43.181042 67.050386,42.265882 66.589418,40.169203 C 66.10885,37.983371 66.363868,38.169375 67.997643,41.196328 C 72.723186,49.951507 84.928198,54.297394 95.100777,50.847048 z M 90,40.471483 C 90,39.627644 90.7875,38.693505 91.75,38.395617 C 92.7125,38.09773 94.325842,37.409095 95.335203,36.865318 C 96.819396,36.065733 97.106294,36.209147 96.835203,37.615132 C 96.650842,38.571307 95.0375,39.950356 93.25,40.679684 C 90.419331,41.834642 90,41.807779 90,40.471483 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 176.75,46.420996 C 177.9875,45.61409 179,44.289268 179,43.476947 C 179,41.637309 179.02517,41.635773 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02073 161.67918,48.627878 164.5,49.197139 C 167.22553,49.747169 174.00519,48.210734 176.75,46.420996 z M 135.37788,47.48658 C 137.8173,46.467325 139,45.324497 139,43.98658 C 139,41.609917 138.36427,41.492872 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.136946 129.58883,49.905397 135.37788,47.48658 z M 149.14424,45.799894 C 151.9845,43.091379 152.22379,42.541033 150.70196,42.217318 C 149.71304,42.00696 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,49.953251 144.6686,50.067946 149.14424,45.799894 z M 69,46.5 C 68.315311,45.675 67.274202,45 66.686426,45 C 66.098649,45 66.491249,45.660688 67.55887,46.468197 C 70.067337,48.365506 70.557204,48.376316 69,46.5 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.130126,42.5 C 53.366413,38.62406 54.510613,34 53.233408,34 C 52.692534,34 51.974035,35.379824 51.636745,37.066276 C 51.285646,38.821769 50.580394,39.858703 49.986968,39.491946 C 49.416881,39.139613 49.074096,39.447289 49.225223,40.17567 C 49.376351,40.904052 48.9375,41.3875 48.25,41.25 C 47.5625,41.1125 47.1125,41.551817 47.25,42.226259 C 47.3875,42.900701 46.510713,43.603957 45.301585,43.78905 C 42.258724,44.254849 38.710692,42.196308 39.410986,40.37137 C 39.722344,39.559985 39.587035,39.137192 39.110299,39.431831 C 38.633564,39.72647 37.958093,38.540467 37.609254,36.796269 C 37.200573,34.752865 36.630869,33.969131 36.007392,34.592608 C 34.937303,35.662697 36.471549,42.59682 38.265145,44.79667 C 38.944339,45.629702 41.123898,45.987262 44.360791,45.79667 C 48.763151,45.537453 49.617744,45.121265 51.130126,42.5 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 31.604167,40.270833 C 31.271875,39.938542 31.035526,40.529167 31.078947,41.583333 C 31.126931,42.748276 31.363888,42.985233 31.683114,42.1875 C 31.971985,41.465625 31.936458,40.603125 31.604167,40.270833 z M 45.1875,42.316886 C 44.465625,42.028015 43.603125,42.063542 43.270833,42.395833 C 42.938542,42.728125 43.529167,42.964474 44.583333,42.921053 C 45.748276,42.873069 45.985233,42.636112 45.1875,42.316886 z M 77.464027,41.451454 C 79.380616,40.00238 79.351199,39.889661 76.246078,36.784539 C 72.969946,33.508408 70.370959,33.542449 73.339464,36.82261 C 75.378232,39.075423 75.538029,40.691414 73.559671,39.049523 C 72.323872,38.0239 72.288371,38.218407 73.309671,40.419276 C 74.688578,43.390775 74.84697,43.430129 77.464027,41.451454 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 24.901076,36.25 C 23.491518,27.686508 23.730821,26.105664 26.543554,25.399713 C 27.942508,25.048598 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.328524,27.872253 22.06069,29.444446 22.581656,33.5 C 23.111626,37.62565 24.40839,41 25.463909,41 C 25.58437,41 25.331095,38.8625 24.901076,36.25 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 18.491888,21.342618 22.204388,20.745219 24.793154,20.658206 C 29.194233,20.510277 29.520017,20.67307 29.808139,23.16416 C 30.035866,25.13308 29.579186,25.998786 28.058139,26.481547 C 26.926163,26.840823 26,27.983733 26,29.021347 C 26,30.808915 26.181453,30.792259 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 z M 36.565569,26.38286 C 36.866617,22.588705 38.216602,21.041855 41.25,21.015313 C 42.685375,21.002753 43,21.898928 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.824954 C 35,31.860546 36.099842,32.252486 36.565569,26.38286 z M 58.983833,26.969792 C 57.709342,24.588383 57.655432,24.709946 60.684259,23.135455 C 63.931291,21.447533 64.633093,21.699996 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 68.735773,23.623038 68.377974,23.642105 67.589356,20.5 C 67.244253,19.125 66.372619,18 65.652393,18 C 64.279816,18 55,23.824565 55,24.686075 C 55,24.959757 56.0125,26.42324 57.25,27.93826 C 59.719699,30.96181 60.797962,30.359524 58.983833,26.969792 z M 75.414286,24.014286 C 74.766667,23.366667 74.428571,23.704762 74.428571,25 C 74.428571,26.295238 74.766667,26.633333 75.414286,25.985714 C 76.061905,25.338095 76.061905,24.661905 75.414286,24.014286 z M 73.160801,17.819892 C 76.915424,13.614442 76.742098,13.322616 72.500029,16.707368 C 70.575046,18.243316 69.000046,19.8375 69.000029,20.25 C 68.999971,21.742363 70.376709,20.938275 73.160801,17.819892 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 87.021617,16.189264 C 86.121996,15.873762 80,18.717964 80,19.451418 C 80,19.67145 81.779222,19.097394 83.953826,18.175738 C 86.12843,17.254082 87.508936,16.360169 87.021617,16.189264 z M 100.36706,18.75 C 99.84944,17.888423 100.1378,17.923123 101.29506,18.861667 C 102.35139,19.718367 103.96806,19.973848 105.65448,19.550584 L 108.33493,18.877833 L 105.41747,16.10592 C 103.81286,14.581368 102.275,13.331522 102,13.328485 C 101.725,13.325448 100.15,12.75729 98.5,12.065913 C 95.309814,10.729171 84.928228,10.308289 83.094865,11.44137 C 82.492689,11.813535 81.55,11.839919 81,11.5 C 80.45,11.160081 80,11.385081 80,12 C 80,12.614919 79.572578,12.853873 79.050173,12.531009 C 77.601849,11.635895 75.580918,15.980918 76.853621,17.253621 C 77.572157,17.972157 79.472667,17.612764 83.01671,16.088157 C 88.58172,13.694154 94.695716,13.576448 94.209106,15.872681 C 94.023983,16.746249 94.478489,17.030364 95.459106,16.654066 C 96.306598,16.328853 97,16.525204 97,17.090402 C 97,17.655599 97.402847,17.869061 97.895215,17.564761 C 98.387584,17.26046 99.04846,17.683903 99.36383,18.505744 C 99.6792,19.327585 100.20291,20 100.52763,20 C 100.85235,20 100.7801,19.4375 100.36706,18.75 z"
+ id="path2420" />
+ <path
+ style="fill:#da6f05"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 95.100777,50.847048 C 96.97035,50.212924 99.686499,48.868597 101.13667,47.859655 C 103.71586,46.065201 103.7848,46.069087 104.29966,48.037916 C 104.81063,49.991859 104.93072,50.000681 108.413,48.340097 C 110.38585,47.39931 112,46.037921 112,45.314788 C 112,43.538381 113.64904,43.643025 114.34772,45.463768 C 114.80571,46.657263 115.51787,46.725332 118.20471,45.83242 C 121.60952,44.700907 125.2452,42 123.36351,42 C 122.77772,42 120.8719,42.497298 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.67532,45.603807 105.34987,45.445915 104.72511,43.056817 C 104.14813,40.850463 107.27776,37.435596 108.93699,38.461056 C 109.55621,38.843754 110,38.258421 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.38661,32.136541 109,32.192274 109,33.43002 C 109,34.255233 107.65,36.467973 106,38.347219 C 104.35,40.226465 103,42.492123 103,43.382015 C 103,44.271907 102.56412,45 102.03138,45 C 101.49865,45 101.32375,44.319897 101.64273,43.488659 C 102.05709,42.40883 101.76426,42.153232 100.61708,42.593444 C 99.734006,42.932313 99.257275,43.607262 99.557681,44.09333 C 99.858088,44.579399 99.293004,44.672992 98.301938,44.301315 C 96.709951,43.704276 96.662123,43.824792 97.891444,45.335661 C 99.107546,46.830285 99.076042,46.966411 97.641444,46.415903 C 96.697882,46.053825 96,46.281766 96,46.952028 C 96,47.593331 95.499688,47.808824 94.888197,47.430902 C 94.276705,47.052979 93.453227,47.266663 93.058247,47.905754 C 92.662967,48.545331 91.551579,48.765155 90.586205,48.394706 C 89.199816,47.862699 89.1118,47.544504 90.166154,46.876149 C 91.002443,46.346026 89.728135,46.024914 86.75,46.015313 C 84.1375,46.006891 82,45.55 82,45 C 82,44.45 84.169838,44 86.821861,44 C 93.285497,44 100.39783,41.448324 104.01422,37.831935 C 106.97891,34.867248 109.07955,29.600791 108.23507,27.25 C 107.40866,24.949533 106,25.967481 106,28.865141 C 106,32.519858 102.11891,37.783243 100.86111,35.834294 C 100.15882,34.746098 99.845389,34.739281 99.161729,35.797334 C 98.490292,36.83647 98.071349,36.790897 97.056724,35.568348 C 96.06867,34.377815 95.339735,34.282996 93.743365,35.137347 C 92.117907,36.007265 91.798101,35.951495 92.189297,34.866334 C 92.460204,34.11485 93.517333,31.1375 94.538472,28.25 C 95.559611,25.3625 96.804339,23 97.304533,23 C 97.804728,23 98.002585,23.5625 97.744216,24.25 C 95.86815,29.242075 95.893593,29.840587 97.958916,29.300493 C 99.424774,28.917162 100,27.94529 100,25.851984 C 100,24.188562 100.6415,22.691064 101.49426,22.36383 C 103.75766,21.495282 102.38849,20.232381 99.524321,20.546787 C 98.135944,20.699193 97,20.358413 97,19.789499 C 97,19.170537 96.397577,19.255077 95.5,20 C 94.675,20.684689 94,20.895045 94,20.467457 C 94,20.039869 93.2125,20.382339 92.25,21.228501 C 91.2875,22.074662 88.7,23.679974 86.5,24.795859 C 84.3,25.911745 80.950849,28.4375 79.057442,30.408648 L 75.614884,33.992553 L 77.765629,35.996277 C 79.097638,37.237232 81.296377,38 83.54152,38 C 85.999282,38 87.031228,38.40253 86.746082,39.25 C 86.505241,39.965791 85.146507,40.357198 83.566766,40.165857 C 81.755257,39.946443 80.000076,40.590751 78.454899,42.04237 C 75.386359,44.925114 73.771716,44.173186 71.176965,38.653091 C 69.162831,34.368204 69.134051,33.92285 70.638022,30.31324 C 72.187954,26.593319 72.180675,26.541588 70.340579,28.19941 C 68.236587,30.094986 66.871128,29.585646 65.11452,26.25 C 63.889773,23.92431 61.566313,23.274669 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 62.074518,36.42068 C 60.933533,37.635202 60,39.162399 60,39.814451 C 60,41.36673 62.222928,41.331121 64.023466,39.75 C 64.806373,39.0625 64.587255,39.528382 63.536538,40.785294 L 61.626144,43.070588 L 59.615552,41.059996 L 57.604959,39.049404 L 59.976794,36.524702 C 61.281303,35.136116 62.015603,34 61.608573,34 C 59.831514,34 56.971907,36.239579 54.907705,39.247966 C 53.680445,41.036584 53.283007,41.943644 54.024508,41.263654 C 55.102506,40.275081 55.736163,40.356243 57.186346,41.668641 C 59.243142,43.530016 59.648,45.490941 57.75,44.398692 C 57.0625,44.003053 56.849096,44.063092 57.27577,44.532111 C 58.699502,46.097143 62.273156,46.051041 64.738264,44.43584 C 66.653328,43.181042 67.050386,42.265882 66.589418,40.169203 C 66.10885,37.983371 66.363868,38.169375 67.997643,41.196328 C 72.723186,49.951507 84.928198,54.297394 95.100777,50.847048 z M 90,40.471483 C 90,39.627644 90.7875,38.693505 91.75,38.395617 C 92.7125,38.09773 94.325842,37.409095 95.335203,36.865318 C 96.819396,36.065733 97.106294,36.209147 96.835203,37.615132 C 96.650842,38.571307 95.0375,39.950356 93.25,40.679684 C 90.419331,41.834642 90,41.807779 90,40.471483 z M 85.98548,32.51498 C 87.843278,30.59822 89.586247,29.252914 89.858745,29.525411 C 90.51669,30.183357 84.908998,36 83.616742,36 C 83.06175,36 84.127683,34.431741 85.98548,32.51498 z M 177.25,46.233718 C 178.74627,44.913844 179.71232,42 178.65364,42 C 178.46314,42 176.77564,42.777086 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02313 161.68296,48.631061 164.5,49.191211 C 167.50151,49.788041 175.26114,47.988116 177.25,46.233718 z M 136.04966,47.47432 C 137.80537,46.566409 139,45.14921 139,43.97432 C 139,41.609744 138.36192,41.495225 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.114169 130.63095,50.276445 136.04966,47.47432 z M 149.32692,45.785286 C 152.04818,43.028323 152.24397,42.518191 150.70196,42.20271 C 149.71304,42.000386 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,50.018152 145.02037,50.148352 149.32692,45.785286 z M 69,46.5 C 68.315311,45.675 67.274202,45 66.686426,45 C 66.098649,45 66.491249,45.660688 67.55887,46.468197 C 70.067337,48.365506 70.557204,48.376316 69,46.5 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.130126,42.5 C 53.366413,38.62406 54.510613,34 53.233408,34 C 52.692534,34 51.974035,35.379824 51.636745,37.066276 C 51.285646,38.821769 50.580394,39.858703 49.986968,39.491946 C 49.416881,39.139613 49.074096,39.447289 49.225223,40.17567 C 49.376351,40.904052 48.9375,41.3875 48.25,41.25 C 47.5625,41.1125 47.1125,41.551817 47.25,42.226259 C 47.3875,42.900701 46.510713,43.603957 45.301585,43.78905 C 42.258724,44.254849 38.710692,42.196308 39.410986,40.37137 C 39.722344,39.559985 39.587035,39.137192 39.110299,39.431831 C 38.633564,39.72647 37.958093,38.540467 37.609254,36.796269 C 37.200573,34.752865 36.630869,33.969131 36.007392,34.592608 C 34.937303,35.662697 36.471549,42.59682 38.265145,44.79667 C 38.944339,45.629702 41.123898,45.987262 44.360791,45.79667 C 48.763151,45.537453 49.617744,45.121265 51.130126,42.5 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 31.604167,40.270833 C 31.271875,39.938542 31.035526,40.529167 31.078947,41.583333 C 31.126931,42.748276 31.363888,42.985233 31.683114,42.1875 C 31.971985,41.465625 31.936458,40.603125 31.604167,40.270833 z M 45.1875,42.316886 C 44.465625,42.028015 43.603125,42.063542 43.270833,42.395833 C 42.938542,42.728125 43.529167,42.964474 44.583333,42.921053 C 45.748276,42.873069 45.985233,42.636112 45.1875,42.316886 z M 77.464027,41.451454 C 79.380616,40.00238 79.351199,39.889661 76.246078,36.784539 C 72.969946,33.508408 70.370959,33.542449 73.339464,36.82261 C 75.378232,39.075423 75.538029,40.691414 73.559671,39.049523 C 72.323872,38.0239 72.288371,38.218407 73.309671,40.419276 C 74.688578,43.390775 74.84697,43.430129 77.464027,41.451454 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 24.901076,36.25 C 23.491518,27.686508 23.730821,26.105664 26.543554,25.399713 C 27.942508,25.048598 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.328524,27.872253 22.06069,29.444446 22.581656,33.5 C 23.111626,37.62565 24.40839,41 25.463909,41 C 25.58437,41 25.331095,38.8625 24.901076,36.25 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 18.491888,21.342618 22.204388,20.745219 24.793154,20.658206 C 29.194233,20.510277 29.520017,20.67307 29.808139,23.16416 C 30.035866,25.13308 29.579186,25.998786 28.058139,26.481547 C 26.926163,26.840823 26,27.983733 26,29.021347 C 26,30.808915 26.181453,30.792259 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 z M 36.565569,26.38286 C 36.866617,22.588705 38.216602,21.041855 41.25,21.015313 C 42.685375,21.002753 43,21.898928 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.824954 C 35,31.860546 36.099842,32.252486 36.565569,26.38286 z M 58.983833,26.969792 C 57.709342,24.588383 57.655432,24.709946 60.684259,23.135455 C 63.931291,21.447533 64.633093,21.699996 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 68.735773,23.623038 68.377974,23.642105 67.589356,20.5 C 67.244253,19.125 66.372619,18 65.652393,18 C 64.279816,18 55,23.824565 55,24.686075 C 55,24.959757 56.0125,26.42324 57.25,27.93826 C 59.719699,30.96181 60.797962,30.359524 58.983833,26.969792 z M 75.414286,24.014286 C 74.766667,23.366667 74.428571,23.704762 74.428571,25 C 74.428571,26.295238 74.766667,26.633333 75.414286,25.985714 C 76.061905,25.338095 76.061905,24.661905 75.414286,24.014286 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 73.160801,17.819892 C 76.915424,13.614442 76.742098,13.322616 72.500029,16.707368 C 70.575046,18.243316 69.000046,19.8375 69.000029,20.25 C 68.999971,21.742363 70.376709,20.938275 73.160801,17.819892 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 87.021617,16.189264 C 86.121996,15.873762 80,18.717964 80,19.451418 C 80,19.67145 81.779222,19.097394 83.953826,18.175738 C 86.12843,17.254082 87.508936,16.360169 87.021617,16.189264 z M 100.36706,18.75 C 99.84944,17.888423 100.1378,17.923123 101.29506,18.861667 C 102.35139,19.718367 103.96806,19.973848 105.65448,19.550584 L 108.33493,18.877833 L 105.41747,16.10592 C 103.81286,14.581368 102.275,13.331522 102,13.328485 C 101.725,13.325448 100.15,12.75729 98.5,12.065913 C 95.309814,10.729171 84.928228,10.308289 83.094865,11.44137 C 82.492689,11.813535 81.55,11.839919 81,11.5 C 80.45,11.160081 80,11.385081 80,12 C 80,12.614919 79.572578,12.853873 79.050173,12.531009 C 77.601849,11.635895 75.580918,15.980918 76.853621,17.253621 C 77.572157,17.972157 79.472667,17.612764 83.01671,16.088157 C 88.58172,13.694154 94.695716,13.576448 94.209106,15.872681 C 94.023983,16.746249 94.478489,17.030364 95.459106,16.654066 C 96.306598,16.328853 97,16.525204 97,17.090402 C 97,17.655599 97.402847,17.869061 97.895215,17.564761 C 98.387584,17.26046 99.04846,17.683903 99.36383,18.505744 C 99.6792,19.327585 100.20291,20 100.52763,20 C 100.85235,20 100.7801,19.4375 100.36706,18.75 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z"
+ id="path2418" />
+ <path
+ style="fill:#586a8b"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 97.207482,50.557775 C 99.105934,49.764551 101.27382,48.37499 102.02501,47.469862 C 103.2762,45.962267 103.4556,45.999317 104.16293,47.911396 C 104.91306,49.939192 105.03562,49.950658 108.46752,48.314097 C 110.41038,47.38761 112,46.037921 112,45.314788 C 112,43.538381 113.64904,43.643025 114.34772,45.463768 C 114.80571,46.657263 115.51787,46.725332 118.20471,45.83242 C 121.60952,44.700907 125.2452,42 123.36351,42 C 122.77772,42 120.8719,42.497298 119.12833,43.105107 C 116.71652,43.945869 115.59992,43.912856 114.46035,42.967095 C 113.2493,41.962011 112.61591,42.037626 111.1525,43.361988 C 108.54183,45.72461 105.36859,45.431475 104.5276,42.75 L 103.82194,40.5 L 103.01065,43 C 102.48587,44.617118 102.16416,44.893066 102.09968,43.781385 C 102.03611,42.685371 101.45868,42.270495 100.50574,42.63617 C 99.683903,42.95154 99.257275,43.607262 99.557681,44.09333 C 99.858088,44.579399 99.293004,44.685547 98.301938,44.329216 C 97.310872,43.972885 96.81045,44.025989 97.189889,44.447226 C 98.132095,45.493223 95.790015,47.856652 94.356414,47.306527 C 93.721652,47.062946 92.917372,47.324678 92.569126,47.888152 C 92.220879,48.451627 91.237631,48.644682 90.384129,48.317163 C 89.129841,47.835847 89.088048,47.55956 90.166154,46.876149 C 91.019614,46.335142 89.879318,45.980658 87,45.891885 C 82.656962,45.757984 82.714326,45.722326 88.64458,44.869593 C 92.024099,44.38364 96.524099,43.215724 98.64458,42.274226 C 100.76506,41.332727 103.00151,40.541586 103.61446,40.516134 C 104.22742,40.490682 105.44521,39.8754 106.32066,39.148839 C 107.19611,38.422279 108.3821,38.118118 108.9562,38.472927 C 109.55218,38.841265 110,38.234658 110,37.059017 C 110,33.775853 112.86775,34.654824 114.70139,38.5 C 115.61936,40.425 116.97791,42 117.7204,42 C 118.72735,42 118.81162,41.555336 118.05205,40.25 C 116.31726,37.268745 113.51552,34.346265 111.2086,33.111637 C 109.58285,32.241567 109,31.015257 109,28.464816 C 109,24.775009 108.94245,24.701116 106.73004,25.5501 C 105.8243,25.897663 105.4688,27.001531 105.76447,28.548249 C 106.42349,31.995674 103.44753,36.276816 100.94436,35.482342 C 99.742408,35.100856 99,35.331959 99,36.0876 C 99,36.892472 98.374568,36.743967 97.168848,35.652806 C 96.161715,34.741363 95.036715,34.296618 94.668848,34.664485 C 94.300982,35.032352 94,34.808333 94,34.166667 C 94,33.525 94.45,33 95,33 C 95.55,33 96,32.282871 96,31.40638 C 96,30.52989 96.9,29.577405 98,29.289749 C 99.404955,28.922345 100,27.925733 100,25.940048 C 100,23.7106 100.83779,22.613762 103.96518,20.748811 L 107.93036,18.384262 L 105.13345,15.942131 C 100.22137,11.653123 96.05375,10.279458 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.577657,12.857012 79.06146,12.537985 C 78.545264,12.218957 77.757764,12.610435 77.31146,13.407935 C 76.865157,14.205434 76.264574,14.777399 75.976831,14.678967 C 74.921323,14.317896 68.583754,19.917088 69.270566,20.6039 C 69.660832,20.994166 71.136984,20.065219 72.550905,18.539574 L 75.121669,15.765674 L 77.428303,17.932645 L 79.734938,20.099615 L 85.479926,17.379492 C 90.246371,15.122686 91.553348,14.864478 93.153134,15.863561 C 94.213655,16.525867 95.51305,16.800952 96.040677,16.47486 C 96.568305,16.148768 97,16.385081 97,17 C 97,17.614919 97.359932,17.895584 97.799849,17.6237 C 98.239765,17.351817 99.184324,18.065503 99.898868,19.209669 C 101.06542,21.077624 101.0093,21.210506 99.349019,20.51147 C 96.670604,19.383763 94.012284,19.68543 92.1381,21.329768 C 91.237145,22.120233 88.7,23.679974 86.5,24.795859 C 84.3,25.911745 80.954219,28.434023 79.06493,30.400922 L 75.62986,33.977102 L 77.989244,36.488551 C 79.399515,37.989716 81.585889,39.064378 83.424314,39.160037 L 86.5,39.320074 L 83.354717,39.715585 C 81.624811,39.933117 79.417567,40.9861 78.449729,42.055548 C 77.481892,43.124997 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.592187,43.024274 76.927083,41.913045 L 79.354167,39.892628 L 76.209135,36.747596 C 72.899361,33.437822 70.41719,33.593533 73.429388,36.921975 C 74.832658,38.47257 74.948694,39.21757 74.014419,40.678106 C 73.097335,42.111766 72.957255,42.147108 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.280739,35.039103 69.49339,33.513132 73.106119,29.017574 C 76.964571,24.216246 76.092651,21.999307 71.941717,26.056974 C 68.261313,29.654683 66.666934,29.759176 65.181954,26.5 C 64.032482,23.977185 61.622462,23.183819 60.521196,24.965704 C 60.192936,25.49684 60.874911,27.794643 62.036697,30.071932 L 64.149035,34.212457 L 62.074518,36.42068 C 60.933533,37.635202 60,39.162399 60,39.814451 C 60,41.36673 62.222928,41.331121 64.023466,39.75 C 64.806373,39.0625 64.587255,39.528382 63.536538,40.785294 L 61.626144,43.070588 L 59.615552,41.059996 L 57.604959,39.049404 L 59.976794,36.524702 C 61.281303,35.136116 62.015603,34 61.608573,34 C 59.831514,34 56.971907,36.239579 54.907705,39.247966 C 53.680445,41.036584 53.283007,41.943644 54.024508,41.263654 C 55.102506,40.275081 55.736163,40.356243 57.186346,41.668641 C 59.243142,43.530016 59.648,45.490941 57.75,44.398692 C 57.0625,44.003053 56.849096,44.063092 57.27577,44.532111 C 58.803706,46.211689 62.481167,46.020375 65.040521,44.128162 C 67.588756,42.244171 67.670844,42.243291 68.822645,44.087618 C 70.348485,46.530875 70.33557,47.73557 68.8,46.2 C 68.14,45.54 67.1275,45.013684 66.55,45.030409 C 65.458309,45.062025 67.749332,46.638668 69.5,47.060549 C 70.05,47.193089 71.095871,48.021187 71.824157,48.900766 C 72.552444,49.780345 72.863386,49.9375 72.51514,49.25 C 71.682733,47.606678 71.94747,47.653026 76.571439,49.960154 C 81.370173,52.354481 92.159536,52.666942 97.207482,50.557775 z M 177.25,46.233718 C 178.74627,44.913844 179.71232,42 178.65364,42 C 178.46314,42 176.77564,42.777086 174.90364,43.726859 C 170.34377,46.040339 163.24289,46.052653 161.55915,43.75 C 159.90928,41.49368 159,41.527438 159,43.845012 C 159,46.02313 161.68296,48.631061 164.5,49.191211 C 167.50151,49.788041 175.26114,47.988116 177.25,46.233718 z M 136.04966,47.47432 C 137.80537,46.566409 139,45.14921 139,43.97432 C 139,41.609744 138.36192,41.495225 136.35714,43.5 C 135.53214,44.325 133.97516,45 132.89719,45 C 131.81921,45 130.67821,44.325 130.36163,43.5 C 129.54342,41.367786 128,41.641105 128,43.918213 C 128,49.114169 130.63095,50.276445 136.04966,47.47432 z M 149.32692,45.785286 C 152.04818,43.028323 152.24397,42.518191 150.70196,42.20271 C 149.71304,42.000386 148.25054,42.377108 147.45196,43.039869 C 146.31711,43.981712 145.6724,43.973004 144.5,43 C 143.21362,41.932397 143,42.270987 143,45.377555 C 143,50.018152 145.02037,50.148352 149.32692,45.785286 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.130126,42.5 C 53.366413,38.62406 54.510613,34 53.233408,34 C 52.692534,34 51.974035,35.379824 51.636745,37.066276 C 51.285646,38.821769 50.580394,39.858703 49.986968,39.491946 C 49.416881,39.139613 49.074096,39.447289 49.225223,40.17567 C 49.376351,40.904052 48.9375,41.3875 48.25,41.25 C 47.5625,41.1125 47.1125,41.551817 47.25,42.226259 C 47.3875,42.900701 46.510713,43.603957 45.301585,43.78905 C 42.258724,44.254849 38.710692,42.196308 39.410986,40.37137 C 39.722344,39.559985 39.587035,39.137192 39.110299,39.431831 C 38.633564,39.72647 37.958093,38.540467 37.609254,36.796269 C 37.200573,34.752865 36.630869,33.969131 36.007392,34.592608 C 34.937303,35.662697 36.471549,42.59682 38.265145,44.79667 C 38.944339,45.629702 41.123898,45.987262 44.360791,45.79667 C 48.763151,45.537453 49.617744,45.121265 51.130126,42.5 z M 170.94785,44.053395 C 172.08643,43.333072 171.83156,42.995829 169.75468,42.474565 C 167.00017,41.783227 165,42.449765 165,44.059017 C 165,45.259544 169.04739,45.255718 170.94785,44.053395 z M 135.05293,38.312777 C 134.74055,35.593783 134.06495,33.717523 133.5,34 C 132.41458,34.54271 132.3206,39.787124 133.3483,42.465269 C 134.56398,45.633281 135.60315,43.101868 135.05293,38.312777 z M 31.604167,40.270833 C 31.271875,39.938542 31.035526,40.529167 31.078947,41.583333 C 31.126931,42.748276 31.363888,42.985233 31.683114,42.1875 C 31.971985,41.465625 31.936458,40.603125 31.604167,40.270833 z M 45.1875,42.316886 C 44.465625,42.028015 43.603125,42.063542 43.270833,42.395833 C 42.938542,42.728125 43.529167,42.964474 44.583333,42.921053 C 45.748276,42.873069 45.985233,42.636112 45.1875,42.316886 z M 174.81642,40.327119 C 174.64239,38.857034 174.01366,37.494921 173.41924,37.3002 C 172.74392,37.078976 172.50514,38.081689 172.78274,39.973081 C 173.33023,43.703385 175.2558,44.038602 174.81642,40.327119 z M 24.901076,36.25 C 23.491518,27.686508 23.730821,26.105664 26.543554,25.399713 C 27.942508,25.048598 28.926883,24.280649 28.731054,23.693161 C 27.961126,21.383377 25.962704,22.009952 23.9996,25.176638 C 22.328524,27.872253 22.06069,29.444446 22.581656,33.5 C 23.111626,37.62565 24.40839,41 25.463909,41 C 25.58437,41 25.331095,38.8625 24.901076,36.25 z M 125.39917,36.094832 C 124.69742,31.706302 122.74423,30.990206 122.16964,34.910793 C 121.87575,36.916103 124.748,41.585334 125.6937,40.639632 C 125.89865,40.434686 125.76611,38.389526 125.39917,36.094832 z M 150.31479,37.466073 C 152.35414,33.189503 152.43575,30.978179 150.64461,28.52865 C 149.71357,27.255378 148.69604,26.904813 147.39461,27.40894 C 145.6049,28.102206 145.5967,28.21406 147.24654,29.429135 C 149.7496,31.272584 150.64946,36.536799 148.59622,37.324704 C 147.7183,37.661594 147,38.626354 147,39.468615 C 147,42.093733 148.55638,41.153485 150.31479,37.466073 z M 50.799834,28.909487 C 50.393217,23.288062 49.614447,21.052219 48.463831,22.202836 C 47.654227,23.01244 47.694317,33.461519 48.516972,36.053475 C 49.800387,40.097158 51.275231,35.481783 50.799834,28.909487 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.944458,34.566924 C 58.878238,33.441788 58.772396,32.582265 57.451893,30.566924 C 56.526841,29.155116 55.596735,28 55.38499,28 C 55.173246,28 55,29.8 55,32 C 55,36.177399 55.932909,36.990692 57.944458,34.566924 z M 166.61807,32.614422 C 165.77838,29.268815 168.38445,27.134491 171.17858,28.879452 C 172.28748,29.57197 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.32009,26.991504 163,29.833976 163,32.556704 C 163,34.375209 163.53915,35 165.10841,35 C 166.83107,35 167.10727,34.563539 166.61807,32.614422 z M 42,26.30887 C 42,23.666667 41.597043,23 40,23 C 38.307692,23 38,23.666667 38,27.333333 C 38,29.716667 38.325148,31.991815 38.722552,32.389218 C 39.945653,33.612319 42,29.801078 42,26.30887 z M 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 18.491888,21.342618 22.204388,20.745219 24.793154,20.658206 C 29.194233,20.510277 29.520017,20.67307 29.808139,23.16416 C 30.035866,25.13308 29.579186,25.998786 28.058139,26.481547 C 26.926163,26.840823 26,27.983733 26,29.021347 C 26,30.808915 26.181453,30.792259 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 z M 36.565569,26.38286 C 36.866617,22.588705 38.216602,21.041855 41.25,21.015313 C 42.685375,21.002753 43,21.898928 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.824954 C 35,31.860546 36.099842,32.252486 36.565569,26.38286 z M 58.983833,26.969792 C 57.709342,24.588383 57.655432,24.709946 60.684259,23.135455 C 63.931291,21.447533 64.633093,21.699996 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 68.735773,23.623038 68.377974,23.642105 67.589356,20.5 C 67.244253,19.125 66.372619,18 65.652393,18 C 64.279816,18 55,23.824565 55,24.686075 C 55,24.959757 56.0125,26.42324 57.25,27.93826 C 59.719699,30.96181 60.797962,30.359524 58.983833,26.969792 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z"
+ id="path2416" />
+ <path
+ style="fill:#6f6e70"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 96.702947,50.806639 C 98.241326,50.15029 100.29466,48.949069 101.2659,48.137258 C 102.83753,46.823623 103.17674,46.859448 104.34921,48.462895 C 105.61651,50.196025 105.77755,50.193837 108.58331,48.405373 C 110.18749,47.382826 111.8032,46.114738 112.17378,45.5874 C 112.59456,44.988632 113.34556,45.040109 114.17378,45.72449 C 115.14421,46.526377 116.5731,46.446096 119.5,45.425245 C 121.7,44.657922 123.6125,44.023337 123.75,44.015056 C 124.97746,43.941132 123.42078,40.819257 121,38.5 C 117.87565,35.50668 116.98685,36.076406 119.5318,39.44113 C 121.26385,41.731106 121.40975,43 119.94098,43 C 119.35852,43 119.1054,42.638469 119.3785,42.196598 C 119.99517,41.198797 114.0947,34.656234 111.16326,33.087375 C 109.58458,32.242488 109,30.99334 109,28.464816 C 109,24.775009 108.94245,24.701116 106.73004,25.5501 C 105.8243,25.897663 105.4688,27.001531 105.76447,28.548249 C 106.42349,31.995674 103.44753,36.276816 100.94436,35.482342 C 99.742408,35.100856 99,35.331959 99,36.0876 C 99,36.892472 98.374568,36.743967 97.168848,35.652806 C 96.161715,34.741363 95.036715,34.296618 94.668848,34.664485 C 94.300982,35.032352 94,34.808333 94,34.166667 C 94,33.525 94.45,33 95,33 C 95.55,33 96,32.282871 96,31.40638 C 96,30.52989 96.9,29.577405 98,29.289749 C 99.404955,28.922345 100,27.925733 100,25.940048 C 100,23.7106 100.83779,22.613762 103.96518,20.748811 L 107.93036,18.384262 L 105.13345,15.942131 C 100.22137,11.653123 96.05375,10.279458 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.438572,14.771052 76.008522,14.505267 C 75.578472,14.239482 74.6459,14.721738 73.93614,15.576947 C 72.142578,17.738057 67,20.295009 67,19.02568 C 67,17.280133 64.447201,17.88592 60.491874,20.570077 C 57.800055,22.396794 56.494284,22.799769 55.977327,21.963314 C 55.45373,21.116117 55.058401,21.096488 54.565983,21.893237 C 54.189774,22.501957 54.385081,23 55,23 C 55.614919,23 55.834225,23.459212 55.487348,24.020471 C 55.140471,24.58173 56.089547,26.49423 57.596407,28.270471 C 60.24022,31.38692 60.540832,30.667243 58.574816,25.92812 C 58.126681,24.847881 58.731459,23.987755 60.508415,23.17812 C 64.19067,21.500372 64.609481,21.642989 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 69.234313,23.148672 68,23.653273 68,22 C 68,21.45 68.510898,21 69.135329,21 C 69.75976,21 71.362136,19.822277 72.696164,18.382837 L 75.121669,15.765674 L 77.428303,17.932645 L 79.734938,20.099615 L 85.479926,17.379492 C 90.246371,15.122686 91.553348,14.864478 93.153134,15.863561 C 94.213655,16.525867 95.51305,16.800952 96.040677,16.47486 C 96.568305,16.148768 97,16.385081 97,17 C 97,17.614919 97.359932,17.895584 97.799849,17.6237 C 98.239765,17.351817 99.184324,18.065503 99.898868,19.209669 C 101.06542,21.077624 101.0093,21.210506 99.349019,20.51147 C 96.63792,19.370001 93.998677,19.691222 92.120118,21.391295 C 91.209272,22.215599 88.641303,23.706091 86.413519,24.703499 C 84.185736,25.700908 80.869337,28.218162 79.043744,30.297397 L 75.724485,34.077825 L 78.036556,36.538912 C 79.404656,37.995188 81.604368,39.06534 83.424314,39.160037 L 86.5,39.320074 L 83.354717,39.715585 C 81.624811,39.933117 79.417567,40.9861 78.449729,42.055548 C 77.481892,43.124997 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.592187,43.024274 76.927083,41.913045 L 79.354167,39.892628 L 76.209135,36.747596 C 72.899361,33.437822 70.41719,33.593533 73.429388,36.921975 C 74.832658,38.47257 74.948694,39.21757 74.014419,40.678106 C 73.097335,42.111766 72.957255,42.147108 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.168379,34.937419 69.526108,32.883347 73.410641,28.951864 C 75.756963,26.577183 76.520833,25.136355 75.858483,24.33469 C 75.156634,23.485218 74.087374,23.959527 71.913363,26.08469 C 68.779302,29.148332 66,29.903364 66,27.69113 C 66,26.971251 65.401876,25.564276 64.670835,24.564518 C 63.556459,23.040518 62.981716,22.939418 61.114196,23.938884 L 58.886723,25.130992 L 61.536286,29.65213 L 64.18585,34.173269 L 62.092925,36.401086 C 60.941816,37.626385 60,39.162399 60,39.814451 C 60,41.36673 62.222928,41.331121 64.023466,39.75 C 64.806373,39.0625 64.587255,39.528382 63.536538,40.785294 L 61.626144,43.070588 L 59.615552,41.059996 L 57.604959,39.049404 L 59.976794,36.524702 C 61.281303,35.136116 62.015603,34 61.608573,34 C 59.831514,34 56.971907,36.239579 54.907705,39.247966 C 53.680445,41.036584 53.283007,41.943644 54.024508,41.263654 C 55.102506,40.275081 55.736163,40.356243 57.186346,41.668641 C 59.243142,43.530016 59.648,45.490941 57.75,44.398692 C 57.0625,44.003053 56.849096,44.063092 57.27577,44.532111 C 58.803706,46.211689 62.481167,46.020375 65.040521,44.128162 C 67.588756,42.244171 67.670844,42.243291 68.822645,44.087618 C 70.348485,46.530875 70.33557,47.73557 68.8,46.2 C 68.14,45.54 67.1275,45.013684 66.55,45.030409 C 65.458309,45.062025 67.749332,46.638668 69.5,47.060549 C 70.05,47.193089 71.095871,48.021187 71.824157,48.900766 C 72.552444,49.780345 72.863386,49.9375 72.51514,49.25 C 71.682733,47.606678 71.94747,47.653026 76.571439,49.960154 C 81.133502,52.236394 92.255694,52.704057 96.702947,50.806639 z M 90.103309,48.063848 C 89.003325,47.384021 89.009117,47.148478 90.136847,46.699998 C 90.886581,46.401841 89.475,46.066826 87,45.95552 C 82.660794,45.760376 82.727628,45.720577 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55217,40.218837 103.80279,40.469453 C 104.0534,40.720069 103.08941,41.45777 101.66058,42.108787 C 100.23175,42.759805 99.296975,43.671499 99.583295,44.134774 C 99.869614,44.598048 99.331683,44.680773 98.387893,44.318607 C 97.440391,43.955016 96.922289,44.072105 97.230995,44.580061 C 97.884716,45.65572 95.490768,48.157435 94.630721,47.297388 C 94.310407,46.977074 93.459865,47.203383 92.740628,47.800297 C 92.001533,48.413691 90.854787,48.528287 90.103309,48.063848 z M 105,42.688867 C 105,39.970242 107.34151,37.474998 108.9562,38.472927 C 109.55218,38.841265 110,38.234658 110,37.059017 C 110,35.917427 110.65267,35 111.46482,35 C 112.95162,35 114.21255,36.798645 115.97441,41.432684 C 117.3723,45.109423 115.41406,44.701376 113.45194,40.90707 C 111.63495,37.393391 111.01541,37.5519 110.58803,41.639804 C 110.35268,43.890995 109.72593,44.567374 107.6445,44.816422 C 105.42022,45.082564 105,44.744491 105,42.688867 z M 137.06732,46.963974 C 139.04058,45.907916 139.53516,42.598833 138.36971,38.25 C 137.30425,34.274234 135.79655,35.787366 136.3769,40.25 C 136.7827,43.370474 136.69967,43.835573 136.06448,42 C 135.58866,40.625 135.1545,38 135.09968,36.166667 C 135.03372,33.961071 134.5771,32.982498 133.75,33.274229 C 132.1823,33.827182 132.42369,41.600661 134.07016,43.584543 C 135.02,44.729021 134.84132,45 133.13684,45 C 131.47295,45 130.79005,44.05187 129.89568,40.5 C 128.33178,34.28916 127.15096,34.866962 127.34113,41.75 C 127.56741,49.939695 129.53563,50.99481 137.06732,46.963974 z M 150.58906,44.71179 C 153.39416,41.378115 155.38873,37.055394 154.52183,36.188496 C 154.22806,35.894727 152.3804,37.532136 150.41593,39.827185 C 148.45145,42.122233 146.4557,44 145.98093,44 C 145.50615,44 144.68941,42.0875 144.16594,39.75 L 143.21418,35.5 L 143.10709,41.168213 C 143.04819,44.285729 142.72979,47.540581 142.39953,48.401216 C 141.37353,51.074945 147.59214,48.273427 150.58906,44.71179 z M 174.6977,47.919391 C 178.17966,46.604177 180.50454,42.33433 179.41579,39.254218 C 178.12544,35.603788 176.23889,35.267609 176.7544,38.779963 C 177.03667,40.703204 176.58064,42.077469 175.33516,43.056882 C 173.72057,44.326548 173.62757,44.319711 174.56135,43 C 175.77638,41.282808 175.80651,40.030954 174.67567,38.25 C 173.27357,36.041839 172.33357,36.91268 172.78669,40 C 173.24312,43.109831 171.51011,44.110108 169.37132,41.97132 C 168.66641,41.266413 167.4709,41.628347 165.57299,43.121243 C 163.28694,44.919449 162.64613,45.055411 161.90293,43.899923 C 160.41616,41.588378 161.34802,39.601526 164.42587,38.520665 C 166.605,37.755411 167.4367,37.8128 167.74949,38.75 C 168.35916,40.576774 170.20394,40.280513 169.82332,38.416955 C 169.58745,37.262084 168.08728,36.758735 164.2769,36.555973 C 161.34368,36.399887 159.29896,36.674707 159.61299,37.182823 C 159.92054,37.680456 159.75329,38.630398 159.24132,39.293805 C 157.76889,41.201774 156.89591,44.182364 158.01145,43.492921 C 158.55515,43.156896 159,43.610081 159,44.5 C 159,45.468407 158.53647,45.831559 157.84549,45.404508 C 157.12445,44.958881 156.96267,45.130576 157.41459,45.861803 C 157.81257,46.505755 158.5571,46.773726 159.0691,46.457295 C 159.58109,46.140864 160,46.289757 160,46.788169 C 160,49.626953 168.45434,50.27765 174.6977,47.919391 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.130126,42.5 C 53.366413,38.62406 54.510613,34 53.233408,34 C 52.692534,34 51.974035,35.379824 51.636745,37.066276 C 51.285646,38.821769 50.580394,39.858703 49.986968,39.491946 C 49.416881,39.139613 49.074096,39.447289 49.225223,40.17567 C 49.376351,40.904052 48.9375,41.3875 48.25,41.25 C 47.5625,41.1125 47.1125,41.551817 47.25,42.226259 C 47.3875,42.900701 46.510713,43.603957 45.301585,43.78905 C 42.258724,44.254849 38.710692,42.196308 39.410986,40.37137 C 39.722344,39.559985 39.587035,39.137192 39.110299,39.431831 C 38.633564,39.72647 37.958093,38.540467 37.609254,36.796269 C 37.200573,34.752865 36.630869,33.969131 36.007392,34.592608 C 34.937303,35.662697 36.471549,42.59682 38.265145,44.79667 C 38.944339,45.629702 41.123898,45.987262 44.360791,45.79667 C 48.763151,45.537453 49.617744,45.121265 51.130126,42.5 z M 31.604167,40.270833 C 31.271875,39.938542 31.035526,40.529167 31.078947,41.583333 C 31.126931,42.748276 31.363888,42.985233 31.683114,42.1875 C 31.971985,41.465625 31.936458,40.603125 31.604167,40.270833 z M 45.1875,42.316886 C 44.465625,42.028015 43.603125,42.063542 43.270833,42.395833 C 42.938542,42.728125 43.529167,42.964474 44.583333,42.921053 C 45.748276,42.873069 45.985233,42.636112 45.1875,42.316886 z M 126.04025,37.210359 C 125.15614,32.386511 124.60598,31.507449 123.06653,32.458881 C 121.31015,33.544386 121.85725,37.469658 124.10055,39.877554 C 125.25585,41.117626 126.3418,41.989979 126.51377,41.816116 C 126.68574,41.642252 126.47265,39.569661 126.04025,37.210359 z M 24.901076,36.25 C 23.78734,29.483713 23.824981,25.773798 25,26.5 C 25.55,26.839919 26,26.614919 26,26 C 26,25.384676 26.539901,25.215643 27.200746,25.624068 C 28.135074,26.201514 28.135074,26.454975 27.200746,26.766418 C 26.540336,26.986555 26,28.008449 26,29.037293 C 26,30.800525 26.198507,30.781389 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.950538,30.651108 12.589263,30.962514 16.017078,30.828199 C 20.366488,30.657772 20.89739,29.972814 18.308042,27.872445 C 17.377464,27.1176 16.92488,27.015347 17.302298,27.645215 C 17.9366,28.703794 16.07381,30 13.918213,30 C 13.413196,30 13,28.459898 13,26.577552 C 13,23.54493 13.403574,23.021913 16.543154,21.985758 C 18.491888,21.342618 22.188607,20.745219 24.758083,20.658206 C 28.590525,20.528423 29.498345,20.835683 29.811061,22.36843 C 30.051805,23.548418 29.782372,23.983533 29.07982,23.549331 C 28.467976,23.171191 28.254021,22.398002 28.604365,21.831133 C 28.995051,21.198991 28.425358,21.237172 27.131028,21.929876 C 23.589503,23.825243 21.802735,28.479573 22.572873,33.803356 C 23.135582,37.693232 24.463977,41 25.463909,41 C 25.58437,41 25.331095,38.8625 24.901076,36.25 z M 150.48658,37.377876 C 151.31896,35.385708 152,32.740808 152,31.500321 C 152,28.738174 149.58632,26.561031 147.43802,27.38541 C 146.04639,27.91943 146.10649,28.319926 147.92529,30.632145 C 150.36528,33.734095 150.60606,36.553455 148.5,37.361626 C 147.675,37.678209 147,38.626354 147,39.468615 C 147,42.235598 148.94395,41.0699 150.48658,37.377876 z M 50.860145,29 C 50.712608,23.0472 49.915845,21.056566 47.664227,21.015313 C 46.822685,20.999894 47.582165,32.879481 48.646651,36.382128 C 49.749819,40.012054 51.027466,35.751031 50.860145,29 z M 34,33 C 34,29.074297 32.90027,28.08183 30.415719,29.765313 C 28.868315,30.813803 30.674979,37 32.528592,37 C 33.578568,37 34,35.854344 34,33 z M 57.920853,34.595367 C 58.829081,33.501018 58.636054,32.451738 57.047036,29.845367 L 55.007476,26.5 L 55.003738,31.25 C 54.999916,36.106702 55.85383,37.085976 57.920853,34.595367 z M 166.3999,35.400039 C 167.63413,34.926421 167.73609,34.375389 166.88407,32.783374 C 166.0448,31.2152 166.16368,30.407753 167.41854,29.152884 C 168.77974,27.791685 169.35808,27.742531 171.11354,28.838837 C 172.25821,29.553693 173.4754,29.857928 173.81842,29.514915 C 174.69389,28.639443 171.90201,27.033662 169.47251,27.015313 C 166.41238,26.992201 163,29.825817 163,32.390037 C 163,35.657297 163.82534,36.387989 166.3999,35.400039 z M 42,26.415859 C 42,23.012489 40.003131,21.396869 38.121855,23.278145 C 37.327901,24.072099 37,24.08053 37,23.306989 C 37,22.137752 39.259628,21 41.581787,21 C 42.616976,21 43,22.350376 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.849417 C 35,30.928978 35.120283,31.223231 36.468197,29.44113 C 37.910683,27.533992 37.93695,27.536482 37.968197,29.583333 C 37.985688,30.729167 38.325148,31.991815 38.722552,32.389218 C 39.929133,33.5958 42,29.821512 42,26.415859 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 122.5,20 C 122.16008,19.45 120.67102,19.044856 119.19098,19.09968 L 116.5,19.19936 L 119,20 C 122.54948,21.136742 123.20255,21.136742 122.5,20 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z"
+ id="path2414" />
+ <path
+ style="fill:#62349e"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 102.43333,50.904272 C 104.33181,49.132708 102.40415,49.335114 99.5,51.212274 C 96.758138,52.984537 96.715115,53.092183 99,52.4633 C 100.375,52.084851 101.92,51.383288 102.43333,50.904272 z M 96.702947,50.806639 C 98.241326,50.15029 100.29466,48.949069 101.2659,48.137258 C 102.83753,46.823623 103.17674,46.859448 104.34921,48.462895 C 105.61651,50.196025 105.77755,50.193837 108.58331,48.405373 C 110.18749,47.382826 111.8032,46.114738 112.17378,45.5874 C 112.59456,44.988632 113.34556,45.040109 114.17378,45.72449 C 115.14421,46.526377 116.5731,46.446096 119.5,45.425245 C 121.7,44.657922 123.6125,44.023337 123.75,44.015056 C 124.97746,43.941132 123.42078,40.819257 121,38.5 C 117.87565,35.50668 116.98685,36.076406 119.5318,39.44113 C 121.30191,41.781418 121.40515,43 119.83333,43 C 119.19167,43 118.95462,42.712047 119.30656,42.360104 C 119.65851,42.008161 118.60851,40.030904 116.97323,37.966199 C 115.33795,35.901495 114,33.714448 114,33.106096 C 114,32.497743 112.875,32 111.5,32 C 109.30952,32 109,31.566667 109,28.5 C 109,24.782058 108.93962,24.702204 106.76061,25.538368 C 105.87415,25.878534 105.5062,27.088852 105.76114,28.825924 C 106.17365,31.636484 102.82316,37.148331 101.502,35.832587 C 100.43994,34.774882 99.691519,27.365222 100.37263,24.651446 C 100.78705,23.00029 102.50039,21.452088 105.54356,19.978914 C 109.58869,18.020698 110.28402,17.939865 111.79736,19.251902 C 112.73381,20.063793 115.68954,20.794854 118.36564,20.876483 C 121.04174,20.958112 123.62924,21.270855 124.11564,21.571467 C 124.60204,21.872079 125,21.903178 125,21.640576 C 125,19.951195 117.83897,17.256087 113.16853,17.187713 C 110.23622,17.144785 107.19872,16.579888 106.41853,15.932386 C 105.63834,15.284885 104.98569,15.147711 104.9682,15.627555 C 104.9507,16.1074 104.3882,15.825 103.7182,15 C 101.23381,11.940908 95.702839,10.296622 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.435389,14.769085 76.001449,14.500896 C 74.476181,13.558228 68.000223,17.001505 67.984687,18.76342 C 67.972292,20.169118 67.799353,20.231424 67.077046,19.090423 C 65.994223,17.379928 62.174779,18.738571 57.589823,22.465196 L 54.679647,24.83057 L 57.507899,28.165285 C 60.2197,31.362697 60.545733,30.679056 58.574816,25.92812 C 58.126681,24.847881 58.731459,23.987755 60.508415,23.17812 C 64.19067,21.500372 64.609481,21.642989 66.023224,25.056069 L 67.289089,28.112137 L 70.537538,24.963617 C 73.317438,22.269232 74.089897,21.977744 75.892993,22.942732 C 78.489169,24.332163 78.490455,24.502478 75.931906,28.09563 C 73.346716,31.726193 74.509467,31.778996 78.738864,28.223099 L 81.977729,25.5 L 78.574294,21.5 L 75.170859,17.5 L 72.280711,20.25 C 69.149142,23.229713 68,23.654754 68,21.833333 C 68,21.191667 68.307913,20.974579 68.684251,21.350917 C 69.060589,21.727255 70.79006,20.657339 72.527522,18.973325 L 75.686542,15.911482 L 79.472273,20.531468 L 83.258004,25.151454 L 79.629002,28.86789 C 77.633051,30.911929 76,33.049411 76,33.617849 C 76,35.48491 80.440334,38.83129 83.5,39.270091 L 86.5,39.700336 L 83.404988,39.850168 C 81.702731,39.932576 79.495486,40.9 78.5,42 C 77.504514,43.1 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.592187,43.024274 76.927083,41.913045 L 79.354167,39.892628 L 76.209135,36.747596 C 72.899361,33.437822 70.41719,33.593533 73.429388,36.921975 C 74.832658,38.47257 74.948694,39.21757 74.014419,40.678106 C 73.097335,42.111766 72.957255,42.147108 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.150653,34.921376 69.531537,32.846386 73.477633,29.021679 C 76.01249,26.564799 76.676092,25.314641 75.925475,24.410202 C 75.134873,23.457586 74.202979,23.84652 71.913363,26.08469 C 68.779302,29.148332 66,29.903364 66,27.69113 C 66,26.971251 65.401876,25.564276 64.670835,24.564518 C 63.55587,23.039712 62.982276,22.939118 61.111541,23.940305 L 58.881412,25.133834 L 60.940706,28.624077 C 63.381848,32.761505 63.551197,35.297658 61.5,37 C 59.656332,38.530109 59.532837,41 61.3,41 C 62.015,41 63.24056,40.4375 64.023466,39.75 C 64.806373,39.0625 64.587255,39.528382 63.536538,40.785294 L 61.626144,43.070588 L 59.615552,41.059996 L 57.604959,39.049404 L 59.976794,36.524702 C 63.000093,33.306548 61.010724,33.225677 57.305764,36.416121 L 54.5,38.832241 L 56.92061,41.412178 C 58.251945,42.831143 59.090747,44.242586 58.784614,44.548719 C 58.478481,44.854852 57.305457,43.93249 56.177894,42.499026 L 54.127778,39.892727 L 52.982869,42.03201 C 51.511672,44.780967 51.740951,44.951052 57.705809,45.535598 C 61.644698,45.921603 63.220925,45.614061 65.172842,44.078683 L 67.647041,42.132477 L 69.490241,45.316239 L 71.333441,48.5 L 69.262513,46.681703 C 67.503008,45.13684 66.880853,45.057461 65.125263,46.153845 C 63.175162,47.371703 63.296324,47.515302 67.279471,48.706961 C 72.417228,50.244051 73.299472,50.293573 72.5,49 C 71.645063,47.616683 72.080383,47.719344 76.571439,49.960154 C 81.133502,52.236394 92.255694,52.704057 96.702947,50.806639 z M 94,47 C 93.175,46.466844 90.25,45.968192 87.5,45.891885 L 82.5,45.753144 L 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55942,40.226087 103.8189,40.485563 C 104.07837,40.74504 101.9945,42.02117 99.188074,43.321407 C 95.324075,45.111624 94.366388,45.966388 95.242738,46.842738 C 96.645298,48.245298 96.044589,48.321315 94,47 z M 105,42.5 C 105,39.473224 106.61134,39.200078 107.52295,42.072321 C 107.93137,43.359138 108.7347,43.932048 109.64228,43.583776 C 110.46097,43.269615 110.83514,43.457737 110.49292,44.011454 C 110.1569,44.555154 108.78352,45 107.44098,45 C 105.50393,45 105,44.483882 105,42.5 z M 113.37414,40.756615 C 111.83478,37.779823 111.62907,37.677078 110.8714,39.506615 C 110.20716,41.110566 110.09024,40.913911 110.27294,38.5 C 110.58672,34.354193 111.94026,34.746455 114.5862,39.75 C 115.8223,42.0875 116.43264,44 115.94251,44 C 115.45238,44 114.29661,42.540477 113.37414,40.756615 z M 85.562941,19.930451 C 87.632501,17.643613 90.962683,17.135111 89.089686,19.391935 C 88.454324,20.1575 87.007803,21.026203 85.875194,21.322386 C 83.900468,21.838789 83.887646,21.781631 85.562941,19.930451 z M 89.75,15.337719 C 90.4375,15.060307 91.5625,15.060307 92.25,15.337719 C 92.9375,15.615132 92.375,15.842105 91,15.842105 C 89.625,15.842105 89.0625,15.615132 89.75,15.337719 z M 137.06732,46.963974 C 139.04058,45.907916 139.53516,42.598833 138.36971,38.25 C 137.27726,34.173523 135.78919,35.788037 136.52634,40.25 C 136.91252,42.5875 136.96036,44.245784 136.63265,43.935076 C 136.30494,43.624368 135.69019,40.961588 135.26654,38.017786 C 134.49727,32.672457 132.78103,30.522276 131.64556,33.481266 C 130.57045,36.282977 132.13164,43.869282 133.87929,44.335573 C 134.95173,44.621714 134.74372,44.807239 133.2644,44.883999 C 131.41733,44.97984 130.83187,44.217922 129.89568,40.5 C 128.34921,34.35838 126.822,34.820434 127.41675,41.25 C 127.68385,44.1375 127.17,42.326449 126.27486,37.225442 C 124.59535,27.654595 123.67074,26.584243 121.06864,31.198641 C 119.74044,33.553985 119.86657,34.0831 122.81864,38.53991 C 124.56839,41.181548 126,44.601616 126,46.14006 C 126,48.125696 126.40584,48.781494 127.39885,48.400442 C 128.16822,48.105208 129.08415,48.327136 129.43425,48.893616 C 130.0729,49.926979 132.83614,49.228432 137.06732,46.963974 z M 145.4003,48.606105 C 148.87694,47.153473 153.27562,42.12054 154.45132,38.25 C 155.45773,34.936807 154.12452,35.494524 150.268,40 C 148.38489,42.2 146.4557,44 145.98093,44 C 145.50615,44 144.68941,42.0875 144.16594,39.75 L 143.21418,35.5 L 143.10709,41.55 C 143.04819,44.8775 142.46,48.14 141.8,48.8 C 140.22546,50.374544 141.30727,50.316283 145.4003,48.606105 z M 174.6977,47.919391 C 178.17966,46.604177 180.50454,42.33433 179.41579,39.254218 C 178.12544,35.603788 176.23889,35.267609 176.7544,38.779963 C 177.03667,40.703204 176.58064,42.077469 175.33516,43.056882 C 173.66437,44.370744 173.61936,44.347555 174.83262,42.797988 C 176.48911,40.682324 175.53371,37.356002 172.85829,35.92416 C 171.01536,34.937855 170.87841,35.121117 171.17602,38.175221 C 171.46345,41.124891 171.21794,41.508908 169,41.578956 C 164.64438,41.716516 164,41.964093 164,43.5 C 164,45.764882 162.22934,45.297954 161.44484,42.826196 C 160.96274,41.30723 161.30125,40.252887 162.56858,39.326196 C 164.70219,37.766057 168,37.568001 168,39 C 168,39.55 168.483,40 169.07332,40 C 169.66365,40 170.00115,39.28763 169.82332,38.416955 C 169.58745,37.262084 168.08728,36.758735 164.2769,36.555973 C 161.34368,36.399887 159.29896,36.674707 159.61299,37.182823 C 159.92054,37.680456 159.64279,38.725482 158.99576,39.505103 C 157.33467,41.506599 159.41534,47.40289 162.2818,48.817234 C 164.505,49.914183 170.57956,49.474908 174.6977,47.919391 z M 159,48.0651 C 159,47.550904 158.50044,45.863404 157.88987,44.3151 C 156.85837,41.699418 156.72168,41.641677 155.96015,43.5 C 154.50549,47.04976 154.87421,49 157,49 C 158.1,49 159,48.579295 159,48.0651 z M 27.75,43.409224 C 30.050655,41.92113 30.434657,40.223821 29.369714,36.25 C 28.451198,32.82257 27,33.566517 27,37.464816 C 27,39.866923 26.406735,41.247138 25.065741,41.964816 C 21.791925,43.71691 21,43.150918 21,39.059017 C 21,36.891476 20.55,34.839919 20,34.5 C 18.858584,33.794566 18.674083,38.120413 19.639671,42.948353 C 20.209822,45.79911 20.563031,46.077034 22.889671,45.50563 C 24.325352,45.153039 26.5125,44.209656 27.75,43.409224 z M 51.5,41.286238 C 52.6,38.968668 53.992756,37.056168 54.595012,37.036238 C 55.197269,37.016307 56.489479,36.116613 57.466589,35.036919 C 59.172767,33.151613 59.159765,32.943612 57.138423,29.786919 L 55.033694,26.5 L 54.937899,31.5 C 54.885213,34.25 54.615132,35.9375 54.337719,35.25 C 53.559763,33.322022 52,33.771242 52,35.923275 C 52,36.981076 50.834998,39.231076 49.411106,40.923275 C 45.16377,45.970947 39.777759,44.602093 38.00669,38.024845 C 37.244622,35.194739 36.530279,34.243019 35.472725,34.64884 C 34.343504,35.082163 34,34.372669 34,31.606989 C 34,27.709047 33.365277,27.2812 30.591507,29.30943 C 29.040125,30.443828 28.946996,31.145598 29.8948,34.55943 C 30.496525,36.726744 30.991356,39.675098 30.994423,41.111328 C 30.999099,43.300757 31.374005,43.651161 33.314891,43.280137 C 35.238909,42.912337 35.579051,42.30256 35.329336,39.668809 L 35.028891,36.5 L 36.104591,40 C 37.777431,45.442913 38.75674,46.126314 44.411177,45.79667 C 49.308912,45.51114 49.575101,45.341771 51.5,41.286238 z M 48.585977,40.504933 C 50.901649,38.18926 51.060156,37.417132 50.790522,29.765992 C 50.546684,22.846835 50.218791,21.468387 48.75,21.187735 C 47.216167,20.894656 47,21.730954 47,27.958061 C 47,33.54993 46.659107,35.193582 45.399075,35.677102 C 43.042429,36.581432 42.032531,34.215556 42.015313,27.75 C 41.999714,21.892607 40.862998,20.537002 38.2,23.2 C 37.397179,24.002821 37,24.038232 37,23.306989 C 37,22.137752 39.259628,21 41.581787,21 C 42.616976,21 43,22.350376 43,26 C 43,29.697561 43.377119,31 44.44774,31 C 45.488775,31 45.980393,29.527777 46.19774,25.759366 C 46.439865,21.561372 46.874066,20.447554 48.380173,20.160973 C 50.899266,19.68164 51.966247,21.632074 51.984687,26.75 C 51.993697,29.250582 52.468301,31 53.137681,31 C 54.558988,31 53.467068,20.267709 51.847178,18.31586 C 50.556141,16.760257 46.387597,16.563838 45.489919,18.016312 C 45.144455,18.575283 44.452154,18.779447 43.951471,18.470008 C 43.450789,18.160569 41.231883,18.449458 39.02057,19.111983 L 35,20.316575 L 35,25.849417 C 35,30.728802 35.15883,31.165046 36.34482,29.543108 C 37.54235,27.905389 37.756188,28.349933 38.297248,33.601979 C 38.745815,37.956199 39.469803,39.958061 41.063212,41.25 C 43.983824,43.618039 45.63656,43.454349 48.585977,40.504933 z M 24.733794,41.185686 C 25.556328,40.663224 25.889658,38.120085 25.733794,33.556192 C 25.598532,29.595541 25.921449,26.630932 26.5,26.52186 C 27.05,26.41817 27.1625,26.520833 26.75,26.75 C 26.3375,26.979167 26,28.008449 26,29.037293 C 26,30.800525 26.198507,30.781389 29.457674,28.70396 C 33.222846,26.303997 33.588231,24.985846 31.861413,20.032295 C 30.766393,16.891117 30.561481,16.788258 26.50611,17.344108 C 24.186916,17.661989 19.86178,18.727107 16.894697,19.711037 C 11.184433,21.604647 10.116175,23.342424 11.434198,28.593846 C 11.951416,30.654607 12.587338,30.96259 16.045396,30.82709 C 18.456321,30.73262 19.89573,30.237061 19.653319,29.584957 C 19.431493,28.98823 18.63125,28.667358 17.875,28.871906 C 17.11875,29.076455 15.7125,29.466439 14.75,29.738538 C 13.319793,30.142857 13,29.586535 13,26.694183 C 13,23.527998 13.373323,23.031897 16.543154,21.985758 C 22.036746,20.172709 29.401902,20.180767 29.56122,22 C 29.635047,22.843015 29.508795,22.952512 29.272967,22.25 C 28.71682,20.593283 26.796605,20.673006 19.770116,22.644539 C 15.415161,23.866477 13.99054,24.701637 14.226242,25.894539 C 14.43101,26.930875 15.581789,27.5 17.472509,27.5 C 20.840844,27.5 21.73713,29.473614 21.90032,37.25 C 22.000372,42.017722 22.447068,42.638182 24.733794,41.185686 z M 150.01096,38.75 C 151.10082,36.9625 151.99421,34.107244 151.99626,32.404988 C 152.00051,28.888331 148.89521,25.4425 146.53725,26.347334 C 144.41586,27.161385 144.61369,28.722884 147,30 C 149.40214,31.285589 149.75603,36.495907 147.5,37.361626 C 145.83274,38.001414 145.41438,42 147.0147,42 C 147.57278,42 148.9211,40.5375 150.01096,38.75 z M 140.66228,36.75 C 140.38487,36.0625 140.15789,36.625 140.15789,38 C 140.15789,39.375 140.38487,39.9375 140.66228,39.25 C 140.93969,38.5625 140.93969,37.4375 140.66228,36.75 z M 17.59078,34.505672 C 17.233602,33.082564 16.521528,32.177678 16.008393,32.494813 C 15.44653,32.842063 15.522806,34.053327 16.20015,35.539937 C 17.600464,38.613292 18.461079,37.973219 17.59078,34.505672 z M 166.23939,35.461632 C 167.17602,35.102212 167.49122,33.893537 167.18767,31.825295 C 166.73468,28.7389 166.74688,28.729932 170.45162,29.424945 C 173.69665,30.033718 174.12653,29.891883 173.82694,28.311283 C 173.36523,25.87541 167.63631,25.353056 164.42923,27.454416 C 161.78588,29.186401 161.00146,34.430412 163.25,35.337719 C 163.9375,35.615132 164.5757,35.877632 164.66821,35.921053 C 164.76073,35.964474 165.46776,35.757735 166.23939,35.461632 z M 138.99295,27.271552 C 138.01879,25.745061 137.93919,25.845828 138.41754,28 C 138.72287,29.375 139.05085,31.625 139.14638,33 C 139.2815,34.944813 139.40928,34.783043 139.72179,32.271552 C 139.94273,30.495905 139.61475,28.245905 138.99295,27.271552 z M 157.34252,23.6 C 158.89658,21.228198 158.87494,21.2 155.5,21.2 C 152.12506,21.2 152.10342,21.228198 153.65748,23.6 C 154.52238,24.92 155.35151,26 155.5,26 C 155.64849,26 156.47762,24.92 157.34252,23.6 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 132.1875,24.316886 C 131.46562,24.028015 130.60313,24.063542 130.27083,24.395833 C 129.93854,24.728125 130.52917,24.964474 131.58333,24.921053 C 132.74828,24.873069 132.98523,24.636112 132.1875,24.316886 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 58.5,20.469004 L 61.5,18.009934 L 57.75,18.004967 C 54.415342,18.00055 54,18.276895 54,20.5 C 54,23.591717 54.696224,23.586921 58.5,20.469004 z M 39,17.402175 C 39,17.180979 37.65,17 36,17 C 34.047901,17 33,17.50578 33,18.44798 C 33,19.622582 33.5664,19.698513 36,18.850155 C 37.65,18.274962 39,17.623371 39,17.402175 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z M 145.5,18 C 145.16008,17.45 143.78352,17 142.44098,17 C 141.09844,17 140,17.45 140,18 C 140,18.55 141.37656,19 143.05902,19 C 144.84372,19 145.86058,18.583423 145.5,18 z M 127,14.393011 C 127,13.33849 126.4562,12.9947 125.41821,13.393011 C 124.54823,13.726855 123.62167,14 123.3592,14 C 123.09672,14 123.16008,14.45 123.5,15 C 124.48476,16.59337 127,16.157163 127,14.393011 z M 136,12.786022 C 136,12.236022 135.2882,12.059167 134.41821,12.393011 C 133.54823,12.726855 132.62167,13 132.3592,13 C 132.09672,13 132.14793,13.430347 132.47301,13.956326 C 133.19052,15.117288 136,14.185065 136,12.786022 z"
+ id="path2412" />
+ <path
+ style="fill:#36618c"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 102.43333,50.904272 C 104.33181,49.132708 102.40415,49.335114 99.5,51.212274 C 96.758138,52.984537 96.715115,53.092183 99,52.4633 C 100.375,52.084851 101.92,51.383288 102.43333,50.904272 z M 96.702947,50.806639 C 98.241326,50.15029 100.29466,48.949069 101.2659,48.137258 C 102.83753,46.823623 103.17674,46.859448 104.34921,48.462895 C 105.61651,50.196025 105.77755,50.193837 108.58331,48.405373 C 110.18749,47.382826 111.8032,46.114738 112.17378,45.5874 C 112.59456,44.988632 113.34556,45.040109 114.17378,45.72449 C 115.14421,46.526377 116.5731,46.446096 119.5,45.425245 C 121.7,44.657922 123.6125,44.023337 123.75,44.015056 C 124.97746,43.941132 123.42078,40.819257 121,38.5 C 117.87565,35.50668 116.98685,36.076406 119.5318,39.44113 C 121.30191,41.781418 121.40515,43 119.83333,43 C 119.19167,43 118.95462,42.712047 119.30656,42.360104 C 119.65851,42.008161 118.60851,40.030904 116.97323,37.966199 C 115.33795,35.901495 114,33.714448 114,33.106096 C 114,32.497743 112.875,32 111.5,32 C 109.30952,32 109,31.566667 109,28.5 C 109,24.782058 108.93962,24.702204 106.76061,25.538368 C 105.87415,25.878534 105.5062,27.088852 105.76114,28.825924 C 106.17365,31.636484 102.82316,37.148331 101.502,35.832587 C 100.43994,34.774882 99.691519,27.365222 100.37263,24.651446 C 100.78705,23.00029 102.50039,21.452088 105.54356,19.978914 C 109.58869,18.020698 110.28402,17.939865 111.79736,19.251902 C 112.73381,20.063793 115.68954,20.794854 118.36564,20.876483 C 121.04174,20.958112 123.62924,21.270855 124.11564,21.571467 C 124.60204,21.872079 125,21.903178 125,21.640576 C 125,19.951195 117.83897,17.256087 113.16853,17.187713 C 110.23622,17.144785 107.19872,16.579888 106.41853,15.932386 C 105.63834,15.284885 104.98569,15.147711 104.9682,15.627555 C 104.9507,16.1074 104.3882,15.825 103.7182,15 C 101.23381,11.940908 95.702839,10.296622 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.435389,14.769085 76.001449,14.500896 C 74.813631,13.766784 68,16.86214 68,18.135865 C 68,18.910531 67.567944,18.886315 66.566924,18.055542 C 65.438643,17.119152 64.542952,17.252625 62.3556,18.683097 C 60.827563,19.682394 59.924005,19.9375 60.347693,19.25 C 60.908595,18.339849 60.150413,18 57.559017,18 C 55.472284,18 54,18.492743 54,19.19113 C 54,19.846251 53.413262,19.579848 52.696139,18.599123 C 51.648272,17.166079 50.421173,16.914919 46.446139,17.319885 C 43.725762,17.597029 40.375,18.127468 39,18.498639 C 37.063551,19.021367 36.838131,18.93197 38,18.102059 C 39.190687,17.251564 38.829822,17.027468 36.25,17.015313 C 33.96655,17.004554 33,17.463652 33,18.559017 C 33,19.416476 33.384994,19.880094 33.855543,19.589279 C 34.326092,19.298464 34.484757,20.244491 34.208132,21.691562 C 33.710803,24.293167 33.692843,24.284439 32.602589,20.911299 C 31.676665,18.046583 30.964843,17.448716 28.160017,17.17993 C 23.764245,16.758685 11.071785,20.649356 10.302593,22.653839 C 9.9718496,23.515742 10.113073,25.858725 10.616422,27.860468 C 11.452173,31.184124 11.810619,31.4782 14.746452,31.248818 C 18.286904,30.972196 18.365157,31.125127 19.439748,40.42097 C 19.752621,43.127504 20.20152,45.534853 20.437302,45.770635 C 21.188904,46.522237 27.792437,43.955024 29.071347,42.414033 C 30.046849,41.238624 30.042578,39.768126 29.050789,35.336345 C 28.015164,30.708685 28.032208,29.594473 29.149451,28.886473 C 31.320673,27.510563 32.55607,27.872907 30.591507,29.30943 C 29.040125,30.443828 28.946996,31.145598 29.8948,34.55943 C 30.496525,36.726744 30.991356,39.675098 30.994423,41.111328 C 30.999099,43.300757 31.374005,43.651161 33.314891,43.280137 C 35.238909,42.912337 35.579051,42.30256 35.329336,39.668809 L 35.028891,36.5 L 36.104591,40 C 37.777431,45.442913 38.75674,46.126314 44.411177,45.79667 C 49.308912,45.51114 49.575101,45.341771 51.5,41.286238 C 52.6,38.968668 53.992756,37.056168 54.595012,37.036238 C 56.467685,36.974265 59.244959,33.212489 58.451257,31.813013 C 57.854406,30.760631 57.972602,30.746815 59.046703,31.743407 C 60.153829,32.770642 59.887146,33.508356 57.512767,35.986674 L 54.63872,38.986533 L 56.98997,41.489323 C 58.283157,42.865858 59.090747,44.242586 58.784614,44.548719 C 58.478481,44.854852 57.305457,43.93249 56.177894,42.499026 L 54.127778,39.892727 L 52.982869,42.03201 C 51.511672,44.780967 51.740951,44.951052 57.705809,45.535598 C 61.644698,45.921603 63.220925,45.614061 65.172842,44.078683 L 67.647041,42.132477 L 69.490241,45.316239 L 71.333441,48.5 L 69.262513,46.681703 C 67.503008,45.13684 66.880853,45.057461 65.125263,46.153845 C 63.175162,47.371703 63.296324,47.515302 67.279471,48.706961 C 72.417228,50.244051 73.299472,50.293573 72.5,49 C 71.645063,47.616683 72.080383,47.719344 76.571439,49.960154 C 81.133502,52.236394 92.255694,52.704057 96.702947,50.806639 z M 94,47 C 93.175,46.466844 90.25,45.968192 87.5,45.891885 L 82.5,45.753144 L 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55942,40.226087 103.8189,40.485563 C 104.07837,40.74504 101.9945,42.02117 99.188074,43.321407 C 95.324075,45.111624 94.366388,45.966388 95.242738,46.842738 C 96.645298,48.245298 96.044589,48.321315 94,47 z M 105,42.5 C 105,39.473224 106.61134,39.200078 107.52295,42.072321 C 107.93137,43.359138 108.7347,43.932048 109.64228,43.583776 C 110.46097,43.269615 110.83514,43.457737 110.49292,44.011454 C 110.1569,44.555154 108.78352,45 107.44098,45 C 105.50393,45 105,44.483882 105,42.5 z M 40.789367,42.941932 C 38.760491,41.759155 36.964534,35.902221 37.127519,31 C 37.209957,28.52046 37.494693,29.249359 38.104117,33.5 C 39.336669,42.096879 43.229251,45.064201 48.100145,41.119991 C 49.789517,39.75202 50.59842,37.777416 51.07013,33.869991 L 51.718404,28.5 L 51.859202,33.173275 C 52.092403,40.91353 46.2117,46.102999 40.789367,42.941932 z M 76.903755,41.931935 L 79.30751,39.930409 L 76.456232,36.954316 L 73.604955,33.978224 L 77.982997,29.517325 C 82.35889,25.058614 82.36011,25.055307 80.467638,22.778212 L 78.574236,20.5 L 80.999588,22.740248 L 83.424941,24.980496 L 79.71247,28.782411 C 77.670612,30.873464 76,33.049411 76,33.617849 C 76,35.48491 80.440334,38.83129 83.5,39.270091 L 86.5,39.700336 L 83.404988,39.850168 C 81.702731,39.932576 79.495486,40.9 78.5,42 C 77.504514,43.1 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.58169,43.032775 76.903755,41.931935 z M 113.37414,40.756615 C 111.83478,37.779823 111.62907,37.677078 110.8714,39.506615 C 110.20716,41.110566 110.09024,40.913911 110.27294,38.5 C 110.58672,34.354193 111.94026,34.746455 114.5862,39.75 C 115.8223,42.0875 116.43264,44 115.94251,44 C 115.45238,44 114.29661,42.540477 113.37414,40.756615 z M 21.184982,37.25 L 21.369965,31.5 L 21.737242,36.75 C 22.112337,42.111754 22.475556,42.618448 24.860695,41.107257 C 25.8524,40.478926 26.074287,38.788216 25.678929,34.872569 L 25.136468,29.5 L 26.232714,34.893145 C 27.216945,39.735215 27.139353,40.424934 25.473351,41.643145 C 21.870183,44.277846 20.987966,43.374073 21.184982,37.25 z M 59.46566,40.962055 C 57.662792,38.969908 57.681782,38.863672 60.310672,36.234782 C 61.789803,34.755652 63,34.042627 63,34.650283 C 63,35.257938 62.325,36.315311 61.5,37 C 59.656332,38.530109 59.532837,41 61.3,41 C 62.015,41 63.24056,40.4375 64.023466,39.75 C 64.806373,39.0625 64.601629,39.5125 63.568479,40.75 C 62.535329,41.9875 61.604514,43 61.5,43 C 61.395486,43 60.480033,42.082925 59.46566,40.962055 z M 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.290446,35.047887 69.507799,32.797494 72.658362,29.924314 L 75.316723,27.5 L 72.976356,30.741813 L 70.635989,33.983626 L 72.914209,36.408679 C 74.790787,38.406205 74.985859,39.156907 74.020709,40.666866 C 73.109259,42.092813 72.961844,42.132149 73.357056,40.843956 z M 42.571832,33.816444 C 41.733634,29.930249 41.455307,21.05151 42.195093,21.798314 C 42.577394,22.184241 43.027394,25.164448 43.195093,28.420996 C 43.532419,34.97154 45.6116,37.26045 46.275364,31.81198 L 46.678849,28.5 L 46.589425,31.991683 C 46.4816,36.201827 43.389261,37.606344 42.571832,33.816444 z M 54.309869,30.5 C 54.304256,27.2 54.486352,25.729441 54.714526,27.232091 C 54.9427,28.734741 54.947293,31.434741 54.724731,33.232091 C 54.50217,35.029441 54.315482,33.8 54.309869,30.5 z M 34.232003,32 C 34.232003,30.075 34.437798,29.2875 34.689326,30.25 C 34.940853,31.2125 34.940853,32.7875 34.689326,33.75 C 34.437798,34.7125 34.232003,33.925 34.232003,32 z M 61.564293,31.293128 C 61.021608,29.86793 61.136472,29.753066 62.124088,30.733333 C 62.807506,31.411667 63.114759,32.218574 62.806872,32.526461 C 62.498985,32.834349 61.939824,32.279349 61.564293,31.293128 z M 20,29.75 C 20,28.879167 19.4375,27.939693 18.75,27.662281 C 17.770941,27.267222 17.777743,27.140783 18.781385,27.078947 C 20.207319,26.991094 21.599089,29.734244 20.623539,30.709795 C 20.280592,31.052741 20,30.620833 20,29.75 z M 14,28 C 14,27.45 14.198442,27 14.440983,27 C 14.683524,27 15.160081,27.45 15.5,28 C 15.839919,28.55 15.641476,29 15.059017,29 C 14.476558,29 14,28.55 14,28 z M 71,25.5 C 72.865783,23.575 74.473958,22 74.573722,22 C 74.673486,22 75.351008,22.7875 76.079327,23.75 C 77.073268,25.063529 77.082834,25.217144 76.117679,24.365907 C 75.130618,23.49535 74.146215,23.902008 71.881429,26.115907 C 67.679833,30.223097 66.930017,29.699156 71,25.5 z M 13.522826,24.097936 C 14.060272,23.57191 15.85,22.821378 17.5,22.430086 C 21.369766,21.512385 20.500558,22.364798 16.022826,23.878717 C 14.110381,24.525314 12.985381,24.623962 13.522826,24.097936 z M 37,23.059017 C 37,22.476558 37.45,22 38,22 C 38.55,22 39,22.198442 39,22.440983 C 39,22.683524 38.55,23.160081 38,23.5 C 37.45,23.839919 37,23.641476 37,23.059017 z M 21.270833,21.395833 C 21.603125,21.063542 22.465625,21.028015 23.1875,21.316886 C 23.985233,21.636112 23.748276,21.873069 22.583333,21.921053 C 21.529167,21.964474 20.938542,21.728125 21.270833,21.395833 z M 85.562941,19.930451 C 87.632501,17.643613 90.962683,17.135111 89.089686,19.391935 C 88.454324,20.1575 87.007803,21.026203 85.875194,21.322386 C 83.900468,21.838789 83.887646,21.781631 85.562941,19.930451 z M 25.75,20.337719 C 26.4375,20.060307 27.5625,20.060307 28.25,20.337719 C 28.9375,20.615132 28.375,20.842105 27,20.842105 C 25.625,20.842105 25.0625,20.615132 25.75,20.337719 z M 76.404988,17.75 L 74.5,15.5 L 76.75,17.404988 C 78.864445,19.195206 79.455241,20 78.654988,20 C 78.465231,20 77.452731,18.9875 76.404988,17.75 z M 89.75,15.337719 C 90.4375,15.060307 91.5625,15.060307 92.25,15.337719 C 92.9375,15.615132 92.375,15.842105 91,15.842105 C 89.625,15.842105 89.0625,15.615132 89.75,15.337719 z M 137.06732,46.963974 C 139.04058,45.907916 139.53516,42.598833 138.36971,38.25 C 137.27726,34.173523 135.78919,35.788037 136.52634,40.25 C 136.91252,42.5875 136.96036,44.245784 136.63265,43.935076 C 136.30494,43.624368 135.69019,40.961588 135.26654,38.017786 C 134.49727,32.672457 132.78103,30.522276 131.64556,33.481266 C 130.57045,36.282977 132.13164,43.869282 133.87929,44.335573 C 134.95173,44.621714 134.74372,44.807239 133.2644,44.883999 C 131.41733,44.97984 130.83187,44.217922 129.89568,40.5 C 128.34921,34.35838 126.822,34.820434 127.41675,41.25 C 127.68385,44.1375 127.17,42.326449 126.27486,37.225442 C 124.59535,27.654595 123.67074,26.584243 121.06864,31.198641 C 119.74044,33.553985 119.86657,34.0831 122.81864,38.53991 C 124.56839,41.181548 126,44.601616 126,46.14006 C 126,48.125696 126.40584,48.781494 127.39885,48.400442 C 128.16822,48.105208 129.08415,48.327136 129.43425,48.893616 C 130.0729,49.926979 132.83614,49.228432 137.06732,46.963974 z M 145.4003,48.606105 C 148.87694,47.153473 153.27562,42.12054 154.45132,38.25 C 155.45773,34.936807 154.12452,35.494524 150.268,40 C 148.38489,42.2 146.4557,44 145.98093,44 C 145.50615,44 144.68941,42.0875 144.16594,39.75 L 143.21418,35.5 L 143.10709,41.55 C 143.04819,44.8775 142.46,48.14 141.8,48.8 C 140.22546,50.374544 141.30727,50.316283 145.4003,48.606105 z M 174.6977,47.919391 C 178.17966,46.604177 180.50454,42.33433 179.41579,39.254218 C 178.12544,35.603788 176.23889,35.267609 176.7544,38.779963 C 177.03667,40.703204 176.58064,42.077469 175.33516,43.056882 C 173.66437,44.370744 173.61936,44.347555 174.83262,42.797988 C 176.48911,40.682324 175.53371,37.356002 172.85829,35.92416 C 171.01536,34.937855 170.87841,35.121117 171.17602,38.175221 C 171.46345,41.124891 171.21794,41.508908 169,41.578956 C 164.64438,41.716516 164,41.964093 164,43.5 C 164,45.764882 162.22934,45.297954 161.44484,42.826196 C 160.96274,41.30723 161.30125,40.252887 162.56858,39.326196 C 164.70219,37.766057 168,37.568001 168,39 C 168,39.55 168.483,40 169.07332,40 C 169.66365,40 170.00115,39.28763 169.82332,38.416955 C 169.58745,37.262084 168.08728,36.758735 164.2769,36.555973 C 161.34368,36.399887 159.29896,36.674707 159.61299,37.182823 C 159.92054,37.680456 159.64279,38.725482 158.99576,39.505103 C 157.33467,41.506599 159.41534,47.40289 162.2818,48.817234 C 164.505,49.914183 170.57956,49.474908 174.6977,47.919391 z M 159,48.0651 C 159,47.550904 158.50044,45.863404 157.88987,44.3151 C 156.85837,41.699418 156.72168,41.641677 155.96015,43.5 C 154.50549,47.04976 154.87421,49 157,49 C 158.1,49 159,48.579295 159,48.0651 z M 150.01096,38.75 C 151.10082,36.9625 151.99421,34.107244 151.99626,32.404988 C 152.00051,28.888331 148.89521,25.4425 146.53725,26.347334 C 144.41586,27.161385 144.61369,28.722884 147,30 C 149.40214,31.285589 149.75603,36.495907 147.5,37.361626 C 145.83274,38.001414 145.41438,42 147.0147,42 C 147.57278,42 148.9211,40.5375 150.01096,38.75 z M 140.66228,36.75 C 140.38487,36.0625 140.15789,36.625 140.15789,38 C 140.15789,39.375 140.38487,39.9375 140.66228,39.25 C 140.93969,38.5625 140.93969,37.4375 140.66228,36.75 z M 17.59078,34.505672 C 17.233602,33.082564 16.521528,32.177678 16.008393,32.494813 C 15.44653,32.842063 15.522806,34.053327 16.20015,35.539937 C 17.600464,38.613292 18.461079,37.973219 17.59078,34.505672 z M 166.23939,35.461632 C 167.17602,35.102212 167.49122,33.893537 167.18767,31.825295 C 166.73468,28.7389 166.74688,28.729932 170.45162,29.424945 C 173.69665,30.033718 174.12653,29.891883 173.82694,28.311283 C 173.36523,25.87541 167.63631,25.353056 164.42923,27.454416 C 161.78588,29.186401 161.00146,34.430412 163.25,35.337719 C 163.9375,35.615132 164.5757,35.877632 164.66821,35.921053 C 164.76073,35.964474 165.46776,35.757735 166.23939,35.461632 z M 138.99295,27.271552 C 138.01879,25.745061 137.93919,25.845828 138.41754,28 C 138.72287,29.375 139.05085,31.625 139.14638,33 C 139.2815,34.944813 139.40928,34.783043 139.72179,32.271552 C 139.94273,30.495905 139.61475,28.245905 138.99295,27.271552 z M 157.34252,23.6 C 158.89658,21.228198 158.87494,21.2 155.5,21.2 C 152.12506,21.2 152.10342,21.228198 153.65748,23.6 C 154.52238,24.92 155.35151,26 155.5,26 C 155.64849,26 156.47762,24.92 157.34252,23.6 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 132.1875,24.316886 C 131.46562,24.028015 130.60313,24.063542 130.27083,24.395833 C 129.93854,24.728125 130.52917,24.964474 131.58333,24.921053 C 132.74828,24.873069 132.98523,24.636112 132.1875,24.316886 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z M 145.5,18 C 145.16008,17.45 143.78352,17 142.44098,17 C 141.09844,17 140,17.45 140,18 C 140,18.55 141.37656,19 143.05902,19 C 144.84372,19 145.86058,18.583423 145.5,18 z M 127,14.393011 C 127,13.33849 126.4562,12.9947 125.41821,13.393011 C 124.54823,13.726855 123.62167,14 123.3592,14 C 123.09672,14 123.16008,14.45 123.5,15 C 124.48476,16.59337 127,16.157163 127,14.393011 z M 136,12.786022 C 136,12.236022 135.2882,12.059167 134.41821,12.393011 C 133.54823,12.726855 132.62167,13 132.3592,13 C 132.09672,13 132.14793,13.430347 132.47301,13.956326 C 133.19052,15.117288 136,14.185065 136,12.786022 z"
+ id="path2410" />
+ <path
+ style="fill:#4b6b6b"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 100.6849,51.843691 C 102.23321,51.20772 104.29057,50.786527 105.25682,50.907704 C 106.22307,51.028882 107.28272,50.426806 107.61161,49.569757 C 107.94049,48.712709 108.61242,48.26046 109.10478,48.564761 C 109.59715,48.869061 110,48.641476 110,48.059017 C 110,47.476558 111.0125,46.99749 112.25,46.994423 C 115.71597,46.985832 121.77329,45.083849 123.34721,43.509931 C 125.16683,41.690318 126,42.577078 126,46.333333 C 126,47.983333 126.29301,49.040328 126.65112,48.68221 C 127.00924,48.324092 127.81012,48.725641 128.43085,49.574541 C 129.33465,50.81057 130.11627,50.906291 132.35504,50.055115 C 133.89261,49.470531 135.7837,48.359161 136.55745,47.585403 C 137.33121,46.811646 138.53482,45.988268 139.23214,45.755675 C 140.25289,45.415203 140.24636,44.471991 139.19866,40.916389 C 138.48292,38.487375 137.84542,35.9375 137.78199,35.25 C 137.55758,32.817587 135.99809,34.039992 135.86836,36.75 C 135.7508,39.205811 135.67057,39.134082 135.11836,36.079491 C 134.77826,34.19821 133.97569,32.485939 133.33486,32.274444 C 131.522,31.676137 130.90082,35.145744 131.88123,40.393628 C 132.87319,45.703378 131.65462,45.455218 130.28234,40.068019 C 129.30417,36.227987 127.38651,34.938416 126.75303,37.694661 C 126.52482,38.687597 125.98518,36.9125 125.55383,33.75 C 125.12248,30.5875 124.38178,28 123.90783,28 C 123.43388,28 122.27221,29.181111 121.32634,30.624691 C 119.72394,33.070265 119.71873,33.444792 121.24995,36.112797 L 122.89333,38.976211 L 120.44666,37.373095 C 118.42579,36.048967 118,36.016232 118,37.18499 C 118,37.963246 118.3375,39.033786 118.75,39.563969 C 119.1625,40.094152 118.27461,39.171652 116.7769,37.513969 C 115.2792,35.856286 114.0417,33.9375 114.0269,33.25 C 114.01211,32.5625 112.875,32 111.5,32 C 109.2954,32 109,31.573799 109,28.393011 C 109,25.514752 108.68043,24.908654 107.41821,25.393011 C 106.54823,25.726855 105.72617,26 105.59141,26 C 105.45664,26 105.53049,27.2544 105.75551,28.787556 C 106.17323,31.633672 102.83599,37.161107 101.502,35.832587 C 100.43994,34.774882 99.691519,27.365222 100.37263,24.651446 C 100.78705,23.00029 102.50039,21.452088 105.54356,19.978914 C 109.58869,18.020698 110.28402,17.939865 111.79736,19.251902 C 112.73381,20.063793 115.68954,20.794854 118.36564,20.876483 C 121.04174,20.958112 123.62924,21.270855 124.11564,21.571467 C 124.60204,21.872079 125,21.903178 125,21.640576 C 125,19.951195 117.83897,17.256087 113.16853,17.187713 C 110.23622,17.144785 107.19872,16.579888 106.41853,15.932386 C 105.63834,15.284885 104.98569,15.147711 104.9682,15.627555 C 104.9507,16.1074 104.3882,15.825 103.7182,15 C 101.23381,11.940908 95.702839,10.296622 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.435389,14.769085 76.001449,14.500896 C 74.813631,13.766784 68,16.86214 68,18.135865 C 68,18.910531 67.567944,18.886315 66.566924,18.055542 C 65.438643,17.119152 64.542952,17.252625 62.3556,18.683097 C 60.827563,19.682394 59.924005,19.9375 60.347693,19.25 C 60.908595,18.339849 60.150413,18 57.559017,18 C 55.472284,18 54,18.492743 54,19.19113 C 54,19.846251 53.413262,19.579848 52.696139,18.599123 C 51.648272,17.166079 50.421173,16.914919 46.446139,17.319885 C 43.725762,17.597029 40.375,18.127468 39,18.498639 C 37.063551,19.021367 36.838131,18.93197 38,18.102059 C 39.190687,17.251564 38.829822,17.027468 36.25,17.015313 C 33.96655,17.004554 33,17.463652 33,18.559017 C 33,19.416476 33.384994,19.880094 33.855543,19.589279 C 34.326092,19.298464 34.484757,20.244491 34.208132,21.691562 C 33.710803,24.293167 33.692843,24.284439 32.602589,20.911299 C 31.676665,18.046583 30.964843,17.448716 28.160017,17.17993 C 23.764245,16.758685 11.071785,20.649356 10.302593,22.653839 C 9.9718496,23.515742 10.113073,25.858725 10.616422,27.860468 C 11.452173,31.184124 11.810619,31.4782 14.746452,31.248818 C 18.286904,30.972196 18.365157,31.125127 19.439748,40.42097 C 19.752621,43.127504 20.20152,45.534853 20.437302,45.770635 C 21.188904,46.522237 27.792437,43.955024 29.071347,42.414033 C 30.046849,41.238624 30.042578,39.768126 29.050789,35.336345 C 28.015164,30.708685 28.032208,29.594473 29.149451,28.886473 C 31.320673,27.510563 32.55607,27.872907 30.591507,29.30943 C 29.040125,30.443828 28.946996,31.145598 29.8948,34.55943 C 30.496525,36.726744 30.991356,39.675098 30.994423,41.111328 C 30.999099,43.300757 31.374005,43.651161 33.314891,43.280137 C 35.238909,42.912337 35.579051,42.30256 35.329336,39.668809 L 35.028891,36.5 L 36.104591,40 C 37.777431,45.442913 38.75674,46.126314 44.411177,45.79667 C 49.308912,45.51114 49.575101,45.341771 51.5,41.286238 C 52.6,38.968668 53.992756,37.056168 54.595012,37.036238 C 56.467685,36.974265 59.244959,33.212489 58.451257,31.813013 C 57.854406,30.760631 57.972602,30.746815 59.046703,31.743407 C 60.153829,32.770642 59.887146,33.508356 57.512767,35.986674 L 54.63872,38.986533 L 56.98997,41.489323 C 58.283157,42.865858 59.090747,44.242586 58.784614,44.548719 C 58.478481,44.854852 57.305457,43.93249 56.177894,42.499026 L 54.127778,39.892727 L 52.982869,42.03201 C 51.511672,44.780967 51.740951,44.951052 57.705809,45.535598 C 61.644698,45.921603 63.220925,45.614061 65.172842,44.078683 L 67.647041,42.132477 L 69.490241,45.316239 L 71.333441,48.5 L 69.262513,46.681703 C 67.503008,45.13684 66.880853,45.057461 65.125263,46.153845 C 63.175162,47.371703 63.296324,47.515302 67.279471,48.706961 C 72.417228,50.244051 73.299472,50.293573 72.5,49 C 71.649296,47.623532 72.029891,47.712793 76.763864,50 C 83.899115,53.447378 96.003413,52.533679 101.25,48.151651 C 102.41952,47.174848 103,47.078011 103,47.859711 C 103,48.503038 101.5375,49.9211 99.75,51.01096 C 96.099067,53.236978 96.475838,53.572574 100.6849,51.843691 z M 94,47 C 93.175,46.466844 90.25,45.968192 87.5,45.891885 L 82.5,45.753144 L 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55942,40.226087 103.8189,40.485563 C 104.07837,40.74504 101.9945,42.02117 99.188074,43.321407 C 95.324075,45.111624 94.366388,45.966388 95.242738,46.842738 C 96.645298,48.245298 96.044589,48.321315 94,47 z M 105.47608,42.924639 C 105.1138,41.783191 105.10794,40.558723 105.46307,40.2036 C 106.21253,39.454139 107.96221,41.914882 107.98469,43.75 C 108.00951,45.776691 106.19144,45.178522 105.47608,42.924639 z M 40.789367,42.941932 C 38.760491,41.759155 36.964534,35.902221 37.127519,31 C 37.209957,28.52046 37.494693,29.249359 38.104117,33.5 C 39.336669,42.096879 43.229251,45.064201 48.100145,41.119991 C 49.789517,39.75202 50.59842,37.777416 51.07013,33.869991 L 51.718404,28.5 L 51.859202,33.173275 C 52.092403,40.91353 46.2117,46.102999 40.789367,42.941932 z M 76.903755,41.931935 L 79.30751,39.930409 L 76.456232,36.954316 L 73.604955,33.978224 L 77.982997,29.517325 C 82.35889,25.058614 82.36011,25.055307 80.467638,22.778212 L 78.574236,20.5 L 80.999588,22.740248 L 83.424941,24.980496 L 79.71247,28.782411 C 77.670612,30.873464 76,33.049411 76,33.617849 C 76,35.48491 80.440334,38.83129 83.5,39.270091 L 86.5,39.700336 L 83.404988,39.850168 C 81.702731,39.932576 79.495486,40.9 78.5,42 C 77.504514,43.1 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.58169,43.032775 76.903755,41.931935 z M 21.184982,37.25 L 21.369965,31.5 L 21.737242,36.75 C 22.112337,42.111754 22.475556,42.618448 24.860695,41.107257 C 25.8524,40.478926 26.074287,38.788216 25.678929,34.872569 L 25.136468,29.5 L 26.232714,34.893145 C 27.216945,39.735215 27.139353,40.424934 25.473351,41.643145 C 21.870183,44.277846 20.987966,43.374073 21.184982,37.25 z M 59.46566,40.962055 C 57.662792,38.969908 57.681782,38.863672 60.310672,36.234782 C 61.789803,34.755652 63,34.042627 63,34.650283 C 63,35.257938 62.325,36.315311 61.5,37 C 59.656332,38.530109 59.532837,41 61.3,41 C 62.015,41 63.24056,40.4375 64.023466,39.75 C 64.806373,39.0625 64.601629,39.5125 63.568479,40.75 C 62.535329,41.9875 61.604514,43 61.5,43 C 61.395486,43 60.480033,42.082925 59.46566,40.962055 z M 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.290446,35.047887 69.507799,32.797494 72.658362,29.924314 L 75.316723,27.5 L 72.976356,30.741813 L 70.635989,33.983626 L 72.914209,36.408679 C 74.790787,38.406205 74.985859,39.156907 74.020709,40.666866 C 73.109259,42.092813 72.961844,42.132149 73.357056,40.843956 z M 112.74992,38.350488 L 111.54273,35.700977 L 110.87104,38.100488 C 110.23194,40.38361 110.19453,40.393725 110.09968,38.309017 C 109.9083,34.102511 112.70067,34.726089 114.31338,39.25 C 115.28941,41.987917 114.09384,41.300065 112.74992,38.350488 z M 42.571832,33.816444 C 41.733634,29.930249 41.455307,21.05151 42.195093,21.798314 C 42.577394,22.184241 43.027394,25.164448 43.195093,28.420996 C 43.532419,34.97154 45.6116,37.26045 46.275364,31.81198 L 46.678849,28.5 L 46.589425,31.991683 C 46.4816,36.201827 43.389261,37.606344 42.571832,33.816444 z M 54.309869,30.5 C 54.304256,27.2 54.486352,25.729441 54.714526,27.232091 C 54.9427,28.734741 54.947293,31.434741 54.724731,33.232091 C 54.50217,35.029441 54.315482,33.8 54.309869,30.5 z M 34.232003,32 C 34.232003,30.075 34.437798,29.2875 34.689326,30.25 C 34.940853,31.2125 34.940853,32.7875 34.689326,33.75 C 34.437798,34.7125 34.232003,33.925 34.232003,32 z M 61.564293,31.293128 C 61.021608,29.86793 61.136472,29.753066 62.124088,30.733333 C 62.807506,31.411667 63.114759,32.218574 62.806872,32.526461 C 62.498985,32.834349 61.939824,32.279349 61.564293,31.293128 z M 20,29.75 C 20,28.879167 19.4375,27.939693 18.75,27.662281 C 17.770941,27.267222 17.777743,27.140783 18.781385,27.078947 C 20.207319,26.991094 21.599089,29.734244 20.623539,30.709795 C 20.280592,31.052741 20,30.620833 20,29.75 z M 14,28 C 14,27.45 14.198442,27 14.440983,27 C 14.683524,27 15.160081,27.45 15.5,28 C 15.839919,28.55 15.641476,29 15.059017,29 C 14.476558,29 14,28.55 14,28 z M 71,25.5 C 72.865783,23.575 74.473958,22 74.573722,22 C 74.673486,22 75.351008,22.7875 76.079327,23.75 C 77.073268,25.063529 77.082834,25.217144 76.117679,24.365907 C 75.130618,23.49535 74.146215,23.902008 71.881429,26.115907 C 67.679833,30.223097 66.930017,29.699156 71,25.5 z M 13.522826,24.097936 C 14.060272,23.57191 15.85,22.821378 17.5,22.430086 C 21.369766,21.512385 20.500558,22.364798 16.022826,23.878717 C 14.110381,24.525314 12.985381,24.623962 13.522826,24.097936 z M 37,23.059017 C 37,22.476558 37.45,22 38,22 C 38.55,22 39,22.198442 39,22.440983 C 39,22.683524 38.55,23.160081 38,23.5 C 37.45,23.839919 37,23.641476 37,23.059017 z M 21.270833,21.395833 C 21.603125,21.063542 22.465625,21.028015 23.1875,21.316886 C 23.985233,21.636112 23.748276,21.873069 22.583333,21.921053 C 21.529167,21.964474 20.938542,21.728125 21.270833,21.395833 z M 85.562941,19.930451 C 87.632501,17.643613 90.962683,17.135111 89.089686,19.391935 C 88.454324,20.1575 87.007803,21.026203 85.875194,21.322386 C 83.900468,21.838789 83.887646,21.781631 85.562941,19.930451 z M 25.75,20.337719 C 26.4375,20.060307 27.5625,20.060307 28.25,20.337719 C 28.9375,20.615132 28.375,20.842105 27,20.842105 C 25.625,20.842105 25.0625,20.615132 25.75,20.337719 z M 76.404988,17.75 L 74.5,15.5 L 76.75,17.404988 C 78.864445,19.195206 79.455241,20 78.654988,20 C 78.465231,20 77.452731,18.9875 76.404988,17.75 z M 89.75,15.337719 C 90.4375,15.060307 91.5625,15.060307 92.25,15.337719 C 92.9375,15.615132 92.375,15.842105 91,15.842105 C 89.625,15.842105 89.0625,15.615132 89.75,15.337719 z M 148.23932,47.551558 C 152.48959,43.542581 154.96582,39.196319 154.73621,36.148248 C 154.52737,33.375758 153.57425,33.415119 152.27228,36.25 C 151.43592,38.071074 151.33095,37.64166 151.72163,33.997443 C 152.11429,30.334757 151.81915,29.146309 150.13941,27.626162 C 148.1107,25.79021 145,25.976189 145,27.933431 C 145,28.481342 145.9,29.411298 147,30 C 149.47958,31.327029 149.749,36.498605 147.3858,37.405449 C 146.30048,37.821927 145.92551,38.829985 146.24134,40.482175 C 146.4997,41.83369 146.32609,42.701536 145.85554,42.410721 C 145.38499,42.119906 145,41.262819 145,40.506083 C 145,39.749347 144.44715,37.863404 143.77145,36.3151 C 142.6362,33.713775 142.50331,34.107509 142.02145,41.5 C 141.55134,48.712413 142.02317,50.927624 144.04166,50.984687 C 144.33958,50.993109 146.22852,49.448201 148.23932,47.551558 z M 169.40943,49.816344 C 173.85077,50.010279 180,44.854339 180,40.93647 C 180,39.443274 179.09353,37.159215 177.98561,35.860784 C 176.8777,34.562353 176.03099,33.95 176.10403,34.5 C 176.51826,37.618996 175.94742,38.011651 173.41299,36.351034 L 170.82599,34.655962 L 171.16299,38.062304 C 171.48688,41.336048 171.367,41.469256 168.08333,41.484323 C 166.20417,41.492945 164.47917,42.0625 164.25,42.75 C 163.52294,44.931173 162,44.097989 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.41677,40.750324 170,40.149612 170,38 C 170,36.9 169.41697,36 168.70439,36 C 167.92716,36 167.31127,34.552146 167.16507,32.381333 L 166.92137,28.762666 L 170.54581,29.442616 C 173.69446,30.033306 174.12518,29.884791 173.82694,28.311283 C 173.36523,25.87541 167.63631,25.353056 164.42923,27.454416 C 161.78588,29.186401 161.00146,34.430412 163.25,35.337719 C 164.01965,35.648279 163.85019,35.872443 162.80902,35.921053 C 161.87898,35.964474 160.83992,35.55 160.5,35 C 160.16008,34.45 159.34602,34.006891 158.69098,34.015313 C 157.94218,34.02494 157.87128,34.303397 158.5,34.765313 C 159.05,35.169391 159.64626,36.348599 159.82502,37.385775 C 160.06451,38.775367 159.72195,39.10728 158.52308,38.64723 C 157.62825,38.303853 157.14211,38.420919 157.44276,38.907376 C 157.7434,39.393833 157.31955,41.076179 156.50085,42.645922 C 154.28094,46.902327 154.55344,49.186371 157.25,48.925267 C 158.4875,48.805442 160.625,49.195099 162,49.791172 C 163.375,50.387245 165.175,50.617997 166,50.303954 C 166.825,49.989911 168.35924,49.770487 169.40943,49.816344 z M 140.66228,36.75 C 140.38487,36.0625 140.15789,36.625 140.15789,38 C 140.15789,39.375 140.38487,39.9375 140.66228,39.25 C 140.93969,38.5625 140.93969,37.4375 140.66228,36.75 z M 17.59078,34.505672 C 17.233602,33.082564 16.521528,32.177678 16.008393,32.494813 C 15.44653,32.842063 15.522806,34.053327 16.20015,35.539937 C 17.600464,38.613292 18.461079,37.973219 17.59078,34.505672 z M 138.99295,27.271552 C 138.01879,25.745061 137.93919,25.845828 138.41754,28 C 138.72287,29.375 139.05085,31.625 139.14638,33 C 139.2815,34.944813 139.40928,34.783043 139.72179,32.271552 C 139.94273,30.495905 139.61475,28.245905 138.99295,27.271552 z M 157.34252,23.6 C 158.89658,21.228198 158.87494,21.2 155.5,21.2 C 152.12506,21.2 152.10342,21.228198 153.65748,23.6 C 154.52238,24.92 155.35151,26 155.5,26 C 155.64849,26 156.47762,24.92 157.34252,23.6 z M 108.75,23.634522 C 110.17494,23.549328 111,22.85829 111,21.75 C 111,19.469758 109.26352,19.541946 105.25,21.98904 C 101.49372,24.279286 100.98213,25.564458 104.25,24.501153 C 105.4875,24.098493 107.5125,23.708509 108.75,23.634522 z M 121.02773,23.785247 C 122.17187,24.499769 123.13706,24.587254 123.49454,24.008838 C 124.20413,22.8607 120.08525,21.705119 116.93004,22.16712 C 115.67968,22.350204 114.46848,23.071271 114.2385,23.769491 C 113.90417,24.784474 114.3544,24.795646 116.48426,23.825216 C 118.53106,22.892635 119.58361,22.883375 121.02773,23.785247 z M 131.77905,22 C 132.94591,22 134.3593,22.7875 134.9199,23.75 C 135.83201,25.31599 135.94238,25.265419 135.96959,23.269052 C 136.01093,20.236162 131.86094,19.205871 128.49271,21.412816 C 127.12172,22.311126 126,23.555477 126,24.178041 C 126,24.829941 126.77554,24.608124 127.82874,23.654988 C 128.83455,22.744744 130.61219,22 131.77905,22 z M 132.1875,24.316886 C 131.46562,24.028015 130.60313,24.063542 130.27083,24.395833 C 129.93854,24.728125 130.52917,24.964474 131.58333,24.921053 C 132.74828,24.873069 132.98523,24.636112 132.1875,24.316886 z M 142.9923,23.772735 C 144.53563,22.808912 145.64551,22.805179 148.16279,23.755345 C 153.26581,25.68152 152.76893,24.258526 147.55863,22.025132 C 141.34219,19.360456 140,19.444778 140,22.5 C 140,25.352122 140.2756,25.469344 142.9923,23.772735 z M 168.52749,22.043893 C 169.64262,22.019752 171.55512,22.700517 172.77749,23.556704 C 173.99987,24.412891 175,24.663408 175,24.113408 C 175,22.496325 170.76419,19.999691 168.02749,20.003738 C 165.80956,20.007018 159,23.298636 159,24.367464 C 159,24.585737 160.6875,24.162103 162.75,23.426055 C 164.8125,22.690007 167.41237,22.068034 168.52749,22.043893 z M 132.20165,18.542121 C 134.85058,18.329381 138.47448,16.141143 137.60981,15.276479 C 137.36863,15.035293 136.19532,15.360285 135.00246,15.998684 C 133.26681,16.927573 132.49382,16.85189 131.13234,15.619766 C 129.59257,14.226294 129.31974,14.258374 128.2585,15.957681 C 127.4383,17.27103 126.39691,17.657631 124.79297,17.244204 C 122.71301,16.708075 122.63286,16.815083 123.93014,18.396108 C 124.89217,19.568545 126.0378,19.913202 127.43014,19.44907 C 128.56856,19.069584 130.71574,18.661457 132.20165,18.542121 z M 145.5,18 C 145.16008,17.45 143.78352,17 142.44098,17 C 141.09844,17 140,17.45 140,18 C 140,18.55 141.37656,19 143.05902,19 C 144.84372,19 145.86058,18.583423 145.5,18 z M 127,14.393011 C 127,13.33849 126.4562,12.9947 125.41821,13.393011 C 124.54823,13.726855 123.62167,14 123.3592,14 C 123.09672,14 123.16008,14.45 123.5,15 C 124.48476,16.59337 127,16.157163 127,14.393011 z M 136,12.786022 C 136,12.236022 135.2882,12.059167 134.41821,12.393011 C 133.54823,12.726855 132.62167,13 132.3592,13 C 132.09672,13 132.14793,13.430347 132.47301,13.956326 C 133.19052,15.117288 136,14.185065 136,12.786022 z"
+ id="path2408" />
+ <path
+ style="fill:#9c275d"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 103.5,51.40166 C 105.15,51.020337 107.69447,49.873967 109.15437,48.854172 C 110.61427,47.834378 112.92182,47 114.28225,47 C 117.68892,47 123.99337,44.242708 124.03041,42.73658 C 124.04713,42.056461 124.54002,42.324185 125.12572,43.331523 C 125.71142,44.338861 125.96332,46.03225 125.68551,47.094611 C 125.05621,49.501047 128.18344,51.375922 131.28777,50.453347 C 134.85605,49.392891 139.97991,45.624972 140.06345,44 C 140.11466,43.003931 140.42099,43.171908 140.97528,44.5 C 141.43437,45.6 141.57896,47.5125 141.29658,48.75 C 140.52605,52.126905 143.79058,51.65182 148.16805,47.75 C 152.12513,44.222894 155,39.299409 155,36.04966 C 155,33.335329 153.5624,33.440915 152.27228,36.25 C 151.43939,38.063523 151.33402,37.613674 151.72911,33.931072 C 152.26135,28.970039 150.26389,25.609948 147.14011,26.211535 C 144.70673,26.680159 144.56883,29.653984 146.95158,30.277086 C 149.47928,30.938096 149.97379,37 147.5,37 C 146.55217,37 145.9668,38.012306 145.90981,39.75 C 145.82581,42.31151 145.7519,42.260103 144.83153,39 C 143.38632,33.880813 142.01955,32.974055 141.89226,37.05 C 141.82293,39.270448 141.35819,37.926617 140.58828,33.279347 C 139.93034,29.307988 139.0162,25.707988 138.55686,25.279347 C 138.09751,24.850706 137.99131,26.3 138.32086,28.5 C 138.65041,30.7 139.1438,34.525 139.41728,37 L 139.91451,41.5 L 138.78089,37.75 C 137.43992,33.314101 136.29342,32.939994 135.71625,36.75 C 135.38796,38.917163 135.26791,38.689682 135.14983,35.676676 C 135.02949,32.605909 134.65554,31.924104 133.25,32.212806 C 131.79793,32.511066 131.5254,33.587576 131.64922,38.53613 L 131.79844,44.5 L 130.25455,39.25 C 128.54649,33.441704 127.3229,32.564125 126.76886,36.75 C 126.51726,38.650834 126.15238,37.724471 125.58721,33.75 C 125.1375,30.5875 124.40205,28 123.95287,28 C 123.5037,28 122.21214,29.297701 121.08276,30.88378 L 119.02932,33.767561 L 121.20185,36.529487 L 123.37439,39.291413 L 120.68719,37.530697 C 119.20924,36.562303 118,35.371735 118,34.88499 C 118,34.398246 117.55769,34 117.01708,34 C 116.47648,34 116.94325,35.6875 118.05436,37.75 L 120.07455,41.5 L 117.06418,38 C 115.40847,36.075 114.0417,33.703927 114.0269,32.730948 C 114.00585,31.346757 113.45612,31.098401 111.5,31.589356 C 109.16933,32.174317 109,31.965165 109,28.501419 C 109,25.524306 108.68568,24.906637 107.41821,25.393011 C 106.54823,25.726855 105.71063,26 105.55688,26 C 105.40314,26 105.49224,27.124167 105.7549,28.498148 C 106.22725,30.969102 103.77095,36 102.09217,36 C 101.61822,36 100.90902,33.427396 100.51617,30.283102 C 99.826016,24.75932 99.907106,24.472192 102.91672,21.783102 C 105.93573,19.085619 111.43348,17.951147 112.16667,19.874356 C 112.46064,20.645475 125,22.07448 125,21.336863 C 125,19.979656 118.54893,17.434225 113.5994,16.838472 C 105.38993,15.850335 103.95517,15.518951 103.17003,14.429626 C 101.3978,11.970764 95.246558,10.318939 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.439556,14.771661 76.01071,14.506619 C 74.619451,13.646774 67.488862,16.735231 67.806424,18.060123 C 68.052885,19.088373 67.816847,19.092886 66.600229,18.083183 C 65.768288,17.392733 64.523742,17.17631 63.834569,17.602242 C 63.145397,18.028174 60.650685,18.257926 58.290764,18.112803 C 55.273199,17.927238 53.990977,18.242267 53.969591,19.174471 C 53.949168,20.064718 53.623069,19.958568 52.976549,18.851223 C 51.636458,16.555948 31.780385,16.264119 32.65856,18.552605 C 32.961615,19.342355 33.547411,19.779715 33.960328,19.524519 C 34.373245,19.269322 34.484757,20.244491 34.208132,21.691562 C 33.710803,24.293167 33.692843,24.284439 32.602589,20.911299 C 31.676665,18.046583 30.964843,17.448716 28.160017,17.17993 C 23.764245,16.758685 11.071785,20.649356 10.302593,22.653839 C 9.9718496,23.515742 10.113073,25.858725 10.616422,27.860468 C 11.452173,31.184124 11.810619,31.4782 14.746452,31.248818 C 18.286904,30.972196 18.365157,31.125127 19.439748,40.42097 C 19.752621,43.127504 20.20152,45.534853 20.437302,45.770635 C 21.188904,46.522237 27.792437,43.955024 29.071347,42.414033 C 30.046849,41.238624 30.042578,39.768126 29.050789,35.336345 C 28.015164,30.708685 28.032208,29.594473 29.149451,28.886473 C 31.320673,27.510563 32.55607,27.872907 30.591507,29.30943 C 29.040125,30.443828 28.946996,31.145598 29.8948,34.55943 C 30.496525,36.726744 30.991356,39.768798 30.994423,41.319551 C 30.999073,43.670288 31.374113,44.085969 33.25,43.819551 C 35.143668,43.550607 35.46651,42.945706 35.288531,40 L 35.077061,36.5 L 36.128676,40 C 37.76131,45.433756 38.751315,46.12663 44.411177,45.79667 C 49.308912,45.51114 49.575101,45.341771 51.5,41.286238 C 52.6,38.968668 53.992756,37.056168 54.595012,37.036238 C 56.467685,36.974265 59.244959,33.212489 58.451257,31.813013 C 57.854406,30.760631 57.972602,30.746815 59.046703,31.743407 C 60.153829,32.770642 59.887146,33.508356 57.512767,35.986674 L 54.63872,38.986533 L 56.98997,41.489323 C 58.283157,42.865858 59.090747,44.242586 58.784614,44.548719 C 58.478481,44.854852 57.305457,43.93249 56.177894,42.499026 C 54.189307,39.970947 54.095849,39.952388 53.063889,41.880622 C 51.162999,45.432468 51.794628,45.995259 57.533335,45.862961 C 61.19302,45.778592 63.842152,45.125403 65.356855,43.933938 C 67.616862,42.156216 67.67133,42.174432 69.490241,45.316239 L 71.333441,48.5 L 69.227941,46.650416 C 67.358255,45.007984 66.891858,44.962338 65.063658,46.242859 C 63.078572,47.633267 63.143177,47.726321 66.868458,48.842443 C 71.612269,50.263723 73.310386,50.311232 72.5,49 C 71.649296,47.623532 72.029891,47.712793 76.763864,50 C 83.899115,53.447378 96.003413,52.533679 101.25,48.151651 C 102.41952,47.174848 103,47.078011 103,47.859711 C 103,48.503038 101.5375,49.957618 99.75,51.09211 C 97.925589,52.250029 97.377286,52.922376 98.5,52.624899 C 99.6,52.333441 101.85,51.782984 103.5,51.40166 z M 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55942,40.226087 103.8189,40.485563 C 104.07837,40.74504 101.86277,42.087542 98.895336,43.468901 C 95.015822,45.274838 91.954773,45.94853 88,45.866803 L 82.5,45.753144 L 88.870438,44.841722 z M 105.57421,43.332783 C 105.22233,42.415813 105.39919,41.200813 105.96722,40.632783 C 106.67759,39.922406 107,39.949075 107,40.718213 C 107,41.333229 107.27314,42.548229 107.60699,43.418213 C 107.94083,44.288196 107.76398,45 107.21398,45 C 106.66398,45 105.92608,44.249752 105.57421,43.332783 z M 40.789367,42.941932 C 38.760491,41.759155 36.964534,35.902221 37.127519,31 C 37.209957,28.52046 37.494693,29.249359 38.104117,33.5 C 39.336669,42.096879 43.229251,45.064201 48.100145,41.119991 C 49.789517,39.75202 50.59842,37.777416 51.07013,33.869991 L 51.718404,28.5 L 51.859202,33.173275 C 52.092403,40.91353 46.2117,46.102999 40.789367,42.941932 z M 76.903755,41.931935 L 79.30751,39.930409 L 76.442321,36.939796 L 73.577132,33.949183 L 78.52123,29.224592 C 82.456537,25.464002 82.703718,25.32476 79.732664,28.542163 C 77.679699,30.765352 76,33.049411 76,33.617849 C 76,35.48491 80.440334,38.83129 83.5,39.270091 L 86.5,39.700336 L 83.404988,39.850168 C 81.702731,39.932576 79.495486,40.9 78.5,42 C 77.504514,43.1 76.197269,43.985029 75.595012,43.966731 C 74.992756,43.948433 75.58169,43.032775 76.903755,41.931935 z M 21.184982,37.25 L 21.369965,31.5 L 21.737242,36.75 C 22.112337,42.111754 22.475556,42.618448 24.860695,41.107257 C 25.8524,40.478926 26.074287,38.788216 25.678929,34.872569 L 25.136468,29.5 L 26.232714,34.893145 C 27.216945,39.735215 27.139353,40.424934 25.473351,41.643145 C 21.870183,44.277846 20.987966,43.374073 21.184982,37.25 z M 59.46566,40.962055 C 57.662792,38.969908 57.681782,38.863672 60.310672,36.234782 C 61.789803,34.755652 63,34.042627 63,34.650283 C 63,35.257938 62.325,36.315311 61.5,37 C 59.656332,38.530109 59.532837,41 61.3,41 C 62.015,41 63.24056,40.4375 64.023466,39.75 C 64.806373,39.0625 64.601629,39.5125 63.568479,40.75 C 62.535329,41.9875 61.604514,43 61.5,43 C 61.395486,43 60.480033,42.082925 59.46566,40.962055 z M 73.357056,40.843956 C 73.636492,39.933132 72.995469,38.400887 71.932561,37.438968 C 69.290446,35.047887 69.507799,32.797494 72.658362,29.924314 L 75.316723,27.5 L 72.976356,30.741813 L 70.635989,33.983626 L 72.914209,36.408679 C 74.790787,38.406205 74.985859,39.156907 74.020709,40.666866 C 73.109259,42.092813 72.961844,42.132149 73.357056,40.843956 z M 110.15789,38 C 110.15789,36.625 110.38487,36.0625 110.66228,36.75 C 110.93969,37.4375 110.93969,38.5625 110.66228,39.25 C 110.38487,39.9375 110.15789,39.375 110.15789,38 z M 112.62354,38.461341 C 111.65856,35.946647 111.94323,35.297786 113.12207,37.325003 C 113.70576,38.328754 113.97267,39.360662 113.7152,39.618131 C 113.45773,39.8756 112.96648,39.355044 112.62354,38.461341 z M 42.571832,33.816444 C 41.733634,29.930249 41.455307,21.05151 42.195093,21.798314 C 42.577394,22.184241 43.027394,25.164448 43.195093,28.420996 C 43.532419,34.97154 45.6116,37.26045 46.275364,31.81198 L 46.678849,28.5 L 46.589425,31.991683 C 46.4816,36.201827 43.389261,37.606344 42.571832,33.816444 z M 54.309869,30.5 C 54.304256,27.2 54.486352,25.729441 54.714526,27.232091 C 54.9427,28.734741 54.947293,31.434741 54.724731,33.232091 C 54.50217,35.029441 54.315482,33.8 54.309869,30.5 z M 34.232003,32 C 34.232003,30.075 34.437798,29.2875 34.689326,30.25 C 34.940853,31.2125 34.940853,32.7875 34.689326,33.75 C 34.437798,34.7125 34.232003,33.925 34.232003,32 z M 61.564293,31.293128 C 61.021608,29.86793 61.136472,29.753066 62.124088,30.733333 C 62.807506,31.411667 63.114759,32.218574 62.806872,32.526461 C 62.498985,32.834349 61.939824,32.279349 61.564293,31.293128 z M 20,29.75 C 20,28.879167 19.4375,27.939693 18.75,27.662281 C 17.770941,27.267222 17.777743,27.140783 18.781385,27.078947 C 20.207319,26.991094 21.599089,29.734244 20.623539,30.709795 C 20.280592,31.052741 20,30.620833 20,29.75 z M 71,25.5 C 72.865783,23.575 74.473958,22 74.573722,22 C 74.673486,22 75.351008,22.7875 76.079327,23.75 C 77.073268,25.063529 77.082834,25.217144 76.117679,24.365907 C 75.130618,23.49535 74.146215,23.902008 71.881429,26.115907 C 67.679833,30.223097 66.930017,29.699156 71,25.5 z M 13.733333,23.875912 C 14.411667,23.192494 15.218574,22.885241 15.526461,23.193128 C 15.834349,23.501015 15.279349,24.060176 14.293128,24.435707 C 12.86793,24.978392 12.753066,24.863528 13.733333,23.875912 z M 37,23.059017 C 37,22.476558 37.45,22 38,22 C 38.55,22 39,22.198442 39,22.440983 C 39,22.683524 38.55,23.160081 38,23.5 C 37.45,23.839919 37,23.641476 37,23.059017 z M 79.872445,22.25 C 78.628574,20.663944 78.663944,20.628574 80.25,21.872445 C 81.2125,22.627289 82,23.414789 82,23.622445 C 82,24.445479 81.178814,23.915748 79.872445,22.25 z M 21.270833,21.395833 C 21.603125,21.063542 22.465625,21.028015 23.1875,21.316886 C 23.985233,21.636112 23.748276,21.873069 22.583333,21.921053 C 21.529167,21.964474 20.938542,21.728125 21.270833,21.395833 z M 25.75,20.337719 C 26.4375,20.060307 27.5625,20.060307 28.25,20.337719 C 28.9375,20.615132 28.375,20.842105 27,20.842105 C 25.625,20.842105 25.0625,20.615132 25.75,20.337719 z M 76.404988,17.75 L 74.5,15.5 L 76.75,17.404988 C 78.864445,19.195206 79.455241,20 78.654988,20 C 78.465231,20 77.452731,18.9875 76.404988,17.75 z M 89.75,15.337719 C 90.4375,15.060307 91.5625,15.060307 92.25,15.337719 C 92.9375,15.615132 92.375,15.842105 91,15.842105 C 89.625,15.842105 89.0625,15.615132 89.75,15.337719 z M 175.12667,47.899999 C 180.46836,45.226982 181.67442,40.231471 178.03327,35.860784 L 176.06654,33.5 L 176.00286,36 C 175.94905,38.112443 175.78779,38.240535 174.96259,36.826274 C 174.27045,35.640061 173.02779,35.271394 170.69632,35.560569 C 167.56256,35.949252 167.39554,35.80346 167.172,32.484295 C 166.9837,29.688218 167.29907,29 168.76867,29 C 169.7759,29 171.10079,29.50079 171.71287,30.112868 C 173.48472,31.884719 175.19609,30.234907 173.96752,27.939312 C 172.66572,25.506882 167.39092,25.337459 164.12749,27.623256 C 162.301,28.90258 161.89349,29.96197 162.20418,32.623256 C 162.6222,36.203911 162.13813,36.738131 160.21667,34.816667 C 159.56583,34.165833 158.71833,33.948333 158.33333,34.333333 C 157.94833,34.718333 158.16583,35.565833 158.81667,36.216667 C 160.49975,37.899748 160.28147,39.321989 158.44806,38.618443 C 157.47223,38.24398 157.14857,38.431375 157.57618,39.123258 C 157.95021,39.72845 157.73263,40.547207 157.09268,40.942718 C 156.45273,41.33823 155.67057,43.255192 155.35454,45.202634 L 154.77995,48.743439 L 159.63997,49.700044 C 165.5478,50.862891 170.31238,50.309095 175.12667,47.899999 z M 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.42505,40.775145 169.83923,40.139527 170.21039,37.75 C 170.52947,35.695837 170.61049,35.739357 171.14127,38.25 C 171.68542,40.823868 171.50536,41 168.32994,41 C 166.23669,41 164.71677,41.574522 164.36163,42.5 C 163.45659,44.85849 162,44.253467 162,41.519052 z M 17.564741,34.401926 C 17.102709,32.561045 16.564871,32.035129 15.862542,32.737458 C 15.160213,33.439787 15.244735,34.41902 16.130043,35.836624 C 17.786269,38.488663 18.429105,37.845827 17.564741,34.401926 z M 104.28975,26 C 104.64908,24.625924 105.65376,24 107.5,24 C 109.34624,24 110.35092,24.625924 110.71025,26 C 110.99791,27.1 111.56103,28 111.96164,28 C 112.36225,28 113.50451,27.1 114.5,26 C 115.51189,24.881879 117.57997,24 119.19017,24 C 121.85079,24 121.98278,24.171535 120.92148,26.25 L 119.77258,28.5 L 122.00765,26.350866 C 123.23693,25.168843 123.93654,23.706343 123.56234,23.100866 C 122.71285,21.726363 114,21.634457 114,23 C 114,24.791812 112.1514,24.052371 111.5,22 C 110.74624,19.625119 108.92053,19.472614 105.07152,21.463015 C 102.14984,22.973876 100.57227,25.498898 101.55577,27.090242 C 102.49456,28.609228 103.73698,28.113779 104.28975,26 z M 135.98176,25.534089 C 137.05197,23.534379 137.06077,22.778145 136.02829,21.534089 C 133.35476,18.312679 126,20.846017 126,24.988321 C 126,27.448013 126.91599,28 130.99769,28 C 133.86937,28 134.94752,27.466573 135.98176,25.534089 z M 128.18045,24.75 C 128.53166,22.277059 132.46518,21.065178 134.27295,22.872953 C 135.79784,24.397841 133.29789,27 130.308,27 C 128.34225,27 127.92375,26.55742 128.18045,24.75 z M 132.54112,24.933469 C 133.45781,23.450233 132.59572,22.834172 130.64887,23.581246 C 129.74831,23.926824 129.26046,24.612416 129.56476,25.104785 C 130.31322,26.315821 131.73744,26.233845 132.54112,24.933469 z M 143.18368,25.75 C 143.59457,22.88587 147.20679,23.092592 151.5,26.225931 L 154.5,28.415439 L 152.89926,25.95772 C 150.97196,22.998596 145.52996,20.114052 141.75,20.048032 C 138.67137,19.99426 138.53899,20.379093 140.09783,24.850777 C 141.38394,28.540125 142.72725,28.931569 143.18368,25.75 z M 159.98182,26.033965 C 161.5905,23.028126 168.25962,21.565775 171.86246,23.428876 C 173.45481,24.25231 175.04776,25.682081 175.40236,26.606143 C 175.75695,27.530205 176.29794,28.035389 176.60456,27.728774 C 177.35023,26.983105 175.07023,22.804745 173.08666,21.281803 C 168.54372,17.793848 157,22.208826 157,27.434259 C 157,28.780512 159.01946,27.832153 159.98182,26.033965 z M 158.01555,22.849267 C 158.82522,21.440249 158.33068,21.14739 154.63823,20.849267 L 150.31235,20.5 L 152.87295,23.708261 C 155.4693,26.961299 155.67209,26.927425 158.01555,22.849267 z M 132.59677,18.632205 C 134.84142,18.490676 138,16.308341 138,14.898994 C 138,14.42813 136.87683,14.554629 135.50406,15.180103 C 133.45745,16.1126 132.66365,16.005582 131.09463,14.585637 C 129.26857,12.933073 129.14936,12.954045 128.48585,15.044596 C 127.8852,16.937051 127.26142,17.164274 123.90335,16.713862 L 120.01613,16.192477 L 122.25807,18.108217 C 123.88447,19.497985 125.32366,19.851051 127.5,19.394183 C 129.15,19.047808 131.44355,18.704918 132.59677,18.632205 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 127,14.426676 C 127,13.495437 126.31963,12.985303 125.33287,13.176676 C 122.8241,13.663227 122.47962,16 124.91667,16 C 126.145,16 127,15.354311 127,14.426676 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2406" />
+ <path
+ style="fill:#a55f1b"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 103.5,51.40166 C 105.15,51.020337 107.69447,49.873967 109.15437,48.854172 C 110.61427,47.834378 112.92182,47 114.28225,47 C 117.68892,47 123.99337,44.242708 124.03041,42.73658 C 124.04713,42.056461 124.54002,42.324185 125.12572,43.331523 C 125.71142,44.338861 125.96332,46.03225 125.68551,47.094611 C 125.05621,49.501047 128.18344,51.375922 131.28777,50.453347 C 134.85605,49.392891 139.97991,45.624972 140.06345,44 C 140.11466,43.003931 140.42099,43.171908 140.97528,44.5 C 141.43437,45.6 141.57896,47.5125 141.29658,48.75 C 140.52605,52.126905 143.79058,51.65182 148.16805,47.75 C 152.12513,44.222894 155,39.299409 155,36.04966 C 155,33.335329 153.5624,33.440915 152.27228,36.25 C 151.43939,38.063523 151.33402,37.613674 151.72911,33.931072 C 152.26135,28.970039 150.26389,25.609948 147.14011,26.211535 C 144.70673,26.680159 144.56883,29.653984 146.95158,30.277086 C 149.47928,30.938096 149.97379,37 147.5,37 C 146.55217,37 145.9668,38.012306 145.90981,39.75 C 145.82581,42.31151 145.7519,42.260103 144.83153,39 C 143.38632,33.880813 142.01955,32.974055 141.89226,37.05 C 141.82293,39.270448 141.35819,37.926617 140.58828,33.279347 C 139.93034,29.307988 139.0162,25.707988 138.55686,25.279347 C 138.09751,24.850706 137.99131,26.3 138.32086,28.5 C 138.65041,30.7 139.1438,34.525 139.41728,37 L 139.91451,41.5 L 138.78089,37.75 C 137.43992,33.314101 136.29342,32.939994 135.71625,36.75 C 135.38796,38.917163 135.26791,38.689682 135.14983,35.676676 C 135.02949,32.605909 134.65554,31.924104 133.25,32.212806 C 131.79793,32.511066 131.5254,33.587576 131.64922,38.53613 L 131.79844,44.5 L 130.25455,39.25 C 128.54649,33.441704 127.3229,32.564125 126.76886,36.75 C 126.51726,38.650834 126.15238,37.724471 125.58721,33.75 C 125.1375,30.5875 124.40205,28 123.95287,28 C 123.5037,28 122.21214,29.297701 121.08276,30.88378 L 119.02932,33.767561 L 121.20185,36.529487 L 123.37439,39.291413 L 120.68719,37.530697 C 119.20924,36.562303 118,35.371735 118,34.88499 C 118,34.398246 117.55769,34 117.01708,34 C 116.47648,34 116.94325,35.6875 118.05436,37.75 L 120.07455,41.5 L 117.06418,38 C 115.40847,36.075 114.0417,33.703927 114.0269,32.730948 C 114.00585,31.346757 113.45612,31.098401 111.5,31.589356 C 109.16933,32.174317 109,31.965165 109,28.501419 C 109,25.524306 108.68568,24.906637 107.41821,25.393011 C 106.54823,25.726855 105.71063,26 105.55688,26 C 105.40314,26 105.49224,27.124167 105.7549,28.498148 C 106.22725,30.969102 103.77095,36 102.09217,36 C 101.61822,36 100.90902,33.427396 100.51617,30.283102 C 99.826016,24.75932 99.907106,24.472192 102.91672,21.783102 C 105.93573,19.085619 111.43348,17.951147 112.16667,19.874356 C 112.46064,20.645475 125,22.07448 125,21.336863 C 125,19.979656 118.54893,17.434225 113.5994,16.838472 C 105.38993,15.850335 103.95517,15.518951 103.17003,14.429626 C 101.3978,11.970764 95.246558,10.318939 89,10.624473 C 80.668925,11.031966 80,11.150976 80,12.225684 C 80,12.716476 79.546822,12.837954 78.992937,12.495635 C 78.439053,12.153315 77.716899,12.574173 77.388152,13.430874 C 77.059405,14.287576 76.439556,14.771661 76.01071,14.506619 C 74.619451,13.646774 67.488862,16.735231 67.806424,18.060123 C 68.052885,19.088373 67.816847,19.092886 66.600229,18.083183 C 65.768288,17.392733 64.523742,17.17631 63.834569,17.602242 C 63.145397,18.028174 60.650685,18.257926 58.290764,18.112803 C 55.273199,17.927238 53.990977,18.242267 53.969591,19.174471 C 53.949168,20.064718 53.623069,19.958568 52.976549,18.851223 C 51.636458,16.555948 31.780385,16.264119 32.65856,18.552605 C 32.961615,19.342355 33.547411,19.779715 33.960328,19.524519 C 34.373245,19.269322 34.484757,20.244491 34.208132,21.691562 C 33.710803,24.293167 33.692843,24.284439 32.602589,20.911299 C 31.676665,18.046583 30.964843,17.448716 28.160017,17.17993 C 23.764245,16.758685 11.071785,20.649356 10.302593,22.653839 C 9.9718496,23.515742 10.11326,25.858725 10.616839,27.860468 C 11.430441,31.094565 11.860507,31.475806 14.477479,31.282811 C 18.239423,31.005377 18.962353,32.238978 19,39 C 19.045217,47.120444 19.724214,47.688304 25.87115,44.746488 C 28.692017,43.39647 31,42.732481 31,43.270955 C 31,43.81226 32.264661,43.997068 33.828529,43.684294 C 35.879676,43.274065 37.113747,43.651964 38.318741,45.059294 C 41.282225,48.520392 49.663466,47.021739 51.87151,42.635918 C 52.842145,40.707953 52.890193,40.76774 52.365012,43.25 C 51.811552,45.865919 51.966675,46 55.54658,46 L 59.309975,46 L 57.42062,43.75 C 56.119144,42.200095 56.464271,42.343585 58.529805,44.211154 C 62.670631,47.955116 74.32281,51.949368 72.5,49 C 71.649296,47.623532 72.029891,47.712793 76.763864,50 C 83.899115,53.447378 96.003413,52.533679 101.25,48.151651 C 102.41952,47.174848 103,47.078011 103,47.859711 C 103,48.503038 101.5375,49.957618 99.75,51.09211 C 97.925589,52.250029 97.377286,52.922376 98.5,52.624899 C 99.6,52.333441 101.85,51.782984 103.5,51.40166 z M 68.764474,46.335903 C 67.377798,44.949227 66.837916,44.889628 65.526022,45.978403 C 64.660128,46.697032 63.726668,47.060001 63.451668,46.785001 C 63.176668,46.510001 63.615948,45.733698 64.427846,45.059882 C 66.170513,43.613597 69.579044,44.460623 70.376234,46.538067 C 71.096576,48.415248 70.807569,48.378997 68.764474,46.335903 z M 88.870438,44.841722 C 92.374179,44.34044 97.064781,43.049084 99.293998,41.972044 C 101.52322,40.895003 103.55942,40.226087 103.8189,40.485563 C 104.07837,40.74504 101.86277,42.087542 98.895336,43.468901 C 95.015822,45.274838 91.954773,45.94853 88,45.866803 L 82.5,45.753144 L 88.870438,44.841722 z M 105.57421,43.332783 C 105.22233,42.415813 105.39919,41.200813 105.96722,40.632783 C 106.67759,39.922406 107,39.949075 107,40.718213 C 107,41.333229 107.27314,42.548229 107.60699,43.418213 C 107.94083,44.288196 107.76398,45 107.21398,45 C 106.66398,45 105.92608,44.249752 105.57421,43.332783 z M 76,43.622445 C 76,43.414789 76.7875,42.627289 77.75,41.872445 C 79.336056,40.628574 79.371426,40.663944 78.127555,42.25 C 76.821186,43.915748 76,44.445479 76,43.622445 z M 46,42.606989 C 46,42.390833 46.698372,41.945987 47.551938,41.618443 C 48.441863,41.276947 48.84326,41.444594 48.492921,42.011454 C 47.905663,42.961658 46,43.416902 46,42.606989 z M 78.584097,38.358556 C 78.106863,37.114907 78.262693,36.972291 79.227108,37.770071 C 79.927199,38.349198 81.85,39.020423 83.5,39.261683 C 86.297082,39.670666 86.253589,39.71047 82.856989,39.850168 C 80.304497,39.955148 79.025425,39.508641 78.584097,38.358556 z M 110.15789,38 C 110.15789,36.625 110.38487,36.0625 110.66228,36.75 C 110.93969,37.4375 110.93969,38.5625 110.66228,39.25 C 110.38487,39.9375 110.15789,39.375 110.15789,38 z M 112.62354,38.461341 C 111.65856,35.946647 111.94323,35.297786 113.12207,37.325003 C 113.70576,38.328754 113.97267,39.360662 113.7152,39.618131 C 113.45773,39.8756 112.96648,39.355044 112.62354,38.461341 z M 21.252183,35.5 C 21.241084,33.3 21.436788,32.282253 21.68708,33.238341 C 21.937373,34.194428 21.946454,35.994428 21.707261,37.238341 C 21.468068,38.482253 21.263283,37.7 21.252183,35.5 z M 29.078472,35.343771 C 27.65287,30.2097 27.719212,29.321726 29.581787,28.606989 C 32.125647,27.630818 32.515879,27.902295 30.591507,29.30943 C 29.048062,30.438025 28.948872,31.155298 29.873273,34.503201 C 30.463158,36.639589 30.765791,38.567542 30.545791,38.787542 C 30.325791,39.007542 29.665498,37.457845 29.078472,35.343771 z M 37.640658,36.789663 C 37.303316,35.530348 37.077305,32.925 37.13841,31 C 37.223239,28.327647 37.437735,28.799629 38.045483,32.99594 C 38.881911,38.771227 38.679528,40.667818 37.640658,36.789663 z M 53,38.059017 C 53,37.476558 53.45,37 54,37 C 54.55,37 55,37.198442 55,37.440983 C 55,37.683524 54.55,38.160081 54,38.5 C 53.45,38.839919 53,38.641476 53,38.059017 z M 59.996296,36.503943 C 61.286004,35.131112 62.561686,34.228353 62.831146,34.497812 C 63.495002,35.161669 59.948021,39 58.670698,39 C 58.110069,39 58.706588,37.876774 59.996296,36.503943 z M 71.660536,37.17739 C 69.328378,34.600384 69.586248,32.725952 72.658362,29.924314 L 75.316723,27.5 L 72.985173,30.729888 C 70.716464,33.872721 70.703046,34.014388 72.487347,35.986019 C 73.495896,37.100452 74.096072,38.237262 73.821072,38.512262 C 73.546072,38.787262 72.573831,38.186569 71.660536,37.17739 z M 25.623539,35.461341 C 25.280592,34.567637 25.046063,32.860729 25.102361,31.668213 C 25.167072,30.297518 25.506736,30.784886 26.025806,32.993222 C 26.899329,36.709541 26.661788,38.166975 25.623539,35.461341 z M 51.272364,33 C 51.272364,30.525 51.46738,29.5125 51.705733,30.75 C 51.944086,31.9875 51.944086,34.0125 51.705733,35.25 C 51.46738,36.4875 51.272364,35.475 51.272364,33 z M 57.385079,35.313013 C 58.423577,34.058802 58.878314,32.566011 58.451257,31.813013 C 57.849683,30.752304 57.967504,30.74233 59.064407,31.761111 C 60.196887,32.812935 60.01995,33.393776 57.998229,35.261111 C 55.628109,37.450241 55.614481,37.451395 57.385079,35.313013 z M 74.948117,35.437485 C 73.839225,34.101351 74.362282,33.195837 78.558336,29.187485 C 82.872411,25.066394 83.002145,25.000872 79.632023,28.645228 C 76.741147,31.77134 75.962955,33.307921 76.466747,34.895228 C 77.260062,37.394743 76.729673,37.584129 74.948117,35.437485 z M 42.571832,33.816444 C 41.733634,29.930249 41.455307,21.05151 42.195093,21.798314 C 42.577394,22.184241 43.027394,25.164448 43.195093,28.420996 C 43.532419,34.97154 45.6116,37.26045 46.275364,31.81198 L 46.678849,28.5 L 46.589425,31.991683 C 46.4816,36.201827 43.389261,37.606344 42.571832,33.816444 z M 54.309869,30.5 C 54.304256,27.2 54.486352,25.729441 54.714526,27.232091 C 54.9427,28.734741 54.947293,31.434741 54.724731,33.232091 C 54.50217,35.029441 54.315482,33.8 54.309869,30.5 z M 34.232003,32 C 34.232003,30.075 34.437798,29.2875 34.689326,30.25 C 34.940853,31.2125 34.940853,32.7875 34.689326,33.75 C 34.437798,34.7125 34.232003,33.925 34.232003,32 z M 61.564293,31.293128 C 61.021608,29.86793 61.136472,29.753066 62.124088,30.733333 C 62.807506,31.411667 63.114759,32.218574 62.806872,32.526461 C 62.498985,32.834349 61.939824,32.279349 61.564293,31.293128 z M 20,29.75 C 20,28.879167 19.4375,27.939693 18.75,27.662281 C 17.770941,27.267222 17.777743,27.140783 18.781385,27.078947 C 20.207319,26.991094 21.599089,29.734244 20.623539,30.709795 C 20.280592,31.052741 20,30.620833 20,29.75 z M 71,25.5 C 72.865783,23.575 74.473958,22 74.573722,22 C 74.673486,22 75.351008,22.7875 76.079327,23.75 C 77.073268,25.063529 77.082834,25.217144 76.117679,24.365907 C 75.130618,23.49535 74.146215,23.902008 71.881429,26.115907 C 67.679833,30.223097 66.930017,29.699156 71,25.5 z M 13.733333,23.875912 C 14.411667,23.192494 15.218574,22.885241 15.526461,23.193128 C 15.834349,23.501015 15.279349,24.060176 14.293128,24.435707 C 12.86793,24.978392 12.753066,24.863528 13.733333,23.875912 z M 37,23.059017 C 37,22.476558 37.45,22 38,22 C 38.55,22 39,22.198442 39,22.440983 C 39,22.683524 38.55,23.160081 38,23.5 C 37.45,23.839919 37,23.641476 37,23.059017 z M 79.872445,22.25 C 78.628574,20.663944 78.663944,20.628574 80.25,21.872445 C 81.2125,22.627289 82,23.414789 82,23.622445 C 82,24.445479 81.178814,23.915748 79.872445,22.25 z M 21.270833,21.395833 C 21.603125,21.063542 22.465625,21.028015 23.1875,21.316886 C 23.985233,21.636112 23.748276,21.873069 22.583333,21.921053 C 21.529167,21.964474 20.938542,21.728125 21.270833,21.395833 z M 25.75,20.337719 C 26.4375,20.060307 27.5625,20.060307 28.25,20.337719 C 28.9375,20.615132 28.375,20.842105 27,20.842105 C 25.625,20.842105 25.0625,20.615132 25.75,20.337719 z M 76.404988,17.75 L 74.5,15.5 L 76.75,17.404988 C 78.864445,19.195206 79.455241,20 78.654988,20 C 78.465231,20 77.452731,18.9875 76.404988,17.75 z M 89.75,15.337719 C 90.4375,15.060307 91.5625,15.060307 92.25,15.337719 C 92.9375,15.615132 92.375,15.842105 91,15.842105 C 89.625,15.842105 89.0625,15.615132 89.75,15.337719 z M 175.12667,47.899999 C 180.46836,45.226982 181.67442,40.231471 178.03327,35.860784 L 176.06654,33.5 L 176.00286,36 C 175.94905,38.112443 175.78779,38.240535 174.96259,36.826274 C 174.27045,35.640061 173.02779,35.271394 170.69632,35.560569 C 167.56256,35.949252 167.39554,35.80346 167.172,32.484295 C 166.9837,29.688218 167.29907,29 168.76867,29 C 169.7759,29 171.10079,29.50079 171.71287,30.112868 C 173.48472,31.884719 175.19609,30.234907 173.96752,27.939312 C 172.66572,25.506882 167.39092,25.337459 164.12749,27.623256 C 162.301,28.90258 161.89349,29.96197 162.20418,32.623256 C 162.6222,36.203911 162.13813,36.738131 160.21667,34.816667 C 159.56583,34.165833 158.71833,33.948333 158.33333,34.333333 C 157.94833,34.718333 158.16583,35.565833 158.81667,36.216667 C 160.49975,37.899748 160.28147,39.321989 158.44806,38.618443 C 157.47223,38.24398 157.14857,38.431375 157.57618,39.123258 C 157.95021,39.72845 157.73263,40.547207 157.09268,40.942718 C 156.45273,41.33823 155.67057,43.255192 155.35454,45.202634 L 154.77995,48.743439 L 159.63997,49.700044 C 165.5478,50.862891 170.31238,50.309095 175.12667,47.899999 z M 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.42505,40.775145 169.83923,40.139527 170.21039,37.75 C 170.52947,35.695837 170.61049,35.739357 171.14127,38.25 C 171.68542,40.823868 171.50536,41 168.32994,41 C 166.23669,41 164.71677,41.574522 164.36163,42.5 C 163.45659,44.85849 162,44.253467 162,41.519052 z M 17.564741,34.401926 C 17.102709,32.561045 16.564871,32.035129 15.862542,32.737458 C 15.160213,33.439787 15.244735,34.41902 16.130043,35.836624 C 17.786269,38.488663 18.429105,37.845827 17.564741,34.401926 z M 104.28975,26 C 104.64908,24.625924 105.65376,24 107.5,24 C 109.34624,24 110.35092,24.625924 110.71025,26 C 110.99791,27.1 111.56103,28 111.96164,28 C 112.36225,28 113.50451,27.1 114.5,26 C 115.51189,24.881879 117.57997,24 119.19017,24 C 121.85079,24 121.98278,24.171535 120.92148,26.25 L 119.77258,28.5 L 122.00765,26.350866 C 123.23693,25.168843 123.93654,23.706343 123.56234,23.100866 C 122.71285,21.726363 114,21.634457 114,23 C 114,24.791812 112.1514,24.052371 111.5,22 C 110.74624,19.625119 108.92053,19.472614 105.07152,21.463015 C 102.14984,22.973876 100.57227,25.498898 101.55577,27.090242 C 102.49456,28.609228 103.73698,28.113779 104.28975,26 z M 135.98176,25.534089 C 137.05197,23.534379 137.06077,22.778145 136.02829,21.534089 C 133.35476,18.312679 126,20.846017 126,24.988321 C 126,27.448013 126.91599,28 130.99769,28 C 133.86937,28 134.94752,27.466573 135.98176,25.534089 z M 128.18045,24.75 C 128.53166,22.277059 132.46518,21.065178 134.27295,22.872953 C 135.79784,24.397841 133.29789,27 130.308,27 C 128.34225,27 127.92375,26.55742 128.18045,24.75 z M 132.54112,24.933469 C 133.45781,23.450233 132.59572,22.834172 130.64887,23.581246 C 129.74831,23.926824 129.26046,24.612416 129.56476,25.104785 C 130.31322,26.315821 131.73744,26.233845 132.54112,24.933469 z M 143.18368,25.75 C 143.59457,22.88587 147.20679,23.092592 151.5,26.225931 L 154.5,28.415439 L 152.89926,25.95772 C 150.97196,22.998596 145.52996,20.114052 141.75,20.048032 C 138.67137,19.99426 138.53899,20.379093 140.09783,24.850777 C 141.38394,28.540125 142.72725,28.931569 143.18368,25.75 z M 159.98182,26.033965 C 161.5905,23.028126 168.25962,21.565775 171.86246,23.428876 C 173.45481,24.25231 175.04776,25.682081 175.40236,26.606143 C 175.75695,27.530205 176.29794,28.035389 176.60456,27.728774 C 177.35023,26.983105 175.07023,22.804745 173.08666,21.281803 C 168.54372,17.793848 157,22.208826 157,27.434259 C 157,28.780512 159.01946,27.832153 159.98182,26.033965 z M 158.01555,22.849267 C 158.82522,21.440249 158.33068,21.14739 154.63823,20.849267 L 150.31235,20.5 L 152.87295,23.708261 C 155.4693,26.961299 155.67209,26.927425 158.01555,22.849267 z M 132.59677,18.632205 C 134.84142,18.490676 138,16.308341 138,14.898994 C 138,14.42813 136.87683,14.554629 135.50406,15.180103 C 133.45745,16.1126 132.66365,16.005582 131.09463,14.585637 C 129.26857,12.933073 129.14936,12.954045 128.48585,15.044596 C 127.8852,16.937051 127.26142,17.164274 123.90335,16.713862 L 120.01613,16.192477 L 122.25807,18.108217 C 123.88447,19.497985 125.32366,19.851051 127.5,19.394183 C 129.15,19.047808 131.44355,18.704918 132.59677,18.632205 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 127,14.426676 C 127,13.495437 126.31963,12.985303 125.33287,13.176676 C 122.8241,13.663227 122.47962,16 124.91667,16 C 126.145,16 127,15.354311 127,14.426676 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2404" />
+ <path
+ style="fill:#5d3369"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 99.794484,52.346424 C 103.48252,51.436957 107.69447,49.861957 109.15437,48.846424 C 110.61427,47.830891 112.92182,47 114.28225,47 C 117.68892,47 123.99337,44.242708 124.03041,42.73658 C 124.04713,42.056461 124.54002,42.324185 125.12572,43.331523 C 125.71142,44.338861 125.96332,46.03225 125.68551,47.094611 C 125.05621,49.501047 128.18344,51.375922 131.28777,50.453347 C 134.85605,49.392891 139.97991,45.624972 140.06345,44 C 140.11466,43.003931 140.42099,43.171908 140.97528,44.5 C 141.43437,45.6 141.57896,47.5125 141.29658,48.75 C 140.52605,52.126905 143.79058,51.65182 148.16805,47.75 C 152.12513,44.222894 155,39.299409 155,36.04966 C 155,33.335329 153.5624,33.440915 152.27228,36.25 C 151.43939,38.063523 151.33402,37.613674 151.72911,33.931072 C 152.26135,28.970039 150.26389,25.609948 147.14011,26.211535 C 144.70673,26.680159 144.56883,29.653984 146.95158,30.277086 C 149.47928,30.938096 149.97379,37 147.5,37 C 146.55217,37 145.9668,38.012306 145.90981,39.75 C 145.82581,42.31151 145.7519,42.260103 144.83153,39 C 143.38632,33.880813 142.01955,32.974055 141.89226,37.05 C 141.82293,39.270448 141.35819,37.926617 140.58828,33.279347 C 139.93034,29.307988 139.0162,25.707988 138.55686,25.279347 C 138.09751,24.850706 138.0093,26.4125 138.36084,28.75 C 138.71238,31.0875 139.20576,34.9125 139.45725,37.25 L 139.91451,41.5 L 138.78089,37.75 C 137.43992,33.314101 136.29342,32.939994 135.71625,36.75 C 135.38796,38.917163 135.26791,38.689682 135.14983,35.676676 C 135.02949,32.605909 134.65554,31.924104 133.25,32.212806 C 131.79793,32.511066 131.5254,33.587576 131.64922,38.53613 L 131.79844,44.5 L 130.25455,39.25 C 128.54649,33.441704 127.3229,32.564125 126.76886,36.75 C 126.51726,38.650834 126.15238,37.724471 125.58721,33.75 C 125.1375,30.5875 124.40205,28 123.95287,28 C 123.5037,28 122.21214,29.297701 121.08276,30.88378 L 119.02932,33.767561 L 121.20185,36.529487 L 123.37439,39.291413 L 120.68719,37.530697 C 119.20924,36.562303 118,35.371735 118,34.88499 C 118,34.398246 117.55769,34 117.01708,34 C 116.47648,34 116.94325,35.6875 118.05436,37.75 L 120.07455,41.5 L 117.06418,38 C 115.40847,36.075 114.0417,33.682176 114.0269,32.682612 C 114.00736,31.362273 113.485,31.02868 112.11697,31.462876 C 110.57862,31.951128 110.11057,31.40291 109.55996,28.467918 C 108.6518,23.627022 105.64415,23.997064 105.1687,29.008189 C 104.98649,30.928685 104.0224,33.259933 103.02627,34.188739 C 101.29644,35.801668 101.18434,35.63095 100.52901,30.385864 C 99.773421,24.338361 100.4629,22.846224 105.12751,20.434063 C 108.23938,18.824852 111.66279,18.552646 112.16667,19.874356 C 112.47031,20.670831 125,22.061876 125,21.299111 C 125,19.864927 117.73034,17.006826 114.07459,17.003738 C 111.00768,17.001147 107.39246,15.88493 102.29769,13.367557 C 95.486738,10.002201 94.444383,9.7710194 88.121383,10.223428 C 84.367735,10.492 79.99234,11.457055 78.398284,12.367994 C 76.804228,13.278933 73.7,14.644674 71.5,15.402974 C 69.225692,16.186886 67.632198,17.333241 67.806424,18.060123 C 68.052885,19.088373 67.816847,19.092886 66.600229,18.083183 C 65.768288,17.392733 64.523742,17.17631 63.834569,17.602242 C 63.145397,18.028174 60.650685,18.257926 58.290764,18.112803 C 55.273199,17.927238 53.990977,18.242267 53.969591,19.174471 C 53.949168,20.064718 53.623069,19.958568 52.976549,18.851223 C 51.636458,16.555948 31.780385,16.264119 32.65856,18.552605 C 32.961615,19.342355 33.547411,19.779715 33.960328,19.524519 C 34.373245,19.269322 34.484757,20.244491 34.208132,21.691562 C 33.710803,24.293167 33.692843,24.284439 32.602589,20.911299 C 31.676665,18.046583 30.964843,17.448716 28.160017,17.17993 C 23.764245,16.758685 11.071785,20.649356 10.302593,22.653839 C 9.9718496,23.515742 10.11326,25.858725 10.616839,27.860468 C 11.430441,31.094565 11.860507,31.475806 14.477479,31.282811 C 18.239423,31.005377 18.962353,32.238978 19,39 C 19.045217,47.120444 19.724214,47.688304 25.87115,44.746488 C 28.692017,43.39647 31,42.732481 31,43.270955 C 31,43.81226 32.264661,43.997068 33.828529,43.684294 C 35.879676,43.274065 37.113747,43.651964 38.318741,45.059294 C 41.282225,48.520392 49.663466,47.021739 51.87151,42.635918 C 52.842145,40.707953 52.890193,40.76774 52.365012,43.25 C 51.811552,45.865919 51.966675,46 55.54658,46 L 59.309975,46 L 57.404988,43.773663 C 56.330283,42.517668 57.061976,42.876587 59.083771,44.59716 C 61.054846,46.27457 64.879846,48.219449 67.583771,48.919115 C 70.287697,49.61878 74.525,51.03353 77,52.063003 C 82.636451,54.407477 91.014171,54.511644 99.794484,52.346424 z M 64,45.5 C 65.646351,43.516269 67.444498,43.603939 69.127555,45.75 C 70.378548,47.345137 70.341386,47.375435 68.707618,46.092382 C 67.35,45.026198 66.634443,44.965557 65.757618,45.842382 C 64.053345,47.546655 62.54524,47.252878 64,45.5 z M 105.57421,43.332783 C 105.22233,42.415813 105.39919,41.200813 105.96722,40.632783 C 106.67759,39.922406 107,39.949075 107,40.718213 C 107,41.333229 107.27314,42.548229 107.60699,43.418213 C 107.94083,44.288196 107.76398,45 107.21398,45 C 106.66398,45 105.92608,44.249752 105.57421,43.332783 z M 76,43.622445 C 76,43.414789 76.7875,42.627289 77.75,41.872445 C 79.336056,40.628574 79.371426,40.663944 78.127555,42.25 C 76.821186,43.915748 76,44.445479 76,43.622445 z M 46,42.606989 C 46,42.390833 46.698372,41.945987 47.551938,41.618443 C 48.441863,41.276947 48.84326,41.444594 48.492921,42.011454 C 47.905663,42.961658 46,43.416902 46,42.606989 z M 78.564293,38.293128 C 78.021608,36.86793 78.136472,36.753066 79.124088,37.733333 C 79.807506,38.411667 80.114759,39.218574 79.806872,39.526461 C 79.498985,39.834349 78.939824,39.279349 78.564293,38.293128 z M 110.15789,38 C 110.15789,36.625 110.38487,36.0625 110.66228,36.75 C 110.93969,37.4375 110.93969,38.5625 110.66228,39.25 C 110.38487,39.9375 110.15789,39.375 110.15789,38 z M 112.62354,38.461341 C 111.65856,35.946647 111.94323,35.297786 113.12207,37.325003 C 113.70576,38.328754 113.97267,39.360662 113.7152,39.618131 C 113.45773,39.8756 112.96648,39.355044 112.62354,38.461341 z M 21.252183,35.5 C 21.241084,33.3 21.436788,32.282253 21.68708,33.238341 C 21.937373,34.194428 21.946454,35.994428 21.707261,37.238341 C 21.468068,38.482253 21.263283,37.7 21.252183,35.5 z M 29.078472,35.343771 C 27.65287,30.2097 27.719212,29.321726 29.581787,28.606989 C 32.125647,27.630818 32.515879,27.902295 30.591507,29.30943 C 29.048062,30.438025 28.948872,31.155298 29.873273,34.503201 C 30.463158,36.639589 30.765791,38.567542 30.545791,38.787542 C 30.325791,39.007542 29.665498,37.457845 29.078472,35.343771 z M 37.640658,36.789663 C 37.303316,35.530348 37.077305,32.925 37.13841,31 C 37.223239,28.327647 37.437735,28.799629 38.045483,32.99594 C 38.881911,38.771227 38.679528,40.667818 37.640658,36.789663 z M 53,38.059017 C 53,37.476558 53.45,37 54,37 C 54.55,37 55,37.198442 55,37.440983 C 55,37.683524 54.55,38.160081 54,38.5 C 53.45,38.839919 53,38.641476 53,38.059017 z M 59.996296,36.503943 C 61.286004,35.131112 62.561686,34.228353 62.831146,34.497812 C 63.495002,35.161669 59.948021,39 58.670698,39 C 58.110069,39 58.706588,37.876774 59.996296,36.503943 z M 71.508831,36.653822 C 69.715792,33.917298 70.358704,31.579766 73.63655,28.917756 C 74.72697,28.032202 74.49476,28.712446 73.017957,30.729888 C 70.716889,33.873347 70.702691,34.013996 72.487347,35.986019 C 73.495896,37.100452 74.059787,38.273546 73.740439,38.592895 C 73.421091,38.912243 72.416867,38.03966 71.508831,36.653822 z M 25.623539,35.461341 C 25.280592,34.567637 25.046063,32.860729 25.102361,31.668213 C 25.167072,30.297518 25.506736,30.784886 26.025806,32.993222 C 26.899329,36.709541 26.661788,38.166975 25.623539,35.461341 z M 51.272364,33 C 51.272364,30.525 51.46738,29.5125 51.705733,30.75 C 51.944086,31.9875 51.944086,34.0125 51.705733,35.25 C 51.46738,36.4875 51.272364,35.475 51.272364,33 z M 57.385079,35.313013 C 58.423577,34.058802 58.878314,32.566011 58.451257,31.813013 C 57.849683,30.752304 57.967504,30.74233 59.064407,31.761111 C 60.196887,32.812935 60.01995,33.393776 57.998229,35.261111 C 55.628109,37.450241 55.614481,37.451395 57.385079,35.313013 z M 74.948117,35.437485 C 73.839225,34.101351 74.362282,33.195837 78.558336,29.187485 C 82.872411,25.066394 83.002145,25.000872 79.632023,28.645228 C 76.741147,31.77134 75.962955,33.307921 76.466747,34.895228 C 77.260062,37.394743 76.729673,37.584129 74.948117,35.437485 z M 42.571832,33.816444 C 41.733634,29.930249 41.455307,21.05151 42.195093,21.798314 C 42.577394,22.184241 43.027394,25.164448 43.195093,28.420996 C 43.532419,34.97154 45.6116,37.26045 46.275364,31.81198 L 46.678849,28.5 L 46.589425,31.991683 C 46.4816,36.201827 43.389261,37.606344 42.571832,33.816444 z M 54.309869,30.5 C 54.304256,27.2 54.486352,25.729441 54.714526,27.232091 C 54.9427,28.734741 54.947293,31.434741 54.724731,33.232091 C 54.50217,35.029441 54.315482,33.8 54.309869,30.5 z M 34.232003,32 C 34.232003,30.075 34.437798,29.2875 34.689326,30.25 C 34.940853,31.2125 34.940853,32.7875 34.689326,33.75 C 34.437798,34.7125 34.232003,33.925 34.232003,32 z M 61.564293,31.293128 C 61.021608,29.86793 61.136472,29.753066 62.124088,30.733333 C 62.807506,31.411667 63.114759,32.218574 62.806872,32.526461 C 62.498985,32.834349 61.939824,32.279349 61.564293,31.293128 z M 20,29.75 C 20,28.879167 19.4375,27.939693 18.75,27.662281 C 17.770941,27.267222 17.777743,27.140783 18.781385,27.078947 C 20.207319,26.991094 21.599089,29.734244 20.623539,30.709795 C 20.280592,31.052741 20,30.620833 20,29.75 z M 70.946167,25.75 C 72.841559,23.6875 74.473958,22 74.573722,22 C 74.673486,22 75.351008,22.7875 76.079327,23.75 C 77.206277,25.239305 77.194548,25.313614 76.000594,24.248822 C 74.852322,23.224771 73.953427,23.587831 71.048822,26.248822 L 67.5,29.5 L 70.946167,25.75 z M 13.733333,23.875912 C 14.411667,23.192494 15.218574,22.885241 15.526461,23.193128 C 15.834349,23.501015 15.279349,24.060176 14.293128,24.435707 C 12.86793,24.978392 12.753066,24.863528 13.733333,23.875912 z M 37,23.059017 C 37,22.476558 37.45,22 38,22 C 38.55,22 39,22.198442 39,22.440983 C 39,22.683524 38.55,23.160081 38,23.5 C 37.45,23.839919 37,23.641476 37,23.059017 z M 79.872445,22.25 C 78.628574,20.663944 78.663944,20.628574 80.25,21.872445 C 81.2125,22.627289 82,23.414789 82,23.622445 C 82,24.445479 81.178814,23.915748 79.872445,22.25 z M 21.270833,21.395833 C 21.603125,21.063542 22.465625,21.028015 23.1875,21.316886 C 23.985233,21.636112 23.748276,21.873069 22.583333,21.921053 C 21.529167,21.964474 20.938542,21.728125 21.270833,21.395833 z M 25.75,20.337719 C 26.4375,20.060307 27.5625,20.060307 28.25,20.337719 C 28.9375,20.615132 28.375,20.842105 27,20.842105 C 25.625,20.842105 25.0625,20.615132 25.75,20.337719 z M 76.872445,18.25 C 75.628574,16.663944 75.663944,16.628574 77.25,17.872445 C 78.2125,18.627289 79,19.414789 79,19.622445 C 79,20.445479 78.178814,19.915748 76.872445,18.25 z M 175.12667,47.899999 C 180.46836,45.226982 181.67442,40.231471 178.03327,35.860784 L 176.06654,33.5 L 176.00286,36 C 175.94905,38.112443 175.78779,38.240535 174.96259,36.826274 C 174.27045,35.640061 173.02779,35.271394 170.69632,35.560569 C 167.56256,35.949252 167.39554,35.80346 167.172,32.484295 C 166.9837,29.688218 167.29907,29 168.76867,29 C 169.7759,29 171.10079,29.50079 171.71287,30.112868 C 173.48472,31.884719 175.19609,30.234907 173.96752,27.939312 C 172.66572,25.506882 167.39092,25.337459 164.12749,27.623256 C 162.301,28.90258 161.89349,29.96197 162.20418,32.623256 C 162.6222,36.203911 162.13813,36.738131 160.21667,34.816667 C 159.56583,34.165833 158.71833,33.948333 158.33333,34.333333 C 157.94833,34.718333 158.16583,35.565833 158.81667,36.216667 C 160.49975,37.899748 160.28147,39.321989 158.44806,38.618443 C 157.47223,38.24398 157.14857,38.431375 157.57618,39.123258 C 157.95021,39.72845 157.73263,40.547207 157.09268,40.942718 C 156.45273,41.33823 155.67057,43.255192 155.35454,45.202634 L 154.77995,48.743439 L 159.63997,49.700044 C 165.5478,50.862891 170.31238,50.309095 175.12667,47.899999 z M 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.42505,40.775145 169.83923,40.139527 170.21039,37.75 C 170.52947,35.695837 170.61049,35.739357 171.14127,38.25 C 171.68542,40.823868 171.50536,41 168.32994,41 C 166.23669,41 164.71677,41.574522 164.36163,42.5 C 163.45659,44.85849 162,44.253467 162,41.519052 z M 17.564741,34.401926 C 17.102709,32.561045 16.564871,32.035129 15.862542,32.737458 C 15.160213,33.439787 15.244735,34.41902 16.130043,35.836624 C 17.786269,38.488663 18.429105,37.845827 17.564741,34.401926 z M 104.28975,26 C 104.64908,24.625924 105.65376,24 107.5,24 C 109.34624,24 110.35092,24.625924 110.71025,26 C 110.99791,27.1 111.56103,28 111.96164,28 C 112.36225,28 113.50451,27.1 114.5,26 C 115.51189,24.881879 117.57997,24 119.19017,24 C 121.85079,24 121.98278,24.171535 120.92148,26.25 L 119.77258,28.5 L 122.00765,26.350866 C 123.23693,25.168843 123.93654,23.706343 123.56234,23.100866 C 122.71285,21.726363 114,21.634457 114,23 C 114,24.791812 112.1514,24.052371 111.5,22 C 110.74624,19.625119 108.92053,19.472614 105.07152,21.463015 C 102.14984,22.973876 100.57227,25.498898 101.55577,27.090242 C 102.49456,28.609228 103.73698,28.113779 104.28975,26 z M 135.98176,25.534089 C 137.05197,23.534379 137.06077,22.778145 136.02829,21.534089 C 133.35476,18.312679 126,20.846017 126,24.988321 C 126,27.448013 126.91599,28 130.99769,28 C 133.86937,28 134.94752,27.466573 135.98176,25.534089 z M 128.18045,24.75 C 128.53166,22.277059 132.46518,21.065178 134.27295,22.872953 C 135.79784,24.397841 133.29789,27 130.308,27 C 128.34225,27 127.92375,26.55742 128.18045,24.75 z M 132.54112,24.933469 C 133.45781,23.450233 132.59572,22.834172 130.64887,23.581246 C 129.74831,23.926824 129.26046,24.612416 129.56476,25.104785 C 130.31322,26.315821 131.73744,26.233845 132.54112,24.933469 z M 143.18368,25.75 C 143.59457,22.88587 147.20679,23.092592 151.5,26.225931 L 154.5,28.415439 L 152.89926,25.95772 C 150.97196,22.998596 145.52996,20.114052 141.75,20.048032 C 138.67137,19.99426 138.53899,20.379093 140.09783,24.850777 C 141.38394,28.540125 142.72725,28.931569 143.18368,25.75 z M 159.98182,26.033965 C 161.5905,23.028126 168.25962,21.565775 171.86246,23.428876 C 173.45481,24.25231 175.04776,25.682081 175.40236,26.606143 C 175.75695,27.530205 176.29794,28.035389 176.60456,27.728774 C 177.35023,26.983105 175.07023,22.804745 173.08666,21.281803 C 168.54372,17.793848 157,22.208826 157,27.434259 C 157,28.780512 159.01946,27.832153 159.98182,26.033965 z M 158.01555,22.849267 C 158.82522,21.440249 158.33068,21.14739 154.63823,20.849267 L 150.31235,20.5 L 152.87295,23.708261 C 155.4693,26.961299 155.67209,26.927425 158.01555,22.849267 z M 132.59677,18.632205 C 134.84142,18.490676 138,16.308341 138,14.898994 C 138,14.42813 136.87683,14.554629 135.50406,15.180103 C 133.45745,16.1126 132.66365,16.005582 131.09463,14.585637 C 129.26857,12.933073 129.14936,12.954045 128.48585,15.044596 C 127.8852,16.937051 127.26142,17.164274 123.90335,16.713862 L 120.01613,16.192477 L 122.25807,18.108217 C 123.88447,19.497985 125.32366,19.851051 127.5,19.394183 C 129.15,19.047808 131.44355,18.704918 132.59677,18.632205 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 127,14.426676 C 127,13.495437 126.31963,12.985303 125.33287,13.176676 C 122.8241,13.663227 122.47962,16 124.91667,16 C 126.145,16 127,15.354311 127,14.426676 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2402" />
+ <path
+ style="fill:#9b2934"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 99.794484,52.346424 C 103.48252,51.436957 107.69447,49.861957 109.15437,48.846424 C 110.61427,47.830891 112.92182,47 114.28225,47 C 117.68892,47 123.99337,44.242708 124.03041,42.73658 C 124.04713,42.056461 124.54002,42.324185 125.12572,43.331523 C 125.71142,44.338861 125.96332,46.03225 125.68551,47.094611 C 125.05621,49.501047 128.18344,51.375922 131.28777,50.453347 C 134.85605,49.392891 139.97991,45.624972 140.06345,44 C 140.11466,43.003931 140.42099,43.171908 140.97528,44.5 C 141.43437,45.6 141.57896,47.5125 141.29658,48.75 C 140.52605,52.126905 143.79058,51.65182 148.16805,47.75 C 152.12513,44.222894 155,39.299409 155,36.04966 C 155,33.335329 153.5624,33.440915 152.27228,36.25 C 151.43939,38.063523 151.33402,37.613674 151.72911,33.931072 C 152.26135,28.970039 150.26389,25.609948 147.14011,26.211535 C 144.70673,26.680159 144.56883,29.653984 146.95158,30.277086 C 149.47928,30.938096 149.97379,37 147.5,37 C 146.55217,37 145.9668,38.012306 145.90981,39.75 C 145.82581,42.31151 145.7519,42.260103 144.83153,39 C 143.38632,33.880813 142.01955,32.974055 141.89226,37.05 C 141.82293,39.270448 141.35819,37.926617 140.58828,33.279347 C 139.93034,29.307988 139.0162,25.707988 138.55686,25.279347 C 138.09751,24.850706 138.0093,26.4125 138.36084,28.75 C 138.71238,31.0875 139.20576,34.9125 139.45725,37.25 L 139.91451,41.5 L 138.78089,37.75 C 137.43992,33.314101 136.29342,32.939994 135.71625,36.75 C 135.38796,38.917163 135.26791,38.689682 135.14983,35.676676 C 135.02949,32.605909 134.65554,31.924104 133.25,32.212806 C 131.79793,32.511066 131.5254,33.587576 131.64922,38.53613 L 131.79844,44.5 L 130.25455,39.25 C 128.54649,33.441704 127.3229,32.564125 126.76886,36.75 C 126.51726,38.650834 126.15238,37.724471 125.58721,33.75 C 125.1375,30.5875 124.40205,28 123.95287,28 C 123.5037,28 122.21214,29.297701 121.08276,30.88378 L 119.02932,33.767561 L 121.20185,36.529487 L 123.37439,39.291413 L 120.68719,37.530697 C 119.20924,36.562303 118,35.371735 118,34.88499 C 118,34.398246 117.55769,34 117.01708,34 C 116.47648,34 116.94325,35.6875 118.05436,37.75 L 120.07455,41.5 L 117.06418,38 C 115.40847,36.075 114.0417,33.682176 114.0269,32.682612 C 114.00736,31.362273 113.485,31.02868 112.11697,31.462876 C 110.57862,31.951128 110.11057,31.40291 109.55996,28.467918 C 108.6518,23.627022 105.64415,23.997064 105.1687,29.008189 C 104.98649,30.928685 104.0224,33.259933 103.02627,34.188739 C 101.29644,35.801668 101.18434,35.63095 100.52901,30.385864 C 99.773421,24.338361 100.4629,22.846224 105.12751,20.434063 C 108.23938,18.824852 111.66279,18.552646 112.16667,19.874356 C 112.47031,20.670831 125,22.061876 125,21.299111 C 125,19.864927 117.73034,17.006826 114.07459,17.003738 C 111.00768,17.001147 107.39246,15.88493 102.29769,13.367557 C 95.454884,9.9864614 94.465889,9.7694806 88.004812,10.231768 C 84.187049,10.504928 80.036655,11.395452 78.781713,12.21071 C 77.526771,13.025969 74.025,14.471994 71,15.4241 C 67.975,16.376207 64.825,17.390867 64,17.678901 C 62.037902,18.363933 53.488936,18.414735 52.370246,17.748011 C 51.891611,17.462751 45.206375,17.17314 37.514168,17.104432 C 25.898155,17.000677 22.382185,17.334238 16.764168,19.072989 C 10.017281,21.161121 10.000035,21.175837 10.013655,24.833234 C 10.033604,30.190334 11.013065,32.998331 12.866631,33.012379 C 14.894089,33.027744 18.994637,39.178949 19.015313,42.235976 C 19.047047,46.928011 20.330681,47.39806 25.87115,44.746488 C 28.692017,43.39647 31,42.732481 31,43.270955 C 31,43.81226 32.264661,43.997068 33.828529,43.684294 C 35.879676,43.274065 37.113747,43.651964 38.318741,45.059294 C 41.282225,48.520392 49.663466,47.021739 51.87151,42.635918 C 52.842145,40.707953 52.890193,40.76774 52.365012,43.25 C 51.811552,45.865919 51.966675,46 55.54658,46 L 59.309975,46 L 57.404988,43.773663 C 56.330283,42.517668 57.061976,42.876587 59.083771,44.59716 C 61.054846,46.27457 64.879846,48.219449 67.583771,48.919115 C 70.287697,49.61878 74.525,51.03353 77,52.063003 C 82.636451,54.407477 91.014171,54.511644 99.794484,52.346424 z M 64,45.5 C 65.646351,43.516269 67.444498,43.603939 69.127555,45.75 C 70.378548,47.345137 70.341386,47.375435 68.707618,46.092382 C 67.35,45.026198 66.634443,44.965557 65.757618,45.842382 C 64.053345,47.546655 62.54524,47.252878 64,45.5 z M 105.57421,43.332783 C 105.22233,42.415813 105.39919,41.200813 105.96722,40.632783 C 106.67759,39.922406 107,39.949075 107,40.718213 C 107,41.333229 107.27314,42.548229 107.60699,43.418213 C 107.94083,44.288196 107.76398,45 107.21398,45 C 106.66398,45 105.92608,44.249752 105.57421,43.332783 z M 76,43.622445 C 76,43.414789 76.7875,42.627289 77.75,41.872445 C 79.336056,40.628574 79.371426,40.663944 78.127555,42.25 C 76.821186,43.915748 76,44.445479 76,43.622445 z M 46,42.606989 C 46,42.390833 46.698372,41.945987 47.551938,41.618443 C 48.441863,41.276947 48.84326,41.444594 48.492921,42.011454 C 47.905663,42.961658 46,43.416902 46,42.606989 z M 78.564293,38.293128 C 78.021608,36.86793 78.136472,36.753066 79.124088,37.733333 C 79.807506,38.411667 80.114759,39.218574 79.806872,39.526461 C 79.498985,39.834349 78.939824,39.279349 78.564293,38.293128 z M 110.15789,38 C 110.15789,36.625 110.38487,36.0625 110.66228,36.75 C 110.93969,37.4375 110.93969,38.5625 110.66228,39.25 C 110.38487,39.9375 110.15789,39.375 110.15789,38 z M 112.62354,38.461341 C 111.65856,35.946647 111.94323,35.297786 113.12207,37.325003 C 113.70576,38.328754 113.97267,39.360662 113.7152,39.618131 C 113.45773,39.8756 112.96648,39.355044 112.62354,38.461341 z M 76.872445,18.25 C 75.628574,16.663944 75.663944,16.628574 77.25,17.872445 C 78.2125,18.627289 79,19.414789 79,19.622445 C 79,20.445479 78.178814,19.915748 76.872445,18.25 z M 175.12667,47.899999 C 180.46836,45.226982 181.67442,40.231471 178.03327,35.860784 L 176.06654,33.5 L 176.00286,36 C 175.94905,38.112443 175.78779,38.240535 174.96259,36.826274 C 174.27045,35.640061 173.02779,35.271394 170.69632,35.560569 C 167.56256,35.949252 167.39554,35.80346 167.172,32.484295 C 166.9837,29.688218 167.29907,29 168.76867,29 C 169.7759,29 171.10079,29.50079 171.71287,30.112868 C 173.48472,31.884719 175.19609,30.234907 173.96752,27.939312 C 172.66572,25.506882 167.39092,25.337459 164.12749,27.623256 C 162.301,28.90258 161.89349,29.96197 162.20418,32.623256 C 162.6222,36.203911 162.13813,36.738131 160.21667,34.816667 C 159.56583,34.165833 158.71833,33.948333 158.33333,34.333333 C 157.94833,34.718333 158.16583,35.565833 158.81667,36.216667 C 160.49975,37.899748 160.28147,39.321989 158.44806,38.618443 C 157.47223,38.24398 157.14857,38.431375 157.57618,39.123258 C 157.95021,39.72845 157.73263,40.547207 157.09268,40.942718 C 156.45273,41.33823 155.67057,43.255192 155.35454,45.202634 L 154.77995,48.743439 L 159.63997,49.700044 C 165.5478,50.862891 170.31238,50.309095 175.12667,47.899999 z M 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.42505,40.775145 169.83923,40.139527 170.21039,37.75 C 170.52947,35.695837 170.61049,35.739357 171.14127,38.25 C 171.68542,40.823868 171.50536,41 168.32994,41 C 166.23669,41 164.71677,41.574522 164.36163,42.5 C 163.45659,44.85849 162,44.253467 162,41.519052 z M 104.28975,26 C 104.64908,24.625924 105.65376,24 107.5,24 C 109.34624,24 110.35092,24.625924 110.71025,26 C 110.99791,27.1 111.56103,28 111.96164,28 C 112.36225,28 113.50451,27.1 114.5,26 C 115.51189,24.881879 117.57997,24 119.19017,24 C 121.85079,24 121.98278,24.171535 120.92148,26.25 L 119.77258,28.5 L 122.00765,26.350866 C 123.23693,25.168843 123.93654,23.706343 123.56234,23.100866 C 122.71285,21.726363 114,21.634457 114,23 C 114,24.791812 112.1514,24.052371 111.5,22 C 110.74624,19.625119 108.92053,19.472614 105.07152,21.463015 C 102.14984,22.973876 100.57227,25.498898 101.55577,27.090242 C 102.49456,28.609228 103.73698,28.113779 104.28975,26 z M 135.98176,25.534089 C 137.05197,23.534379 137.06077,22.778145 136.02829,21.534089 C 133.35476,18.312679 126,20.846017 126,24.988321 C 126,27.448013 126.91599,28 130.99769,28 C 133.86937,28 134.94752,27.466573 135.98176,25.534089 z M 128.18045,24.75 C 128.53166,22.277059 132.46518,21.065178 134.27295,22.872953 C 135.79784,24.397841 133.29789,27 130.308,27 C 128.34225,27 127.92375,26.55742 128.18045,24.75 z M 132.54112,24.933469 C 133.45781,23.450233 132.59572,22.834172 130.64887,23.581246 C 129.74831,23.926824 129.26046,24.612416 129.56476,25.104785 C 130.31322,26.315821 131.73744,26.233845 132.54112,24.933469 z M 143.18368,25.75 C 143.59457,22.88587 147.20679,23.092592 151.5,26.225931 L 154.5,28.415439 L 152.89926,25.95772 C 150.97196,22.998596 145.52996,20.114052 141.75,20.048032 C 138.67137,19.99426 138.53899,20.379093 140.09783,24.850777 C 141.38394,28.540125 142.72725,28.931569 143.18368,25.75 z M 159.98182,26.033965 C 161.5905,23.028126 168.25962,21.565775 171.86246,23.428876 C 173.45481,24.25231 175.04776,25.682081 175.40236,26.606143 C 175.75695,27.530205 176.29794,28.035389 176.60456,27.728774 C 177.35023,26.983105 175.07023,22.804745 173.08666,21.281803 C 168.54372,17.793848 157,22.208826 157,27.434259 C 157,28.780512 159.01946,27.832153 159.98182,26.033965 z M 158.01555,22.849267 C 158.82522,21.440249 158.33068,21.14739 154.63823,20.849267 L 150.31235,20.5 L 152.87295,23.708261 C 155.4693,26.961299 155.67209,26.927425 158.01555,22.849267 z M 132.59677,18.632205 C 134.84142,18.490676 138,16.308341 138,14.898994 C 138,14.42813 136.87683,14.554629 135.50406,15.180103 C 133.45745,16.1126 132.66365,16.005582 131.09463,14.585637 C 129.26857,12.933073 129.14936,12.954045 128.48585,15.044596 C 127.8852,16.937051 127.26142,17.164274 123.90335,16.713862 L 120.01613,16.192477 L 122.25807,18.108217 C 123.88447,19.497985 125.32366,19.851051 127.5,19.394183 C 129.15,19.047808 131.44355,18.704918 132.59677,18.632205 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 127,14.426676 C 127,13.495437 126.31963,12.985303 125.33287,13.176676 C 122.8241,13.663227 122.47962,16 124.91667,16 C 126.145,16 127,15.354311 127,14.426676 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2400" />
+ <path
+ style="fill:#304e69"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 99.794484,52.346424 C 103.48252,51.436957 107.69447,49.861957 109.15437,48.846424 C 110.61427,47.830891 112.92182,47 114.28225,47 C 117.68892,47 123.99337,44.242708 124.03041,42.73658 C 124.04713,42.056461 124.54002,42.324185 125.12572,43.331523 C 125.71142,44.338861 125.96332,46.03225 125.68551,47.094611 C 125.05621,49.501047 128.18344,51.375922 131.28777,50.453347 C 134.85605,49.392891 139.97991,45.624972 140.06345,44 C 140.11466,43.003931 140.42099,43.171908 140.97528,44.5 C 141.43437,45.6 141.57896,47.5125 141.29658,48.75 C 140.52605,52.126905 143.79058,51.65182 148.16805,47.75 C 152.12513,44.222894 155,39.299409 155,36.04966 C 155,33.335329 153.5624,33.440915 152.27228,36.25 C 151.43939,38.063523 151.33402,37.613674 151.72911,33.931072 C 152.26135,28.970039 150.26389,25.609948 147.14011,26.211535 C 144.70673,26.680159 144.56883,29.653984 146.95158,30.277086 C 149.47928,30.938096 149.97379,37 147.5,37 C 146.55217,37 145.9668,38.012306 145.90981,39.75 C 145.82581,42.31151 145.7519,42.260103 144.83153,39 C 143.38632,33.880813 142.01955,32.974055 141.89226,37.05 C 141.82293,39.270448 141.35819,37.926617 140.58828,33.279347 C 139.93034,29.307988 139.0162,25.707988 138.55686,25.279347 C 138.09751,24.850706 138.0093,26.4125 138.36084,28.75 C 138.71238,31.0875 139.20576,34.9125 139.45725,37.25 L 139.91451,41.5 L 138.78089,37.75 C 137.43992,33.314101 136.29342,32.939994 135.71625,36.75 C 135.38796,38.917163 135.26791,38.689682 135.14983,35.676676 C 135.02949,32.605909 134.65554,31.924104 133.25,32.212806 C 131.79793,32.511066 131.5254,33.587576 131.64922,38.53613 L 131.79844,44.5 L 130.25455,39.25 C 128.54649,33.441704 127.3229,32.564125 126.76886,36.75 C 126.51726,38.650834 126.15238,37.724471 125.58721,33.75 C 125.1375,30.5875 124.40205,28 123.95287,28 C 123.5037,28 122.21214,29.297701 121.08276,30.88378 L 119.02932,33.767561 L 121.20185,36.529487 L 123.37439,39.291413 L 120.68719,37.530697 C 119.20924,36.562303 118,35.371735 118,34.88499 C 118,34.398246 117.55769,34 117.01708,34 C 116.47648,34 116.94325,35.6875 118.05436,37.75 L 120.07455,41.5 L 117.06418,38 C 115.40847,36.075 114.0417,33.682176 114.0269,32.682612 C 114.00736,31.362273 113.485,31.02868 112.11697,31.462876 C 110.57862,31.951128 110.11057,31.40291 109.55996,28.467918 C 108.6518,23.627022 105.64415,23.997064 105.1687,29.008189 C 104.98649,30.928685 104.0224,33.259933 103.02627,34.188739 C 101.29644,35.801668 101.18434,35.63095 100.52901,30.385864 C 99.773421,24.338361 100.4629,22.846224 105.12751,20.434063 C 108.23938,18.824852 111.66279,18.552646 112.16667,19.874356 C 112.47031,20.670831 125,22.061876 125,21.299111 C 125,19.864927 117.73034,17.006826 114.07459,17.003738 C 111.00768,17.001147 107.39246,15.88493 102.29769,13.367557 C 95.454884,9.9864614 94.465889,9.7694806 88.004812,10.231768 C 84.187049,10.504928 80.036655,11.395452 78.781713,12.21071 C 77.526771,13.025969 74.025,14.471994 71,15.4241 C 67.975,16.376207 64.825,17.390867 64,17.678901 C 62.037902,18.363933 53.488936,18.414735 52.370246,17.748011 C 51.891611,17.462751 45.206375,17.17314 37.514168,17.104432 C 25.898155,17.000677 22.382185,17.334238 16.764168,19.072989 C 10.017281,21.161121 10.000035,21.175837 10.013655,24.833234 C 10.033719,30.221218 11.016161,33 12.901024,33 C 15.181334,33 17.66443,37.531161 18.518067,43.25 C 18.908028,45.8625 19.738493,47.990117 20.363544,47.978038 C 20.988595,47.965959 23.525,47.004675 26,45.841852 C 32.011483,43.017492 35.088929,42.992527 37.32258,45.75 C 39.39295,48.3059 45.57533,48.850425 49.315741,46.806321 C 51.680862,45.513802 56.305982,45.573015 59.5,46.936706 C 60.6,47.406352 64.2,48.374174 67.5,49.087422 C 70.8,49.800669 75.3,51.187899 77.5,52.170155 C 82.562731,54.430564 91.0702,54.497827 99.794484,52.346424 z M 105.57421,43.332783 C 105.22233,42.415813 105.39919,41.200813 105.96722,40.632783 C 106.67759,39.922406 107,39.949075 107,40.718213 C 107,41.333229 107.27314,42.548229 107.60699,43.418213 C 107.94083,44.288196 107.76398,45 107.21398,45 C 106.66398,45 105.92608,44.249752 105.57421,43.332783 z M 110.15789,38 C 110.15789,36.625 110.38487,36.0625 110.66228,36.75 C 110.93969,37.4375 110.93969,38.5625 110.66228,39.25 C 110.38487,39.9375 110.15789,39.375 110.15789,38 z M 112.62354,38.461341 C 111.65856,35.946647 111.94323,35.297786 113.12207,37.325003 C 113.70576,38.328754 113.97267,39.360662 113.7152,39.618131 C 113.45773,39.8756 112.96648,39.355044 112.62354,38.461341 z M 76.872445,18.25 C 75.628574,16.663944 75.663944,16.628574 77.25,17.872445 C 78.2125,18.627289 79,19.414789 79,19.622445 C 79,20.445479 78.178814,19.915748 76.872445,18.25 z M 175.12667,47.899999 C 180.46836,45.226982 181.67442,40.231471 178.03327,35.860784 L 176.06654,33.5 L 176.00286,36 C 175.94905,38.112443 175.78779,38.240535 174.96259,36.826274 C 174.27045,35.640061 173.02779,35.271394 170.69632,35.560569 C 167.56256,35.949252 167.39554,35.80346 167.172,32.484295 C 166.9837,29.688218 167.29907,29 168.76867,29 C 169.7759,29 171.10079,29.50079 171.71287,30.112868 C 173.48472,31.884719 175.19609,30.234907 173.96752,27.939312 C 172.66572,25.506882 167.39092,25.337459 164.12749,27.623256 C 162.301,28.90258 161.89349,29.96197 162.20418,32.623256 C 162.6222,36.203911 162.13813,36.738131 160.21667,34.816667 C 159.56583,34.165833 158.71833,33.948333 158.33333,34.333333 C 157.94833,34.718333 158.16583,35.565833 158.81667,36.216667 C 160.49975,37.899748 160.28147,39.321989 158.44806,38.618443 C 157.47223,38.24398 157.14857,38.431375 157.57618,39.123258 C 157.95021,39.72845 157.73263,40.547207 157.09268,40.942718 C 156.45273,41.33823 155.67057,43.255192 155.35454,45.202634 L 154.77995,48.743439 L 159.63997,49.700044 C 165.5478,50.862891 170.31238,50.309095 175.12667,47.899999 z M 162,41.519052 C 162,39.658292 162.67428,38.868869 164.69735,38.361112 C 166.40017,37.933732 167.53702,38.111062 167.78069,38.842059 C 168.42505,40.775145 169.83923,40.139527 170.21039,37.75 C 170.52947,35.695837 170.61049,35.739357 171.14127,38.25 C 171.68542,40.823868 171.50536,41 168.32994,41 C 166.23669,41 164.71677,41.574522 164.36163,42.5 C 163.45659,44.85849 162,44.253467 162,41.519052 z M 104.28975,26 C 104.64908,24.625924 105.65376,24 107.5,24 C 109.34624,24 110.35092,24.625924 110.71025,26 C 110.99791,27.1 111.56103,28 111.96164,28 C 112.36225,28 113.50451,27.1 114.5,26 C 115.51189,24.881879 117.57997,24 119.19017,24 C 121.85079,24 121.98278,24.171535 120.92148,26.25 L 119.77258,28.5 L 122.00765,26.350866 C 123.23693,25.168843 123.93654,23.706343 123.56234,23.100866 C 122.71285,21.726363 114,21.634457 114,23 C 114,24.791812 112.1514,24.052371 111.5,22 C 110.74624,19.625119 108.92053,19.472614 105.07152,21.463015 C 102.14984,22.973876 100.57227,25.498898 101.55577,27.090242 C 102.49456,28.609228 103.73698,28.113779 104.28975,26 z M 135.98176,25.534089 C 137.05197,23.534379 137.06077,22.778145 136.02829,21.534089 C 133.35476,18.312679 126,20.846017 126,24.988321 C 126,27.448013 126.91599,28 130.99769,28 C 133.86937,28 134.94752,27.466573 135.98176,25.534089 z M 128.18045,24.75 C 128.53166,22.277059 132.46518,21.065178 134.27295,22.872953 C 135.79784,24.397841 133.29789,27 130.308,27 C 128.34225,27 127.92375,26.55742 128.18045,24.75 z M 132.54112,24.933469 C 133.45781,23.450233 132.59572,22.834172 130.64887,23.581246 C 129.74831,23.926824 129.26046,24.612416 129.56476,25.104785 C 130.31322,26.315821 131.73744,26.233845 132.54112,24.933469 z M 143.18368,25.75 C 143.59457,22.88587 147.20679,23.092592 151.5,26.225931 L 154.5,28.415439 L 152.89926,25.95772 C 150.97196,22.998596 145.52996,20.114052 141.75,20.048032 C 138.67137,19.99426 138.53899,20.379093 140.09783,24.850777 C 141.38394,28.540125 142.72725,28.931569 143.18368,25.75 z M 159.98182,26.033965 C 161.5905,23.028126 168.25962,21.565775 171.86246,23.428876 C 173.45481,24.25231 175.04776,25.682081 175.40236,26.606143 C 175.75695,27.530205 176.29794,28.035389 176.60456,27.728774 C 177.35023,26.983105 175.07023,22.804745 173.08666,21.281803 C 168.54372,17.793848 157,22.208826 157,27.434259 C 157,28.780512 159.01946,27.832153 159.98182,26.033965 z M 158.01555,22.849267 C 158.82522,21.440249 158.33068,21.14739 154.63823,20.849267 L 150.31235,20.5 L 152.87295,23.708261 C 155.4693,26.961299 155.67209,26.927425 158.01555,22.849267 z M 132.59677,18.632205 C 134.84142,18.490676 138,16.308341 138,14.898994 C 138,14.42813 136.87683,14.554629 135.50406,15.180103 C 133.45745,16.1126 132.66365,16.005582 131.09463,14.585637 C 129.26857,12.933073 129.14936,12.954045 128.48585,15.044596 C 127.8852,16.937051 127.26142,17.164274 123.90335,16.713862 L 120.01613,16.192477 L 122.25807,18.108217 C 123.88447,19.497985 125.32366,19.851051 127.5,19.394183 C 129.15,19.047808 131.44355,18.704918 132.59677,18.632205 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 127,14.426676 C 127,13.495437 126.31963,12.985303 125.33287,13.176676 C 122.8241,13.663227 122.47962,16 124.91667,16 C 126.145,16 127,15.354311 127,14.426676 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2398" />
+ <path
+ style="fill:#4c4c4d"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 100.51784,52.142295 C 104.37765,51.139409 108.57856,49.760734 109.85319,49.078572 C 111.12782,48.396411 113.86172,47.717831 115.92852,47.570618 C 117.99532,47.423404 121.15762,46.568988 122.95584,45.671916 L 126.22534,44.040875 L 125.73646,46.598279 C 124.97751,50.568502 128.6414,51.790569 134.54452,49.536147 C 137.07639,48.569217 139.38679,47.155606 139.67875,46.394789 C 140.56683,44.08048 142.05003,45.952493 141.39526,48.561285 C 139.81832,54.844305 151.74407,48.023615 154.98251,40.790335 C 156.4701,37.46769 156.53095,36.335188 155.44245,32.23053 C 153.46936,24.790119 152.99003,24.03556 148.9165,21.957403 C 144.08943,19.494815 139.44676,19.393388 138.54976,21.730924 C 138.18444,22.682932 138.3613,23.620432 138.94277,23.814257 C 139.52425,24.008082 140,24.605724 140,25.14235 C 140,25.678976 139.55,25.839919 139,25.5 C 137.98178,24.870703 137.68606,25.922811 137.87574,29.5 C 137.96748,31.23025 137.84836,31.185393 136.99257,29.167417 C 136.4485,27.884497 136.26364,25.797759 136.58177,24.530223 C 137.43578,21.127586 133.82076,18.817922 129.82255,20.211705 C 125.87646,21.587317 123.87945,25.707465 126.30066,27.477899 C 127.83897,28.602737 127.85893,28.87219 126.4882,30.009795 C 125.21445,31.066909 125.05267,31.02631 125.53458,29.770486 C 125.8596,28.923493 125.46291,28.007876 124.63294,27.689388 C 122.90955,27.028059 119.54849,31.55734 119.74844,34.271613 C 119.82023,35.246 119.45619,35.781943 118.93948,35.462596 C 117.37376,34.494931 117.85146,32.979746 121.25,28.133977 C 123.0375,25.58529 124.59464,22.991081 124.71031,22.369069 C 125.16423,19.928153 120.96449,17.76394 114.29928,17.004045 C 109.65833,16.474935 105.59539,15.208805 101.5,13.015422 C 95.998414,10.068917 94.918517,9.8398345 88.5,10.257691 C 84.075968,10.545702 80.028018,11.486715 77.5,12.814822 C 69.97969,16.765653 54.096263,19.582809 52.638651,17.224341 C 52.37499,16.797729 45.485932,16.531826 37.329634,16.633445 C 18.647824,16.866202 10.697574,18.859477 10.168338,23.443285 C 9.6024516,28.34452 10.898916,33 12.829706,33 C 15.175273,33 17.65506,37.46839 18.518067,43.25 C 18.908028,45.8625 19.738493,47.990117 20.363544,47.978038 C 20.988595,47.965959 23.525,47.004675 26,45.841852 C 32.011483,43.017492 35.088929,42.992527 37.32258,45.75 C 39.39295,48.3059 45.57533,48.850425 49.315741,46.806321 C 51.680862,45.513802 56.305982,45.573015 59.5,46.936706 C 60.6,47.406352 64.2,48.374174 67.5,49.087422 C 70.8,49.800669 75.3,51.187899 77.5,52.170155 C 82.6875,54.486271 91.5378,54.475559 100.51784,52.142295 z M 106,42 C 106,40.9 106.17252,40 106.38337,40 C 106.59422,40 107.00209,40.9 107.28975,42 C 107.57741,43.1 107.40489,44 106.90638,44 C 106.40787,44 106,43.1 106,42 z M 146.63432,36.326131 C 147.25819,35.871759 148.01628,34.6 148.31896,33.5 C 148.7529,31.922997 148.83024,32.01218 148.68464,33.921672 C 148.58309,35.253592 147.825,36.525351 147,36.747803 C 146.0089,37.015044 145.88483,36.871985 146.63432,36.326131 z M 138.15789,34 C 138.15789,32.625 138.38487,32.0625 138.66228,32.75 C 138.93969,33.4375 138.93969,34.5625 138.66228,35.25 C 138.38487,35.9375 138.15789,35.375 138.15789,34 z M 143.57111,31.867415 C 142.489,25.297167 143.05625,23.439945 146.04099,23.780897 C 147.39344,23.935391 149.4,24.978542 150.5,26.099011 L 152.5,28.136228 L 149.64045,26.857686 C 147.12507,25.733025 146.61741,25.802737 145.42249,27.436894 C 143.77122,29.695132 144.44528,31.125464 146.78203,30.321793 C 148.37779,29.772966 148.38151,29.829425 146.83436,31.115467 C 145.91826,31.87696 144.98093,33.4 144.75141,34.5 C 144.50164,35.697011 144.02776,34.640042 143.57111,31.867415 z M 101.19495,32.5 C 101.17457,30.85 101.38201,30.053936 101.65594,30.730968 C 101.92986,31.408001 101.94653,32.758001 101.69299,33.730968 C 101.43945,34.703936 101.21533,34.15 101.19495,32.5 z M 129.69461,34.361277 C 129.31257,33.979241 129,32.894151 129,31.949965 C 129,29.632707 133.08712,28.658545 134.95836,30.529792 C 136.25197,31.823403 136.16857,32 134.26398,32 C 133.07345,32 131.71459,32.687575 131.2443,33.527943 C 130.77401,34.368312 130.07665,34.743312 129.69461,34.361277 z M 114.50831,32.013447 C 114.13617,31.411306 112.96956,31.192275 111.91584,31.52671 C 109.28664,32.361187 109.48314,31.815666 113.321,27.625692 C 116.24694,24.431311 121.05098,22.625717 120.97218,24.75 C 120.90546,26.548787 115.13704,33.030754 114.50831,32.013447 z M 104.11831,29.331787 C 103.9234,25.759801 105.07487,24 107.60699,24 C 109.45633,24 109.97365,24.511175 109.884,26.25 C 109.79221,28.030335 109.67024,28.122789 109.29968,26.692914 C 108.57963,23.914468 105.59748,25.140922 104.87602,28.512211 C 104.40993,30.69017 104.20456,30.912313 104.11831,29.331787 z M 140.07895,29.583333 C 140.03553,28.529167 140.27187,27.938542 140.60417,28.270833 C 140.93646,28.603125 140.97198,29.465625 140.68311,30.1875 C 140.36389,30.985233 140.12693,30.748276 140.07895,29.583333 z M 131.25,25.919901 C 133.10877,24.837265 133.62563,23 132.07143,23 C 131.56071,23 130.38718,23.755675 129.46358,24.679279 C 127.89121,26.25165 127.80763,26.235735 128.1507,24.429279 C 128.588,22.126704 134,21.020394 134,23.233578 C 134,24.866967 132.01906,27.012136 130.55,26.969591 C 129.9725,26.952867 130.2875,26.480506 131.25,25.919901 z M 101.43257,23.109104 C 102.14603,21.954709 106,19.626427 106,20.349806 C 106,20.580902 104.81959,21.543412 103.37688,22.488717 C 101.93416,23.434022 101.05922,23.713196 101.43257,23.109104 z M 112,23.115463 C 112,22.217687 115.00488,20.671546 115.59765,21.264316 C 115.76892,21.435583 115.02951,22.124988 113.95452,22.796329 C 112.87953,23.467669 112,23.611279 112,23.115463 z M 110.5,20 C 110.16008,19.45 110.35852,19 110.94098,19 C 111.52344,19 112,19.45 112,20 C 112,20.55 111.80156,21 111.55902,21 C 111.31648,21 110.83992,20.55 110.5,20 z M 76.872445,18.25 C 75.628574,16.663944 75.663944,16.628574 77.25,17.872445 C 78.2125,18.627289 79,19.414789 79,19.622445 C 79,20.445479 78.178814,19.915748 76.872445,18.25 z M 176.34651,48.236524 C 180.66745,45.722405 182.01927,40.484904 179.38473,36.46524 C 178.34813,34.88364 177.47193,31.877347 177.43763,29.784591 C 177.40185,27.601982 176.50591,24.811371 175.33638,23.239789 C 173.66225,20.990141 172.40026,20.446754 168.28209,20.202365 C 164.02095,19.949491 162.7728,20.320296 159.98278,22.667945 C 157.20787,25.00288 156.87443,25.103146 157.8315,23.314847 C 158.8971,21.323744 158.69894,21.177443 154.48206,20.842061 C 152.01693,20.646001 150,20.580876 150,20.69734 C 150,21.482748 155.66255,26.416546 156.32536,26.208646 C 156.77931,26.066259 156.86639,26.845609 156.51887,27.940535 C 156.17136,29.035461 156.29729,31.417151 156.79872,33.233178 C 157.42783,35.511631 157.29506,37.924391 156.37038,41.017523 C 154.29988,47.943533 154.51281,48.5924 159.25,49.792625 C 164.84455,51.210072 172.4212,50.520455 176.34651,48.236524 z M 163,41.5 C 163,38.940126 163.69371,38.46914 165.555,39.765313 C 166.24452,40.245483 165.9847,41.10625 164.805,42.25 C 163.07967,43.922761 163,43.889659 163,41.5 z M 170.95958,34.451293 C 169.75286,32.997285 169.86923,32.847791 171.96952,33.153958 C 173.27512,33.344281 174.41609,33.95 174.50501,34.5 C 174.59392,35.05 174.46219,35.111581 174.21228,34.636847 C 173.96237,34.162113 173.43515,34.295914 173.04068,34.934182 C 172.52834,35.763155 171.93384,35.625209 170.95958,34.451293 z M 160.09023,32.823742 C 158.49622,29.649789 159.30875,25.43221 161.76181,24.147177 C 162.71781,23.646373 164.96157,22.922834 166.74792,22.539313 C 169.51452,21.94534 170.44074,22.286895 172.99792,24.844078 C 174.64907,26.49522 175.99337,28.668269 175.98526,29.673077 C 175.97379,31.094095 175.691,30.944552 174.71245,29 C 171.98245,23.574975 162.44909,25.956815 161.78195,32.23059 L 161.43429,35.5 L 160.09023,32.823742 z M 167.25674,31 C 167.74049,29.225818 171,28.342594 171,29.985693 C 171,30.60848 170.49969,30.808824 169.8882,30.430902 C 169.2767,30.052979 168.34245,30.363921 167.81207,31.121885 C 167.01944,32.25462 166.92056,32.232918 167.25674,31 z M 133.10703,18.566149 C 134.16294,19.218735 138,16.317433 138,14.866451 C 138,14.413486 136.87683,14.554629 135.50406,15.180103 C 133.53467,16.07742 132.63809,16.015627 131.25406,14.887186 C 129.0192,13.065034 123.8299,13.067834 123.21112,14.891525 C 122.86179,15.9211 123.42321,16.152253 125.36949,15.780197 C 126.81627,15.503628 128,15.664941 128,16.138672 C 128,17.498963 122.21704,17.141039 121.72024,15.75 C 121.4747,15.0625 120.93528,14.814423 120.52152,15.198717 C 120.10776,15.583011 121.03439,16.985681 122.5807,18.31576 C 125.21077,20.578046 125.6082,20.643826 128.74011,19.335231 C 130.58147,18.56586 132.54658,18.219774 133.10703,18.566149 z M 147,18.561947 C 143.78338,16.814707 139.64114,16.278687 139,17.526717 C 138.725,18.062023 140.3,18.773643 142.5,19.108095 C 148.93449,20.086289 149.64706,19.999807 147,18.561947 z M 136,12.893011 C 136,11.750399 133.28825,11.72459 132.5862,12.86052 C 132.2937,13.333806 132.31113,13.9778 132.62495,14.291619 C 133.40533,15.071995 136,13.996773 136,12.893011 z"
+ id="path2396" />
+ <path
+ style="fill:#213457"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 100.47013,54.834452 C 104.45739,54.033696 106.41399,53.13291 106.72167,51.95635 C 107.17756,50.213018 111.837,47.503669 112.77173,48.438393 C 113.05403,48.720694 112.70675,49.648417 112,50.5 C 110.03584,52.866666 111.55343,53.450372 116.11639,52.083276 C 118.51378,51.365 122.18638,51.107568 124.87283,51.469491 C 128.59321,51.970705 130.47985,51.614325 134.5,49.650955 C 139.99185,46.968832 141.19813,47.018601 138.66054,49.82261 C 136.26668,52.46779 136.57185,53 140.48244,53 C 143.24665,53 144.93221,52.073141 148.65509,48.505986 C 151.23471,46.034279 153.52579,44.19246 153.74639,44.413056 C 153.96699,44.633652 153.42774,46.205958 152.54806,47.90707 L 150.94864,51 L 153.73092,51 C 155.26118,51 158.06223,51.444254 159.95548,51.987231 C 161.84873,52.530208 163.64576,52.592666 163.94887,52.126026 C 164.25199,51.659387 166.53966,50.977233 169.03257,50.610128 C 178.86006,49.16294 183.50788,42.756107 179.34165,36.399494 C 178.32874,34.854054 177.47193,31.877347 177.43763,29.784591 C 177.40185,27.601982 176.50591,24.811371 175.33638,23.239789 C 173.66225,20.990141 172.40026,20.446754 168.28209,20.202365 C 164.10186,19.954292 162.70327,20.347874 159.88334,22.565888 L 156.5,25.227046 L 159.76578,22.113523 C 162.501,19.50582 163.81938,19 167.88092,19 C 171.33636,19 173.55952,19.632377 175.61514,21.199989 L 178.5,23.399979 L 176.62908,21.237635 C 173.68285,17.832483 168.83058,16.656144 162.94102,17.919228 C 155.73029,19.465653 151.93341,19.256819 148.43122,17.121166 C 143.12511,13.885473 141.3564,13.701075 139.07852,16.146095 C 137.93533,17.37316 137,19.278279 137,20.379691 C 137,22.267336 137.07457,22.280285 138.29931,20.605342 C 139.19812,19.376155 140.50817,18.962807 142.54931,19.26438 L 145.5,19.700336 L 142.297,19.850168 C 139.53971,19.97915 138.96046,20.483666 138.13429,23.475797 C 137.60645,25.387485 137.37299,27.974985 137.6155,29.225797 L 138.05642,31.5 L 137.02988,29.167417 C 136.46529,27.884497 136.26364,25.797759 136.58177,24.530223 C 137.00434,22.846591 136.53975,21.791038 134.85759,20.612805 C 133.04429,19.342722 132.91354,19 134.24231,19 C 135.17034,19 136.39547,18.129584 136.96482,17.065741 C 138.49115,14.213765 138.26517,13.922058 135.50406,15.180103 C 133.44173,16.119764 132.65997,16.002252 131.00406,14.503676 C 129.90183,13.506168 128.98569,13.097269 128.9682,13.595012 C 128.9507,14.092756 128.29334,13.650603 127.50738,12.612451 C 126.24216,10.941262 125.72644,10.870671 123.0082,11.996603 C 119.97606,13.252558 119.96396,13.286458 122.03132,14.734492 C 123.18262,15.540895 124.99656,15.972656 126.0623,15.693959 C 127.12803,15.415263 128,15.59511 128,16.09362 C 128,16.592129 126.55,17 124.77778,17 L 121.55556,17 L 123.76667,19.211111 C 125.49769,20.942134 126.24074,21.159259 127.18889,20.211111 C 127.855,19.545 129.3225,19.017614 130.45,19.039142 C 132.0125,19.068976 131.74983,19.404658 129.34545,20.450736 C 125.5368,22.107766 123.99929,25.795095 126.38854,27.542156 C 127.78026,28.559805 127.81399,28.909482 126.61635,29.903435 C 125.5004,30.829594 125.24037,30.724287 125.35526,29.392712 C 125.43487,28.470112 124.98715,27.533374 124.36033,27.311073 C 122.84629,26.774116 118.65757,33.636925 119.58422,35.136271 C 120.03731,35.869378 119.87622,36.041531 119.15451,35.595492 C 117.34035,34.474279 117.75282,33.104675 121.40165,28.133977 C 123.27256,25.58529 124.96006,23.209744 125.15165,22.854988 C 125.68726,21.863237 121.8625,18 120.34501,18 C 119.60526,18 119,17.200608 119,16.223574 C 119,14.764027 118.30948,14.513 115.12892,14.816315 C 112.31397,15.084764 109.24466,14.275533 103.87892,11.85023 C 93.643439,7.2238196 86.684681,7.2320217 75,11.884269 C 68.311443,14.547313 65.114779,15.259084 60,15.224174 C 56.425,15.199774 46.975,15.139134 39,15.089419 C 22.559909,14.986934 16.079105,16.189545 11.866844,20.124386 C 7.7759559,23.945848 8.0506051,27.954681 12.948891,35.918149 C 15.120163,39.448132 17.415647,43.589247 18.049965,45.120627 C 19.186843,47.865292 19.326471,47.904676 27.851636,47.885275 C 53.186587,47.82762 60.152735,48.471072 69.5,51.732264 C 74.45,53.459283 79.4,55.073831 80.5,55.320148 C 84.521229,56.2206 94.814548,55.970255 100.47013,54.834452 z M 118,48.24469 C 118,47.82927 119.6875,46.964323 121.75,46.322585 L 125.5,45.155789 L 123.13922,47.077895 C 120.75927,49.015601 118,49.64206 118,48.24469 z M 146.63432,36.326131 C 147.25819,35.871759 148.01628,34.6 148.31896,33.5 C 148.7529,31.922997 148.83024,32.01218 148.68464,33.921672 C 148.58309,35.253592 147.825,36.525351 147,36.747803 C 146.0089,37.015044 145.88483,36.871985 146.63432,36.326131 z M 155.97525,34.4349 C 155.43886,33.024096 155,31.201749 155,30.38524 C 155,27.419366 152.02367,23.252445 149.01509,22.006252 C 147.32152,21.304751 146.13348,20.533186 146.375,20.291662 C 147.20539,19.461275 152.94178,23.022689 154.02053,25.038359 C 154.61443,26.14807 155.57598,26.762059 156.15731,26.402779 C 156.84033,25.980649 156.97949,26.489271 156.55065,27.840426 C 156.18566,28.990412 156.32617,31.521765 156.86291,33.465655 C 157.99343,37.560063 157.40692,38.200478 155.97525,34.4349 z M 138.15789,34 C 138.15789,32.625 138.38487,32.0625 138.66228,32.75 C 138.93969,33.4375 138.93969,34.5625 138.66228,35.25 C 138.38487,35.9375 138.15789,35.375 138.15789,34 z M 143.7057,33.125 C 143.31756,31.26875 143,28.45625 143,26.875 C 143,24.382027 143.37804,24 145.84501,24 C 147.50211,24 149.48544,24.899723 150.59501,26.154802 L 152.5,28.309603 L 149.69002,26.500493 C 147.13146,24.853249 146.73897,24.832461 145.30328,26.26815 C 143.27958,28.291844 144.27986,31.188922 146.71215,30.348609 C 148.36337,29.778137 148.37271,29.83674 146.83436,31.115467 C 145.91826,31.87696 144.99832,33.4 144.79006,34.5 C 144.51602,35.947373 144.2164,35.567443 143.7057,33.125 z M 174,35.166667 C 174,34.525 172.9875,33.947799 171.75,33.883999 C 169.89804,33.788518 169.82837,33.683476 171.35622,33.290218 C 173.35092,32.776796 175.81141,34.521921 174.68333,35.65 C 174.3075,36.025833 174,35.808333 174,35.166667 z M 101.19495,32.5 C 101.17457,30.85 101.38201,30.053936 101.65594,30.730968 C 101.92986,31.408001 101.94653,32.758001 101.69299,33.730968 C 101.43945,34.703936 101.21533,34.15 101.19495,32.5 z M 159.85165,32.573742 C 157.4143,27.224342 161.21905,23 168.47447,23 C 172.05884,23 176.039,26.660359 175.96086,29.884859 C 175.93933,30.773186 175.28605,30.0375 174.50913,28.25 C 173.18691,25.207904 172.77818,25 168.1197,25 C 164.92863,25 162.579,25.563854 161.57143,26.571429 C 160.70714,27.435714 160,28.226185 160,28.32803 C 160,28.429876 160.41859,29.972733 160.93019,31.756602 C 162.02513,35.57442 161.42575,36.028527 159.85165,32.573742 z M 129.03041,32.366631 C 128.99106,29.605819 132.88884,28.448292 134.99408,30.595597 C 136.34274,31.971207 136.22293,32.06374 133.84677,31.481684 C 131.86935,30.997303 130.92192,31.298933 130.12718,32.665879 C 129.13117,34.37899 129.05881,34.359246 129.03041,32.366631 z M 115,32.611417 C 115,32.201744 116.17841,30.321581 117.61869,28.433278 C 119.74246,25.648865 119.92741,25 118.59725,25 C 117.69518,25 116.48475,26.036753 115.9074,27.303896 C 114.86511,29.59147 111.19198,32.525308 110.38303,31.716366 C 109.41818,30.751514 116.80107,24 118.821,24 C 120.01945,24 120.98748,24.3375 120.97218,24.75 C 120.935,25.752252 115,33.564732 115,32.611417 z M 167.25674,31 C 167.74049,29.225818 171,28.342594 171,29.985693 C 171,30.60848 170.49969,30.808824 169.8882,30.430902 C 169.2767,30.052979 168.34245,30.363921 167.81207,31.121885 C 167.01944,32.25462 166.92056,32.232918 167.25674,31 z M 104.11831,28.95 C 104.05324,27.5475 104.54,25.86 105.2,25.2 C 106.56239,23.837614 110,23.572202 110,24.829401 C 110,25.285572 108.99977,25.623072 107.77726,25.579401 C 106.09297,25.519234 105.3949,26.226732 104.89558,28.5 C 104.28188,31.293999 104.22851,31.324899 104.11831,28.95 z M 140.07895,29.583333 C 140.03553,28.529167 140.27187,27.938542 140.60417,28.270833 C 140.93646,28.603125 140.97198,29.465625 140.68311,30.1875 C 140.36389,30.985233 140.12693,30.748276 140.07895,29.583333 z M 131.25,25.919901 C 132.2125,25.359296 133,24.47298 133,23.95031 C 133,22.326767 130.15324,22.907528 129.0801,24.75 C 128.51949,25.7125 128.04713,26.0275 128.03041,25.45 C 127.98358,23.832928 130.19881,22 132.2,22 C 133.19,22 134,22.585 134,23.3 C 134,24.877491 131.99378,27.011404 130.55,26.969591 C 129.9725,26.952867 130.2875,26.480506 131.25,25.919901 z M 101.43257,23.109104 C 102.14603,21.954709 106,19.626427 106,20.349806 C 106,20.580902 104.81959,21.543412 103.37688,22.488717 C 101.93416,23.434022 101.05922,23.713196 101.43257,23.109104 z M 112,23.115463 C 112,22.217687 115.00488,20.671546 115.59765,21.264316 C 115.76892,21.435583 115.02951,22.124988 113.95452,22.796329 C 112.87953,23.467669 112,23.611279 112,23.115463 z M 110.5,20 C 110.16008,19.45 110.35852,19 110.94098,19 C 111.52344,19 112,19.45 112,20 C 112,20.55 111.80156,21 111.55902,21 C 111.31648,21 110.83992,20.55 110.5,20 z M 183.46469,35.75 C 182.28869,30.244582 181.31474,29.290508 180.52787,32.873118 C 180.0829,34.899062 180.26947,36.619763 181.03399,37.540959 C 183.09271,40.021566 184.20246,39.203892 183.46469,35.75 z M 122,16 C 122,15.45 121.55,15 121,15 C 120.45,15 120,15.45 120,16 C 120,16.55 120.45,17 121,17 C 121.55,17 122,16.55 122,16 z M 136.46165,13.651704 C 138.90072,11.86821 137.61115,10 133.94098,10 C 130.94501,10 130.52906,10.609176 131.60699,13.418213 C 132.35038,15.355454 134.0217,15.435838 136.46165,13.651704 z"
+ id="path2394" />
+ <path
+ style="fill:#373737"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 100.15419,54.873512 C 103.57631,54.139598 106.40822,52.745624 108.28033,50.873512 C 111.1017,48.052147 113,47.218158 113,48.8 C 113,49.24 112.4675,50.1325 111.81667,50.783333 C 109.81346,52.786537 111.78233,53.381789 116.11639,52.083276 C 118.58659,51.343185 122.15722,51.109018 125.00333,51.500458 C 128.95841,52.044421 130.62462,51.717172 134.8805,49.560556 C 139.75243,47.091762 141.71684,47.330261 138.5,50 C 136.08062,52.007903 136.75405,53 140.53637,53 C 143.36144,53 145.01054,52.101371 148.73526,48.532228 C 151.29965,46.074953 153.56647,44.233134 153.77263,44.439297 C 153.97879,44.64546 153.42774,46.205958 152.54806,47.90707 L 150.94864,51 L 153.73092,51 C 155.26118,51 158.06223,51.444254 159.95548,51.987231 C 161.84873,52.530208 163.64576,52.630237 163.94887,52.209517 C 164.25199,51.788797 167.2,50.902959 170.5,50.240988 C 177.3702,48.862845 181,45.659849 181,40.975621 C 181,38.797262 181.37823,38.207912 182.5,38.638374 C 184.28739,39.324258 184.33182,38.735406 182.88576,33.526704 L 181.78268,29.553408 L 180.47256,32.526704 L 179.16244,35.5 L 178.91455,31.75 C 178.77822,29.6875 178.62917,27.2125 178.58333,26.25 C 178.5375,25.2875 177.57795,23.6 176.45099,22.5 L 174.40198,20.5 L 176.45099,22 C 178.47859,23.484325 178.48045,23.476881 176.62908,21.287645 C 173.71511,17.841882 168.8659,16.648569 162.94102,17.919228 C 155.39758,19.537007 152.45971,19.259623 147.02173,16.41618 C 144.30392,14.995079 141.56399,14.151432 140.933,14.541409 C 140.14838,15.026332 139.98949,14.60847 140.43035,13.219459 C 140.98185,11.481814 140.5279,11.097472 137.28748,10.558518 C 131.24129,9.5529023 120,11.748128 120,13.934459 C 120,14.314959 117.9841,14.730629 115.52021,14.858169 C 112.24115,15.027907 109.09178,14.208897 103.77021,11.80252 C 93.653361,7.2277467 86.645404,7.2476595 75,11.884269 C 68.311443,14.547313 65.114779,15.259084 60,15.224174 C 56.425,15.199774 46.975,15.139134 39,15.089419 C 22.559909,14.986934 16.079105,16.189545 11.866844,20.124386 C 7.7759559,23.945848 8.0506051,27.954681 12.948891,35.918149 C 15.120163,39.448132 17.415647,43.589247 18.049965,45.120627 C 19.186843,47.865292 19.326471,47.904676 27.851636,47.885275 C 53.186587,47.82762 60.152735,48.471072 69.5,51.732264 C 74.45,53.459283 79.4,55.073831 80.5,55.320148 C 84.489841,56.213572 95.02168,55.974238 100.15419,54.873512 z M 118,48.24469 C 118,47.82927 119.6875,46.964323 121.75,46.322585 L 125.5,45.155789 L 123.13922,47.077895 C 120.75927,49.015601 118,49.64206 118,48.24469 z M 144,25.559017 C 144,24.701558 144.45,24 145,24 C 145.55,24 146,24.423442 146,24.940983 C 146,25.458524 145.55,26.160081 145,26.5 C 144.45,26.839919 144,26.416476 144,25.559017 z M 166.25,24.310674 C 167.2125,24.059147 168.7875,24.059147 169.75,24.310674 C 170.7125,24.562202 169.925,24.767997 168,24.767997 C 166.075,24.767997 165.2875,24.562202 166.25,24.310674 z"
+ id="path2392" />
+ <path
+ style="fill:#272727"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 110,55.459643 C 120.02808,52.85974 120.91034,52.790677 129.62996,53.923037 C 136.71419,54.84302 140.69623,54.837811 147.40149,53.899792 C 154.32282,52.931546 157.11437,52.947905 161.42484,53.981969 C 175.77801,57.425242 185.31111,51.669209 185.12456,39.6722 C 185.02561,33.308665 183.84397,29.115833 180.57974,23.545859 C 176.95653,17.363311 172.59615,15.543808 163.57427,16.449803 C 153.33883,17.477666 151.99335,17.290479 146.90719,14.131028 C 142.77506,11.564207 142.19458,11.439629 141.11992,12.889021 C 140.46297,13.77506 140.19592,13.934048 140.52649,13.242329 C 141.49878,11.207776 138.44891,9.0232696 133.73382,8.3769938 C 130.16746,7.8881704 128.01948,8.3580354 122.2556,10.887817 C 118.35564,12.599518 114.5652,13.999645 113.83239,13.999211 C 113.09957,13.998777 109.70034,12.673957 106.27853,11.055167 C 94.245526,5.3625889 86.036889,5.2664578 74.5,10.683009 L 68.5,13.5 L 46.857387,13.16813 C 21.28109,12.77594 15.077325,13.870027 9.9839338,19.67108 C 5.7909369,24.446639 6.0848313,27.8935 11.461474,37 C 18.94165,49.669288 17.594409,48.72286 29.225422,49.479056 C 34.87644,49.84646 43.696455,50.091913 48.825454,50.024508 C 59.205552,49.888093 65.261894,51.27826 75.17027,56.071669 C 81.137004,58.958216 82.01613,59.106529 90.5,58.657861 C 95.516891,58.392544 104.14696,56.977116 110,55.459643 z M 148,49.5 C 148.68469,48.675 149.69489,48 150.24489,48 C 150.80272,48 150.69443,48.66326 150,49.5 C 149.31531,50.325 148.30511,51 147.75511,51 C 147.19728,51 147.30557,50.33674 148,49.5 z M 174.32441,49.629706 C 178.83435,47.925462 178.48241,48.222343 180.43739,44.473119 L 181.98768,41.5 L 181.99384,44.095012 C 182.00193,47.504094 179.42999,49.686145 174.5,50.452836 L 170.5,51.074898 L 174.32441,49.629706 z M 128.01429,9.5857143 C 128.6619,8.9380952 129.3381,8.9380952 129.98571,9.5857143 C 130.63333,10.233333 130.29524,10.571429 129,10.571429 C 127.70476,10.571429 127.36667,10.233333 128.01429,9.5857143 z"
+ id="path2390" />
+ <path
+ style="fill:#161616"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 99.740535,60.499034 C 103.17283,59.689762 108.57283,58.189577 111.74054,57.165289 C 116.87822,55.504003 119.98305,55.353837 140.5,55.774324 C 153.15,56.03358 166.43295,56.291733 170.01767,56.347995 C 177.79093,56.469998 182.86752,53.906294 185.39354,48.583108 C 188.82038,41.361583 186.28897,27.03414 180.36301,20.110995 C 176.05734,15.080788 171.48256,13.507101 164.10608,14.518748 C 154.21236,15.875624 151.46879,15.594336 147.86348,12.853454 C 139.36297,6.3910809 133.05689,5.0692908 125,8.0611367 C 112.63001,12.654609 114.03415,12.623587 104.4678,8.5147588 C 96.325455,5.0175537 95.199606,4.7904729 88.111777,5.2157924 C 82.564943,5.5486416 79.132679,6.3709046 75.459792,8.2468126 C 68.789368,11.653697 60.26205,13.183887 54.228461,12.056683 C 45.324574,10.393245 24.325775,10.964448 17.560198,13.054122 C 4.2356607,17.169652 2.0697003,24.643247 10.185599,38.5 C 17.700473,51.330589 16.384988,50.391154 28.133108,51.31695 C 33.834898,51.766272 44.125,52.216272 51,52.31695 C 63.374194,52.498158 63.59058,52.541695 72.5,56.64283 C 77.45,58.921386 82.175,61.02336 83,61.313882 C 85.887775,62.330808 93.554279,61.95764 99.740535,60.499034 z"
+ id="path2388" />
+ <path
+ style="fill:#030303"
+ d="M 0,33.5 L 0,0 L 96,0 L 192,0 L 192,33.5 L 192,67 L 96,67 L 0,67 L 0,33.5 z M 107.87335,61.442015 C 113.71801,59.485124 119.625,57.925345 121,57.97584 C 124.38842,58.100275 163.00491,59.12266 170.55362,59.287789 C 187.19717,59.65187 194.29828,45.235948 187.03627,25.826482 C 184.61128,19.345123 179.29638,13.912979 173.51213,12.004003 C 170.00737,10.847328 167.61361,10.929221 157.5,12.551793 C 153.99278,13.114473 152.84996,12.746135 148.22345,9.5619217 C 141.40792,4.8710948 138.80811,3.9341967 132.39445,3.8575884 C 128.74062,3.8139452 125.38761,4.5915631 121.44327,6.3973429 C 118.31654,7.8288043 114.89393,9 113.83746,9 C 112.78098,9 108.89786,7.5458331 105.2083,5.7685179 C 99.282884,2.914162 97.508018,2.5348748 90,2.5185179 C 82.741877,2.5027055 80.623381,2.9115377 75.5,5.3167608 C 66.817441,9.3928763 62.502497,9.8918256 43.149367,9.0575567 C 33.159473,8.6269154 23.614194,8.7034505 20.649367,9.2379641 C 13.102951,10.598469 6.6854774,14.435627 4.0175888,19.182494 C 0.19795326,25.978619 1.4546783,30.229749 12.676026,48.47144 C 15.279098,52.703054 18.491485,53.968444 26.67371,53.985258 C 30.61925,53.993366 36.050978,54.508642 38.744216,55.130316 C 42.168729,55.920788 45.367635,55.963157 49.383739,55.271235 C 56.972856,53.963728 62.65169,55.111324 72.5,59.942639 C 81.909037,64.558458 82.556644,64.732626 90.873351,64.883999 C 95.738378,64.972547 99.761615,64.157964 107.87335,61.442015 z"
+ id="path2386" />
+ </g>
+ <path
+ style="fill:#85c9bd;fill-opacity:1;stroke:#85c9c0;stroke-width:0.35555556;stroke-opacity:1"
+ d="M 105.20863,47.687447 C 104.90432,46.523802 105.28416,45.987621 106.68932,45.597331 C 108.3549,45.1347 112.07616,45.125448 112.07616,45.583934 C 112.07616,46.085271 107.28337,48.432848 106.25984,48.432848 C 105.68944,48.432848 105.33846,48.18398 105.20862,47.687443 L 105.20863,47.687447 z"
+ id="path2452" />
+ <path
+ style="fill:#85c9bd;fill-opacity:1;stroke:#85c9c0;stroke-width:0.35555556;stroke-opacity:1"
+ d="M 116.76679,45.31017 C 115.59823,45.121957 116.00647,44.365029 117.34799,44.232542 C 118.14976,44.15336 118.47616,44.270945 118.47616,44.638945 C 118.47616,45.257854 117.88448,45.490184 116.76679,45.310167 L 116.76679,45.31017 z"
+ id="path2454" />
+ <path
+ style="fill:#85c9bd;fill-opacity:1;stroke:#85c9c0;stroke-width:0.35555556;stroke-opacity:1"
+ d="M 130.65394,48.197367 C 130.04694,47.952435 130.09248,46.48371 130.72331,45.960161 C 131.42247,45.379916 138.03172,44.988218 138.03172,45.527034 C 138.03172,45.990284 136.79175,46.673982 134.08772,47.701726 C 132.16107,48.433996 131.48295,48.531884 130.65394,48.19737 L 130.65394,48.197367 z"
+ id="path2456" />
+ <path
+ style="fill:#85c9bd;fill-opacity:1;stroke:#85c9c0;stroke-width:0.35555556;stroke-opacity:1"
+ d="M 164.04032,48.040552 C 162.92253,47.811941 161.14283,46.489601 161.14283,45.887674 C 161.14283,45.729335 163.50283,45.597004 166.38727,45.593601 C 169.27172,45.590195 172.27172,45.43145 173.05394,45.240833 C 176.75097,44.33992 178.50464,45.234753 175.77309,46.628296 C 173.56327,47.755664 166.69159,48.5828 164.04032,48.040552 z"
+ id="path2464" />
+ <path
+ style="fill:#85c9bd;fill-opacity:1;stroke:#85c9c0;stroke-width:0.35555556;stroke-opacity:1"
+ d="M 145.14283,46.821694 C 145.14283,45.955962 145.33519,45.492268 145.76235,45.328357 C 146.57366,45.017032 148.60687,45.02281 148.92139,45.337335 C 149.43094,45.846888 146.65892,48.077292 145.51606,48.077292 C 145.31076,48.077292 145.14283,47.512272 145.14283,46.82169 L 145.14283,46.821694 z"
+ id="path2466" />
+</svg>
diff --git a/data/images/status/tux_helmet1.png b/data/images/status/tux_helmet1.png
new file mode 100644
index 0000000..29a7efc
Binary files /dev/null and b/data/images/status/tux_helmet1.png differ
diff --git a/data/images/status/tux_helmet2.png b/data/images/status/tux_helmet2.png
new file mode 100644
index 0000000..50a7455
Binary files /dev/null and b/data/images/status/tux_helmet2.png differ
diff --git a/data/images/status/tux_helmet3.png b/data/images/status/tux_helmet3.png
new file mode 100644
index 0000000..77c3fb2
Binary files /dev/null and b/data/images/status/tux_helmet3.png differ
diff --git a/data/images/status/wave.png b/data/images/status/wave.png
new file mode 100644
index 0000000..450b39c
Binary files /dev/null and b/data/images/status/wave.png differ
diff --git a/data/images/title/Makefile.am b/data/images/title/Makefile.am
new file mode 100644
index 0000000..6782cc7
--- /dev/null
+++ b/data/images/title/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath data/images/title:
+## Process with AutoMake:
+
+titledir = $(pkgdatadir)/images/title
+
+dist_title_DATA = egg.png \
+ egg.svg \
+ menu_bkg.jpg \
+ title1.png \
+ title1.svg
diff --git a/data/images/title/egg.png b/data/images/title/egg.png
new file mode 100644
index 0000000..b3c44f8
Binary files /dev/null and b/data/images/title/egg.png differ
diff --git a/data/images/title/egg.svg b/data/images/title/egg.svg
new file mode 100644
index 0000000..9193c46
--- /dev/null
+++ b/data/images/title/egg.svg
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="28.106358"
+ height="40.932072"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="egg.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2447"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4.8340391"
+ inkscape:cx="31.177668"
+ inkscape:cy="7.2230692"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="805"
+ inkscape:window-height="676"
+ inkscape:window-x="467"
+ inkscape:window-y="40" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(1.2693368e-7,-1011.4301)">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#00ffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.48969385;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3225"
+ sodipodi:cx="-17.893938"
+ sodipodi:cy="66.747475"
+ sodipodi:rx="10.446751"
+ sodipodi:ry="9.8261518"
+ d="M -7.4471874,66.747475 A 10.446751,9.8261518 0 1 1 -28.340689,66.747475 A 10.446751,9.8261518 0 1 1 -7.4471874,66.747475 z"
+ transform="matrix(1.3069307,0,0,2.0421052,37.439316,895.59078)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3239"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="translate(1.4480644,1.8617971)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.1388889;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3241"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="matrix(1.44,0,0,1.44,1.1791395,-432.67549)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3243"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="translate(-5.2750904,12.308576)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.41666669;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3245"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="matrix(0.48,0,0,0.48,1.8411113,554.10873)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3247"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="translate(5.0682269,26.78922)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.45454547;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3249"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="matrix(0.44,0,0,0.44,20.831441,583.89882)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#800080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.35714287;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:2;stroke-dasharray:none;stroke-opacity:1"
+ id="path3251"
+ sodipodi:cx="11.894814"
+ sodipodi:cy="1016.264"
+ sodipodi:rx="2.5858293"
+ sodipodi:ry="2.5858293"
+ d="M 14.480643,1016.264 A 2.5858293,2.5858293 0 1 1 9.3089843,1016.264 A 2.5858293,2.5858293 0 1 1 14.480643,1016.264 z"
+ transform="matrix(0.56,0,0,0.56,15.37017,449.22485)" />
+ </g>
+</svg>
diff --git a/data/images/title/menu_bkg.jpg b/data/images/title/menu_bkg.jpg
new file mode 100644
index 0000000..68192f0
Binary files /dev/null and b/data/images/title/menu_bkg.jpg differ
diff --git a/data/images/title/title1.png b/data/images/title/title1.png
new file mode 100644
index 0000000..d6fb67f
Binary files /dev/null and b/data/images/title/title1.png differ
diff --git a/data/images/title/title1.svg b/data/images/title/title1.svg
new file mode 100644
index 0000000..eafca0a
--- /dev/null
+++ b/data/images/title/title1.svg
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ width="202"
+ height="110"
+ version="1.0"
+ sodipodi:docname="title1.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs5">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective9" />
+ <inkscape:perspective
+ id="perspective2391"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ <inkscape:perspective
+ id="perspective2606"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="722"
+ inkscape:window-width="1272"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="3.7805709"
+ inkscape:cx="111.42668"
+ inkscape:cy="56.555342"
+ inkscape:window-x="0"
+ inkscape:window-y="40"
+ inkscape:current-layer="svg2" />
+ <path
+ id="path2626"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z"
+ style="fill:#6860e0" />
+ <path
+ id="path2624"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 26.999998,102.84814 L 26.999998,101.84814 L 16.749998,101.86346 L 6.4999984,101.87877 L 7.9999984,102.84814 L 9.4999984,103.81752 L 18.249998,103.83283 L 26.999998,103.84814 L 26.999998,102.84814 z M 50.999998,102.84814 L 52.499998,101.87877 L 41.690981,101.86346 L 30.881964,101.84814 L 31.499998,102.84814 L 32.118032,103.84814 L 40.809015,103.83283 L 49.499998,103.81752 L 50.999998,102.84814 z M 60.999998,102.84814 L 60.999998,101.84814 L 57.999998,101.84814 L 54.999998,101.84814 L 54.999998,102.84814 L 54.999998,103.84814 L 57.999998,103.84814 L 60.999998,103.84814 L 60.999998,102.84814 z M 71.999998,102.84814 L 71.999998,101.84814 L 69.440981,101.84814 L 66.881964,101.84814 L 67.499998,102.84814 L 68.118032,103.84814 L 70.059015,103.84814 L 71.999998,103.84814 L 71.999998,102.84814 z M 83.999998,102.84814 L 83.999998,101.84814 L 81.499998,101.84814 L 78.999998,101.84814 L 78.999998,102.84814 L 78.999998,103.84814 L 81.499998,103.84814 L 83.999998,103.84814 L 83.999998,102.84814 z M 91.999998,102.84814 L 91.999998,101.84814 L 89.499998,101.84814 L 86.999998,101.84814 L 86.999998,102.84814 L 86.999998,103.84814 L 89.499998,103.84814 L 91.999998,103.84814 L 91.999998,102.84814 z M 103.99999,102.84814 L 103.99999,101.84814 L 101.49999,101.84814 L 98.999998,101.84814 L 98.999998,102.84814 L 98.999998,103.84814 L 101.49999,103.84814 L 103.99999,103.84814 L 103.99999,102.84814 z M 115.99999,102.84814 L 115.99999,101.84814 L 113.49999,101.84814 L 110.99999,101.84814 L 110.99999,102.84814 L 110.99999,103.84814 L 113.49999,103.84814 L 115.99999,103.84814 L 115.99999,102.84814 z M 123.99999,102.84814 L 123.99999,101.84814 L 120.99999,101.84814 L 117.99999,101.84814 L 117.99999,102.84814 L 117.99999,103.84814 L 120.99999,103.84814 L 123.99999,103.84814 L 123.99999,102.84814 z M 145.49999,102.84814 L 144.88196,101.84814 L 142.44097,101.84814 L 139.99999,101.84814 L 139.99999,102.84814 L 139.99999,103.84814 L 143.05901,103.84814 L 146.11802,103.84814 L 145.49999,102.84814 z M 152.99999,102.84814 L 152.99999,101.84814 L 150.49999,101.84814 L 147.99999,101.84814 L 147.99999,102.84814 L 147.99999,103.84814 L 150.49999,103.84814 L 152.99999,103.84814 L 152.99999,102.84814 z M 169.99999,102.84814 L 169.99999,101.84814 L 166.94097,101.84814 L 163.88196,101.84814 L 164.49999,102.84814 L 165.11802,103.84814 L 167.55901,103.84814 L 169.99999,103.84814 L 169.99999,102.84814 z M 194.49999,102.84814 L 195.11802,101.84814 L 184.05901,101.84814 L 172.99999,101.84814 L 172.99999,102.84814 L 172.99999,103.84814 L 183.44097,103.84814 L 193.88196,103.84814 L 194.49999,102.84814 z M 26.999998,99.848147 L 26.999998,98.848147 L 16.499998,98.848147 L 5.9999984,98.848147 L 5.9999984,99.848147 L 5.9999984,100.84814 L 16.499998,100.84814 L 26.999998,100.84814 L 26.999998,99.848147 z M 51.999998,99.848147 L 51.999998,98.848147 L 40.999998,98.848147 L 29.999998,98.848147 L 29.999998,99.848147 L 29.999998,100.84814 L 40.999998,100.84814 L 51.999998,100.84814 L 51.999998,99.848147 z M 60.499998,99.848147 L 61.118032,98.848147 L 58.059015,98.848147 L 54.999998,98.848147 L 54.999998,99.848147 L 54.999998,100.84814 L 57.440981,100.84814 L 59.881964,100.84814 L 60.499998,99.848147 z M 73.499998,99.848147 L 74.118032,98.848147 L 70.059015,98.848147 L 65.999998,98.848147 L 65.999998,99.848147 L 65.999998,100.84814 L 69.440981,100.84814 L 72.881964,100.84814 L 73.499998,99.848147 z M 83.999998,99.848147 L 83.999998,98.848147 L 81.499998,98.848147 L 78.999998,98.848147 L 78.999998,99.848147 L 78.999998,100.84814 L 81.499998,100.84814 L 83.999998,100.84814 L 83.999998,99.848147 z M 91.999998,99.848147 L 91.999998,98.848147 L 89.499998,98.848147 L 86.999998,98.848147 L 86.999998,99.848147 L 86.999998,100.84814 L 89.499998,100.84814 L 91.999998,100.84814 L 91.999998,99.848147 z M 105.49999,99.848147 L 106.11802,98.848147 L 101.49999,98.848147 L 96.881964,98.848147 L 97.499998,99.848147 L 98.118032,100.84814 L 101.49999,100.84814 L 104.88196,100.84814 L 105.49999,99.848147 z M 115.99999,99.848147 L 115.99999,98.848147 L 113.49999,98.848147 L 110.99999,98.848147 L 110.99999,99.848147 L 110.99999,100.84814 L 113.49999,100.84814 L 115.99999,100.84814 L 115.99999,99.848147 z M 124.99999,99.848147 L 124.99999,98.848147 L 122.55901,98.848147 L 120.11802,98.848147 L 119.49999,99.848147 L 118.88196,100.84814 L 121.94097,100.84814 L 124.99999,100.84814 L 124.99999,99.848147 z M 143.99999,99.848147 L 143.99999,98.848147 L 140.94097,98.848147 L 137.88196,98.848147 L 138.49999,99.848147 L 139.11802,100.84814 L 141.55901,100.84814 L 143.99999,100.84814 L 143.99999,99.848147 z M 152.99999,99.848147 L 152.99999,98.848147 L 150.49999,98.848147 L 147.99999,98.848147 L 147.99999,99.848147 L 147.99999,100.84814 L 150.49999,100.84814 L 152.99999,100.84814 L 152.99999,99.848147 z M 169.99999,99.848147 L 169.99999,98.848147 L 165.94097,98.848147 L 161.88196,98.848147 L 162.49999,99.848147 L 163.11802,100.84814 L 166.55901,100.84814 L 169.99999,100.84814 L 169.99999,99.848147 z M 195.99999,99.848147 L 195.99999,98.848147 L 184.49999,98.848147 L 172.99999,98.848147 L 172.99999,99.848147 L 172.99999,100.84814 L 184.49999,100.84814 L 195.99999,100.84814 L 195.99999,99.848147 z M 11.499998,96.848147 L 12.118032,95.848147 L 8.9999984,95.848147 L 5.8819644,95.848147 L 6.4999984,96.848147 L 7.1180324,97.848147 L 8.9999984,97.848147 L 10.881964,97.848147 L 11.499998,96.848147 z M 34.999998,96.848147 L 34.999998,95.848147 L 32.499998,95.848147 L 29.999998,95.848147 L 29.999998,96.848147 L 29.999998,97.848147 L 32.499998,97.848147 L 34.999998,97.848147 L 34.999998,96.848147 z M 51.999998,96.848147 L 51.999998,95.848147 L 49.440981,95.848147 L 46.881964,95.848147 L 47.499998,96.848147 L 48.118032,97.848147 L 50.059015,97.848147 L 51.999998,97.848147 L 51.999998,96.848147 z M 60.499998,96.848147 L 61.118032,95.848147 L 57.999998,95.848147 L 54.881964,95.848147 L 55.499998,96.848147 L 56.118032,97.848147 L 57.999998,97.848147 L 59.881964,97.848147 L 60.499998,96.848147 z M 74.999998,96.848147 L 74.999998,95.848147 L 69.440981,95.848147 L 63.881964,95.848147 L 64.499998,96.848147 L 65.118032,97.848147 L 70.059015,97.848147 L 74.999998,97.848147 L 74.999998,96.848147 z M 83.999998,96.848147 L 83.999998,95.848147 L 81.499998,95.848147 L 78.999998,95.848147 L 78.999998,96.848147 L 78.999998,97.848147 L 81.499998,97.848147 L 83.999998,97.848147 L 83.999998,96.848147 z M 91.999998,96.848147 L 91.999998,95.848147 L 89.499998,95.848147 L 86.999998,95.848147 L 86.999998,96.848147 L 86.999998,97.848147 L 89.499998,97.848147 L 91.999998,97.848147 L 91.999998,96.848147 z M 106.99999,96.848147 L 106.99999,95.848147 L 101.44097,95.848147 L 95.881964,95.848147 L 96.499998,96.848147 L 97.118032,97.848147 L 102.05901,97.848147 L 106.99999,97.848147 L 106.99999,96.848147 z M 115.99999,96.848147 L 115.99999,95.848147 L 113.49999,95.848147 L 110.99999,95.848147 L 110.99999,96.848147 L 110.99999,97.848147 L 113.49999,97.848147 L 115.99999,97.848147 L 115.99999,96.848147 z M 142.99999,96.848147 L 142.99999,95.848147 L 131.99999,95.848147 L 120.99999,95.848147 L 120.99999,96.848147 L 120.99999,97.848147 L 131.99999,97.848147 L 142.99999,97.848147 L 142.99999,96.848147 z M 152.99999,96.848147 L 152.99999,95.848147 L 150.49999,95.848147 L 147.99999,95.848147 L 147.99999,96.848147 L 147.99999,97.848147 L 150.49999,97.848147 L 152.99999,97.848147 L 152.99999,96.848147 z M 169.99999,96.848147 L 169.99999,95.848147 L 164.94097,95.848147 L 159.88196,95.848147 L 160.49999,96.848147 L 161.11802,97.848147 L 165.55901,97.848147 L 169.99999,97.848147 L 169.99999,96.848147 z M 177.99999,96.848147 L 177.99999,95.848147 L 175.44097,95.848147 L 172.88196,95.848147 L 173.49999,96.848147 L 174.11802,97.848147 L 176.05901,97.848147 L 177.99999,97.848147 L 177.99999,96.848147 z M 195.99999,96.848147 L 195.99999,95.848147 L 193.49999,95.848147 L 190.99999,95.848147 L 190.99999,96.848147 L 190.99999,97.848147 L 193.49999,97.848147 L 195.99999,97.848147 L 195.99999,96.848147 z M 10.749998,93.158821 C 9.7874984,92.907294 8.2124984,92.907294 7.2499984,93.158821 L 5.4999984,93.616144 L 8.9999984,93.616144 L 12.499998,93.616144 L 10.749998,93.158821 z M 33.730966,93.155156 C 32.757999,92.901613 31.407999,92.918287 30.730966,93.19221 L 29.499998,93.690252 L 32.499998,93.653198 L 35.499998,93.616144 L 33.730966,93.155156 z M 50.730966,93.155156 C 49.757999,92.901613 48.407999,92.918287 47.730966,93.19221 L 46.499998,93.690252 L 49.499998,93.653198 L 52.499998,93.616144 L 50.730966,93.155156 z M 59.749998,93.158821 C 58.787498,92.907294 57.212498,92.907294 56.249998,93.158821 L 54.499998,93.616144 L 57.999998,93.616144 L 61.499998,93.616144 L 59.749998,93.158821 z M 66.730966,93.155156 C 65.757999,92.901613 64.407999,92.918287 63.730966,93.19221 L 62.499998,93.690252 L 65.499998,93.653198 L 68.499998,93.616144 L 66.730966,93.155156 z M 75.749998,93.158821 C 74.787498,92.907294 73.212498,92.907294 72.249998,93.158821 L 70.499998,93.616144 L 73.999998,93.616144 L 77.499998,93.616144 L 75.749998,93.158821 z M 82.730966,93.155156 C 81.757999,92.901613 80.407999,92.918287 79.730966,93.19221 L 78.499998,93.690252 L 81.499998,93.653198 L 84.499998,93.616144 L 82.730966,93.155156 z M 90.730966,93.155156 C 89.757999,92.901613 88.407999,92.918287 87.730966,93.19221 L 86.499998,93.690252 L 89.499998,93.653198 L 92.499998,93.616144 L 90.730966,93.155156 z M 98.749998,93.158821 C 97.787498,92.907294 96.212498,92.907294 95.249998,93.158821 L 93.499998,93.616144 L 96.999998,93.616144 L 100.49999,93.616144 L 98.749998,93.158821 z M 107.74999,93.158821 C 106.78749,92.907294 105.21249,92.907294 104.24999,93.158821 L 102.49999,93.616144 L 105.99999,93.616144 L 109.49999,93.616144 L 107.74999,93.158821 z M 114.73096,93.155156 C 113.75799,92.901613 112.40799,92.918287 111.73096,93.19221 L 110.49999,93.690252 L 113.49999,93.653198 L 116.49999,93.616144 L 114.73096,93.155156 z M 137.24999,93.110905 C 134.36249,92.908903 129.63749,92.908903 126.74999,93.110905 L 121.49999,93.478182 L 131.99999,93.478182 L 142.49999,93.478182 L 137.24999,93.110905 z M 151.73096,93.155156 C 150.75799,92.901613 149.40799,92.918287 148.73096,93.19221 L 147.49999,93.690252 L 150.49999,93.653198 L 153.49999,93.616144 L 151.73096,93.155156 z M 167.24999,93.124751 C 165.46249,92.902925 162.53749,92.902925 160.74999,93.124751 L 157.49999,93.528073 L 163.99999,93.528073 L 170.49999,93.528073 L 167.24999,93.124751 z M 176.73096,93.155156 C 175.75799,92.901613 174.40799,92.918287 173.73096,93.19221 L 172.49999,93.690252 L 175.49999,93.653198 L 178.49999,93.616144 L 176.73096,93.155156 z M 194.73096,93.155156 C 193.75799,92.901613 192.40799,92.918287 191.73096,93.19221 L 190.49999,93.690252 L 193.49999,93.653198 L 196.49999,93.616144 L 194.73096,93.155156 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 10.749998,90.158821 C 9.7874984,89.907294 8.2124984,89.907294 7.2499984,90.158821 L 5.4999984,90.616144 L 8.9999984,90.616144 L 12.499998,90.616144 L 10.749998,90.158821 z M 33.730966,90.155156 C 32.757999,89.901613 31.407999,89.918287 30.730966,90.19221 L 29.499998,90.690252 L 32.499998,90.653198 L 35.499998,90.616144 L 33.730966,90.155156 z M 50.730966,90.155156 C 49.757999,89.901613 48.407999,89.918287 47.730966,90.19221 L 46.499998,90.690252 L 49.499998,90.653198 L 52.499998,90.616144 L 50.730966,90.155156 z M 64.249998,90.124751 C 62.462498,89.902925 59.537498,89.902925 57.749998,90.124751 L 54.499998,90.528073 L 60.999998,90.528073 L 67.499998,90.528073 L 64.249998,90.124751 z M 81.767907,90.133621 C 80.265257,89.905447 77.565257,89.900854 75.767907,90.123416 L 72.499998,90.528073 L 78.499998,90.538278 L 84.499998,90.548483 L 81.767907,90.133621 z M 96.249998,90.124751 C 94.462498,89.902925 91.537498,89.902925 89.749998,90.124751 L 86.499998,90.528073 L 92.999998,90.528073 L 99.499998,90.528073 L 96.249998,90.124751 z M 113.24999,90.124751 C 111.46249,89.902925 108.53749,89.902925 106.74999,90.124751 L 103.49999,90.528073 L 109.99999,90.528073 L 116.49999,90.528073 L 113.24999,90.124751 z M 127.74999,90.158821 C 126.78749,89.907294 125.21249,89.907294 124.24999,90.158821 L 122.49999,90.616144 L 125.99999,90.616144 L 129.49999,90.616144 L 127.74999,90.158821 z M 139.74999,90.158821 C 138.78749,89.907294 137.21249,89.907294 136.24999,90.158821 L 134.49999,90.616144 L 137.99999,90.616144 L 141.49999,90.616144 L 139.74999,90.158821 z M 151.73096,90.155156 C 150.75799,89.901613 149.40799,89.918287 148.73096,90.19221 L 147.49999,90.690252 L 150.49999,90.653198 L 153.49999,90.616144 L 151.73096,90.155156 z M 160.74999,90.158821 C 159.78749,89.907294 158.21249,89.907294 157.24999,90.158821 L 155.49999,90.616144 L 158.99999,90.616144 L 162.49999,90.616144 L 160.74999,90.158821 z M 168.73096,90.155156 C 167.75799,89.901613 166.40799,89.918287 165.73096,90.19221 L 164.49999,90.690252 L 167.49999,90.653198 L 170.49999,90.616144 L 168.73096,90.155156 z M 176.73096,90.155156 C 175.75799,89.901613 174.40799,89.918287 173.73096,90.19221 L 172.49999,90.690252 L 175.49999,90.653198 L 178.49999,90.616144 L 176.73096,90.155156 z M 194.73096,90.155156 C 193.75799,89.901613 192.40799,89.918287 191.73096,90.19221 L 190.49999,90.690252 L 193.49999,90.653198 L 196.49999,90.616144 L 194.73096,90.155156 z M 10.749998,87.158821 C 9.7874984,86.907294 8.2124984,86.907294 7.2499984,87.158821 L 5.4999984,87.616144 L 8.9999984,87.616144 L 12.499998,87.616144 L 10.749998,87.158821 z M 33.730966,87.155156 C 32.757999,86.901613 31.407999,86.918287 30.730966,87.19221 L 29.499998,87.690252 L 32.499998,87.653198 L 35.499998,87.616144 L 33.730966,87.155156 z M 50.730966,87.155156 C 49.757999,86.901613 48.407999,86.918287 47.730966,87.19221 L 46.499998,87.690252 L 49.499998,87.653198 L 52.499998,87.616144 L 50.730966,87.155156 z M 63.767907,87.133621 C 62.265257,86.905447 59.565257,86.900854 57.767907,87.123416 L 54.499998,87.528073 L 60.499998,87.538278 L 66.499998,87.548483 L 63.767907,87.133621 z M 81.749998,87.131893 C 80.237498,86.902768 77.762498,86.902768 76.249998,87.131893 L 73.499998,87.548483 L 78.999998,87.548483 L 84.499998,87.548483 L 81.749998,87.131893 z M 94.749998,87.131893 C 93.237498,86.902768 90.762498,86.902768 89.249998,87.131893 L 86.499998,87.548483 L 91.999998,87.548483 L 97.499998,87.548483 L 94.749998,87.131893 z M 113.74999,87.131893 C 112.23749,86.902768 109.76249,86.902768 108.24999,87.131893 L 105.49999,87.548483 L 110.99999,87.548483 L 116.49999,87.548483 L 113.74999,87.131893 z M 128.74999,87.158821 C 127.78749,86.907294 126.21249,86.907294 125.24999,87.158821 L 123.49999,87.616144 L 126.99999,87.616144 L 130.49999,87.616144 L 128.74999,87.158821 z M 137.74999,87.158821 C 136.78749,86.907294 135.21249,86.907294 134.24999,87.158821 L 132.49999,87.616144 L 135.99999,87.616144 L 139.49999,87.616144 L 137.74999,87.158821 z M 157.24999,87.124751 C 155.46249,86.902925 152.53749,86.902925 150.74999,87.124751 L 147.49999,87.528073 L 153.99999,87.528073 L 160.49999,87.528073 L 157.24999,87.124751 z M 168.73096,87.155156 C 167.75799,86.901613 166.40799,86.918287 165.73096,87.19221 L 164.49999,87.690252 L 167.49999,87.653198 L 170.49999,87.616144 L 168.73096,87.155156 z M 176.73096,87.155156 C 175.75799,86.901613 174.40799,86.918287 173.73096,87.19221 L 172.49999,87.690252 L 175.49999,87.653198 L 178.49999,87.616144 L 176.73096,87.155156 z M 194.73096,87.155156 C 193.75799,86.901613 192.40799,86.918287 191.73096,87.19221 L 190.49999,87.690252 L 193.49999,87.653198 L 196.49999,87.616144 L 194.73096,87.155156 z M 10.749998,84.158821 C 9.7874984,83.907294 8.2124984,83.907294 7.2499984,84.158821 L 5.4999984,84.616144 L 8.9999984,84.616144 L 12.499998,84.616144 L 10.749998,84.158821 z M 33.730966,84.155156 C 32.757999,83.901613 31.407999,83.918287 30.730966,84.19221 L 29.499998,84.690252 L 32.499998,84.653198 L 35.499998,84.616144 L 33.730966,84.155156 z M 50.730966,84.155156 C 49.757999,83.901613 48.407999,83.918287 47.730966,84.19221 L 46.499998,84.690252 L 49.499998,84.653198 L 52.499998,84.616144 L 50.730966,84.155156 z M 62.263748,84.144216 C 61.03381,83.906854 58.78381,83.900711 57.263748,84.130566 L 54.499998,84.548483 L 59.499998,84.562133 L 64.499998,84.575783 L 62.263748,84.144216 z M 82.263748,84.144216 C 81.03381,83.906854 78.78381,83.900711 77.263748,84.130566 L 74.499998,84.548483 L 79.499998,84.562133 L 84.499998,84.575783 L 82.263748,84.144216 z M 94.263748,84.144216 C 93.03381,83.906854 90.78381,83.900711 89.263748,84.130566 L 86.499998,84.548483 L 91.499998,84.562133 L 96.499998,84.575783 L 94.263748,84.144216 z M 114.26374,84.144216 C 113.0338,83.906854 110.7838,83.900711 109.26374,84.130566 L 106.49999,84.548483 L 111.49999,84.562133 L 116.49999,84.575783 L 114.26374,84.144216 z M 135.24999,84.124751 C 133.46249,83.902925 130.53749,83.902925 128.74999,84.124751 L 125.49999,84.528073 L 131.99999,84.528073 L 138.49999,84.528073 L 135.24999,84.124751 z M 155.74999,84.131893 C 154.23749,83.902768 151.76249,83.902768 150.24999,84.131893 L 147.49999,84.548483 L 152.99999,84.548483 L 158.49999,84.548483 L 155.74999,84.131893 z M 168.73096,84.155156 C 167.75799,83.901613 166.40799,83.918287 165.73096,84.19221 L 164.49999,84.690252 L 167.49999,84.653198 L 170.49999,84.616144 L 168.73096,84.155156 z M 176.73096,84.155156 C 175.75799,83.901613 174.40799,83.918287 173.73096,84.19221 L 172.49999,84.690252 L 175.49999,84.653198 L 178.49999,84.616144 L 176.73096,84.155156 z M 194.73096,84.155156 C 193.75799,83.901613 192.40799,83.918287 191.73096,84.19221 L 190.49999,84.690252 L 193.49999,84.653198 L 196.49999,84.616144 L 194.73096,84.155156 z M 26.499998,80.848147 L 25.881964,79.848147 L 16.499998,79.848147 L 7.1180324,79.848147 L 6.4999984,80.848147 L 5.8819644,81.848147 L 16.499998,81.848147 L 27.118032,81.848147 L 26.499998,80.848147 z M 51.999998,80.848147 L 51.999998,79.848147 L 40.999998,79.848147 L 29.999998,79.848147 L 29.999998,80.848147 L 29.999998,81.848147 L 40.999998,81.848147 L 51.999998,81.848147 L 51.999998,80.848147 z M 62.499998,80.848147 L 61.881964,79.848147 L 58.999998,79.848147 L 56.118032,79.848147 L 55.499998,80.848147 L 54.881964,81.848147 L 58.999998,81.848147 L 63.118032,81.848147 L 62.499998,80.848147 z M 83.999998,80.848147 L 83.999998,79.848147 L 81.059015,79.848147 L 78.118032,79.848147 L 77.499998,80.848147 L 76.881964,81.848147 L 80.440981,81.848147 L 83.999998,81.848147 L 83.999998,80.848147 z M 93.499998,80.848147 L 92.881964,79.848147 L 90.499998,79.848147 L 88.118032,79.848147 L 87.499998,80.848147 L 86.881964,81.848147 L 90.499998,81.848147 L 94.118032,81.848147 L 93.499998,80.848147 z M 115.49999,80.848147 L 114.88196,79.848147 L 111.94097,79.848147 L 108.99999,79.848147 L 108.99999,80.848147 L 108.99999,81.848147 L 112.55901,81.848147 L 116.11802,81.848147 L 115.49999,80.848147 z M 136.49999,80.848147 L 135.88196,79.848147 L 131.99999,79.848147 L 128.11802,79.848147 L 127.49999,80.848147 L 126.88196,81.848147 L 131.99999,81.848147 L 137.11802,81.848147 L 136.49999,80.848147 z M 155.49999,80.848147 L 154.88196,79.848147 L 151.44097,79.848147 L 147.99999,79.848147 L 147.99999,80.848147 L 147.99999,81.848147 L 152.05901,81.848147 L 156.11802,81.848147 L 155.49999,80.848147 z M 169.99999,80.848147 L 169.99999,79.848147 L 167.49999,79.848147 L 164.99999,79.848147 L 164.99999,80.848147 L 164.99999,81.848147 L 167.49999,81.848147 L 169.99999,81.848147 L 169.99999,80.848147 z M 195.99999,80.848147 L 195.99999,79.848147 L 185.05901,79.848147 L 174.11802,79.848147 L 173.49999,80.848147 L 172.88196,81.848147 L 184.44097,81.848147 L 195.99999,81.848147 L 195.99999,80.848147 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 26.999998,77.848147 L 26.999998,76.848147 L 18.249998,76.86346 L 9.4999984,76.878773 L 7.9999984,77.848147 L 6.4999984,78.817521 L 16.749998,78.832834 L 26.999998,78.848147 L 26.999998,77.848147 z M 50.999998,77.848147 L 49.499998,76.878773 L 40.809015,76.86346 L 32.118032,76.848147 L 31.499998,77.848147 L 30.881964,78.848147 L 41.690981,78.832834 L 52.499998,78.817521 L 50.999998,77.848147 z M 60.999998,77.848147 L 60.999998,76.848147 L 58.559015,76.848147 L 56.118032,76.848147 L 55.499998,77.848147 L 54.881964,78.848147 L 57.940981,78.848147 L 60.999998,78.848147 L 60.999998,77.848147 z M 83.999998,77.848147 L 83.999998,76.848147 L 81.559015,76.848147 L 79.118032,76.848147 L 78.499998,77.848147 L 77.881964,78.848147 L 80.940981,78.848147 L 83.999998,78.848147 L 83.999998,77.848147 z M 92.499998,77.848147 L 91.881964,76.848147 L 89.440981,76.848147 L 86.999998,76.848147 L 86.999998,77.848147 L 86.999998,78.848147 L 90.059015,78.848147 L 93.118032,78.848147 L 92.499998,77.848147 z M 115.99999,77.848147 L 115.99999,76.848147 L 113.55901,76.848147 L 111.11802,76.848147 L 110.49999,77.848147 L 109.88196,78.848147 L 112.94097,78.848147 L 115.99999,78.848147 L 115.99999,77.848147 z M 135.49999,77.848147 L 134.88196,76.848147 L 131.44097,76.848147 L 127.99999,76.848147 L 127.99999,77.848147 L 127.99999,78.848147 L 132.05901,78.848147 L 136.11802,78.848147 L 135.49999,77.848147 z M 153.49999,77.848147 L 152.88196,76.848147 L 150.44097,76.848147 L 147.99999,76.848147 L 147.99999,77.848147 L 147.99999,78.848147 L 151.05901,78.848147 L 154.11802,78.848147 L 153.49999,77.848147 z M 169.99999,77.848147 L 169.99999,76.848147 L 167.49999,76.848147 L 164.99999,76.848147 L 164.99999,77.848147 L 164.99999,78.848147 L 167.49999,78.848147 L 169.99999,78.848147 L 169.99999,77.848147 z M 193.99999,77.848147 L 192.49999,76.878773 L 182.74999,76.86346 L 172.99999,76.848147 L 172.99999,77.848147 L 172.99999,78.848147 L 184.24999,78.832834 L 195.49999,78.817521 L 193.99999,77.848147 z M 52.999998,63.848147 L 52.999998,62.848147 L 50.499998,62.848147 L 47.999998,62.848147 L 47.999998,63.848147 L 47.999998,64.848147 L 50.499998,64.848147 L 52.999998,64.848147 L 52.999998,63.848147 z M 64.999998,63.848147 L 64.999998,62.848147 L 62.499998,62.848147 L 59.999998,62.848147 L 59.999998,63.848147 L 59.999998,64.848147 L 62.499998,64.848147 L 64.999998,64.848147 L 64.999998,63.848147 z M 76.999998,63.848147 L 76.999998,62.848147 L 74.499998,62.848147 L 71.999998,62.848147 L 71.999998,63.848147 L 71.999998,64.848147 L 74.499998,64.848147 L 76.999998,64.848147 L 76.999998,63.848147 z M 84.999998,63.848147 L 84.999998,62.848147 L 82.559015,62.848147 L 80.118032,62.848147 L 79.499998,63.848147 L 78.881964,64.848147 L 81.940981,64.848147 L 84.999998,64.848147 L 84.999998,63.848147 z M 106.49999,63.848147 L 105.88196,62.848147 L 103.44097,62.848147 L 100.99999,62.848147 L 100.99999,63.848147 L 100.99999,64.848147 L 104.05901,64.848147 L 107.11802,64.848147 L 106.49999,63.848147 z M 122.99999,63.848147 L 122.99999,62.848147 L 120.49999,62.848147 L 117.99999,62.848147 L 117.99999,63.848147 L 117.99999,64.848147 L 120.49999,64.848147 L 122.99999,64.848147 L 122.99999,63.848147 z M 139.49999,63.848147 L 138.88196,62.848147 L 136.99999,62.848147 L 135.11802,62.848147 L 134.49999,63.848147 L 133.88196,64.848147 L 136.99999,64.848147 L 140.11802,64.848147 L 139.49999,63.848147 z M 156.99999,63.848147 L 156.99999,62.848147 L 154.49999,62.848147 L 151.99999,62.848147 L 151.99999,63.848147 L 151.99999,64.848147 L 154.49999,64.848147 L 156.99999,64.848147 L 156.99999,63.848147 z M 52.999998,60.848147 L 52.999998,59.848147 L 50.499998,59.848147 L 47.999998,59.848147 L 47.999998,60.848147 L 47.999998,61.848147 L 50.499998,61.848147 L 52.999998,61.848147 L 52.999998,60.848147 z M 66.499998,60.848147 L 67.118032,59.848147 L 62.499998,59.848147 L 57.881964,59.848147 L 58.499998,60.848147 L 59.118032,61.848147 L 62.499998,61.848147 L 65.881964,61.848147 L 66.499998,60.848147 z M 76.999998,60.848147 L 76.999998,59.848147 L 74.499998,59.848147 L 71.999998,59.848147 L 71.999998,60.848147 L 71.999998,61.848147 L 74.499998,61.848147 L 76.999998,61.848147 L 76.999998,60.848147 z M 85.999998,60.848147 L 85.999998,59.848147 L 83.559015,59.848147 L 81.118032,59.848147 L 80.499998,60.848147 L 79.881964,61.848147 L 82.940981,61.848147 L 85.999998,61.848147 L 85.999998,60.848147 z M 105.49999,60.848147 L 104.88196,59.848147 L 101.88196,59.848147 L 98.881964,59.848147 L 99.499998,60.848147 L 100.11803,61.848147 L 103.11802,61.848147 L 106.11802,61.848147 L 105.49999,60.848147 z M 122.99999,60.848147 L 122.99999,59.848147 L 120.49999,59.848147 L 117.99999,59.848147 L 117.99999,60.848147 L 117.99999,61.848147 L 120.49999,61.848147 L 122.99999,61.848147 L 122.99999,60.848147 z M 139.99999,60.848147 L 139.99999,59.848147 L 136.94097,59.848147 L 133.88196,59.848147 L 134.49999,60.848147 L 135.11802,61.848147 L 137.55901,61.848147 L 139.99999,61.848147 L 139.99999,60.848147 z M 156.99999,60.848147 L 156.99999,59.848147 L 154.49999,59.848147 L 151.99999,59.848147 L 151.99999,60.848147 L 151.99999,61.848147 L 154.49999,61.848147 L 156.99999,61.848147 L 156.99999,60.848147 z M 52.999998,57.848147 L 52.999998,56.848147 L 50.499998,56.848147 L 47.999998,56.848147 L 47.999998,57.848147 L 47.999998,58.848147 L 50.499998,58.848147 L 52.999998,58.848147 L 52.999998,57.848147 z M 67.999998,57.848147 L 67.999998,56.848147 L 62.440981,56.848147 L 56.881964,56.848147 L 57.499998,57.848147 L 58.118032,58.848147 L 63.059015,58.848147 L 67.999998,58.848147 L 67.999998,57.848147 z M 76.999998,57.848147 L 76.999998,56.848147 L 74.499998,56.848147 L 71.999998,56.848147 L 71.999998,57.848147 L 71.999998,58.848147 L 74.499998,58.848147 L 76.999998,58.848147 L 76.999998,57.848147 z M 103.99999,57.848147 L 103.99999,56.848147 L 92.999998,56.848147 L 81.999998,56.848147 L 81.999998,57.848147 L 81.999998,58.848147 L 92.999998,58.848147 L 103.99999,58.848147 L 103.99999,57.848147 z M 122.99999,57.848147 L 122.99999,56.848147 L 120.49999,56.848147 L 117.99999,56.848147 L 117.99999,57.848147 L 117.99999,58.848147 L 120.49999,58.848147 L 122.99999,58.848147 L 122.99999,57.848147 z M 139.49999,57.848147 L 140.11802,56.848147 L 136.99999,56.848147 L 133.88196,56.848147 L 134.49999,57.848147 L 135.11802,58.848147 L 136.99999,58.848147 L 138.88196,58.848147 L 139.49999,57.848147 z M 156.99999,57.848147 L 156.99999,56.848147 L 154.49999,56.848147 L 151.99999,56.848147 L 151.99999,57.848147 L 151.99999,58.848147 L 154.49999,58.848147 L 156.99999,58.848147 L 156.99999,57.848147 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 76.999998,54.848147 L 76.999998,53.848147 L 74.249998,53.947827 L 71.499998,54.047507 L 73.999998,54.848147 C 75.374998,55.288499 76.612498,55.693643 76.749998,55.748467 C 76.887498,55.803291 76.999998,55.398147 76.999998,54.848147 z M 102.99999,54.848147 L 102.99999,53.848147 L 92.749998,54.041813 L 82.499998,54.23548 L 92.499998,54.848147 C 97.999998,55.185114 102.61249,55.547964 102.74999,55.654481 C 102.88749,55.760997 102.99999,55.398147 102.99999,54.848147 z M 122.99999,54.848147 L 122.99999,53.848147 L 120.24999,53.947827 L 117.49999,54.047507 L 119.99999,54.848147 C 121.37499,55.288499 122.61249,55.693643 122.74999,55.748467 C 122.88749,55.803291 122.99999,55.398147 122.99999,54.848147 z M 156.99999,54.848147 L 156.99999,53.848147 L 154.24999,53.947827 L 151.49999,54.047507 L 153.99999,54.848147 C 155.37499,55.288499 156.61249,55.693643 156.74999,55.748467 C 156.88749,55.803291 156.99999,55.398147 156.99999,54.848147 z M 51.730966,54.155156 C 50.757999,53.901613 49.407999,53.918287 48.730966,54.19221 L 47.499998,54.690252 L 50.499998,54.653198 L 53.499998,54.616144 L 51.730966,54.155156 z M 59.749998,54.158821 C 58.787498,53.907294 57.212498,53.907294 56.249998,54.158821 L 54.499998,54.616144 L 57.999998,54.616144 L 61.499998,54.616144 L 59.749998,54.158821 z M 68.749998,54.158821 C 67.787498,53.907294 66.212498,53.907294 65.249998,54.158821 L 63.499998,54.616144 L 66.999998,54.616144 L 70.499998,54.616144 L 68.749998,54.158821 z M 138.74999,54.158821 C 137.78749,53.907294 136.21249,53.907294 135.24999,54.158821 L 133.49999,54.616144 L 136.99999,54.616144 L 140.49999,54.616144 L 138.74999,54.158821 z M 57.249998,51.124751 C 55.462498,50.902925 52.537498,50.902925 50.749998,51.124751 L 47.499998,51.528073 L 53.999998,51.528073 L 60.499998,51.528073 L 57.249998,51.124751 z M 74.249998,51.124751 C 72.462498,50.902925 69.537498,50.902925 67.749998,51.124751 L 64.499998,51.528073 L 70.999998,51.528073 L 77.499998,51.528073 L 74.249998,51.124751 z M 88.749998,51.158821 C 87.787498,50.907294 86.212498,50.907294 85.249998,51.158821 L 83.499998,51.616144 L 86.999998,51.616144 L 90.499998,51.616144 L 88.749998,51.158821 z M 100.74999,51.158821 C 99.787498,50.907294 98.212498,50.907294 97.249998,51.158821 L 95.499998,51.616144 L 98.999998,51.616144 L 102.49999,51.616144 L 100.74999,51.158821 z M 121.73096,51.155156 C 120.75799,50.901613 119.40799,50.918287 118.73096,51.19221 L 117.49999,51.690252 L 120.49999,51.653198 L 123.49999,51.616144 L 121.73096,51.155156 z M 151.2108,51.106733 C 147.75175,50.910903 142.35175,50.91252 139.2108,51.110328 L 133.49999,51.469978 L 145.49999,51.466383 L 157.49999,51.462788 L 151.2108,51.106733 z M 55.749998,48.131893 C 54.237498,47.902768 51.762498,47.902768 50.249998,48.131893 L 47.499998,48.548483 L 52.999998,48.548483 L 58.499998,48.548483 L 55.749998,48.131893 z M 74.749998,48.131893 C 73.237498,47.902768 70.762498,47.902768 69.249998,48.131893 L 66.499998,48.548483 L 71.999998,48.548483 L 77.499998,48.548483 L 74.749998,48.131893 z M 89.749998,48.158821 C 88.787498,47.907294 87.212498,47.907294 86.249998,48.158821 L 84.499998,48.616144 L 87.999998,48.616144 L 91.499998,48.616144 L 89.749998,48.158821 z M 98.730966,48.155156 C 97.757999,47.901613 96.407999,47.918287 95.730966,48.19221 L 94.499998,48.690252 L 97.499998,48.653198 L 100.49999,48.616144 L 98.730966,48.155156 z M 121.73096,48.155156 C 120.75799,47.901613 119.40799,47.918287 118.73096,48.19221 L 117.49999,48.690252 L 120.49999,48.653198 L 123.49999,48.616144 L 121.73096,48.155156 z M 151.2108,48.106733 C 147.75175,47.910903 142.35175,47.91252 139.2108,48.110328 L 133.49999,48.469978 L 145.49999,48.466383 L 157.49999,48.462788 L 151.2108,48.106733 z M 55.263748,45.144216 C 54.03381,44.906854 51.78381,44.900711 50.263748,45.130566 L 47.499998,45.548483 L 52.499998,45.562133 L 57.499998,45.575783 L 55.263748,45.144216 z M 75.263748,45.144216 C 74.03381,44.906854 71.78381,44.900711 70.263748,45.130566 L 67.499998,45.548483 L 72.499998,45.562133 L 77.499998,45.575783 L 75.263748,45.144216 z M 96.249998,45.124751 C 94.462498,44.902925 91.537498,44.902925 89.749998,45.124751 L 86.499998,45.528073 L 92.999998,45.528073 L 99.499998,45.528073 L 96.249998,45.124751 z M 121.73096,45.155156 C 120.75799,44.901613 119.40799,44.918287 118.73096,45.19221 L 117.49999,45.690252 L 120.49999,45.653198 L 123.49999,45.616144 L 121.73096,45.155156 z M 138.74999,45.158821 C 137.78749,44.907294 136.21249,44.907294 135.24999,45.158821 L 133.49999,45.616144 L 136.99999,45.616144 L 140.49999,45.616144 L 138.74999,45.158821 z M 155.73096,45.155156 C 154.75799,44.901613 153.40799,44.918287 152.73096,45.19221 L 151.49999,45.690252 L 154.49999,45.653198 L 157.49999,45.616144 L 155.73096,45.155156 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z M 53.761657,42.161067 C 52.80557,41.910774 51.00557,41.901693 49.761657,42.140886 L 47.499998,42.575783 L 51.499998,42.595964 L 55.499998,42.616144 L 53.761657,42.161067 z M 75.761657,42.161067 C 74.80557,41.910774 73.00557,41.901693 71.761657,42.140886 L 69.499998,42.575783 L 73.499998,42.595964 L 77.499998,42.616144 L 75.761657,42.161067 z M 95.749998,42.131893 C 94.237498,41.902768 91.762498,41.902768 90.249998,42.131893 L 87.499998,42.548483 L 92.999998,42.548483 L 98.499998,42.548483 L 95.749998,42.131893 z M 125.74999,42.109159 C 122.58749,41.910708 117.41249,41.910708 114.24999,42.109159 L 108.49999,42.469978 L 119.99999,42.469978 L 131.49999,42.469978 L 125.74999,42.109159 z M 138.74999,42.158821 C 137.78749,41.907294 136.21249,41.907294 135.24999,42.158821 L 133.49999,42.616144 L 136.99999,42.616144 L 140.49999,42.616144 L 138.74999,42.158821 z M 155.73096,42.155156 C 154.75799,41.901613 153.40799,41.918287 152.73096,42.19221 L 151.49999,42.690252 L 154.49999,42.653198 L 157.49999,42.616144 L 155.73096,42.155156 z M 52.749998,39.158822 C 51.787498,38.907294 50.212498,38.907294 49.249998,39.158822 L 47.499998,39.616144 L 50.999998,39.616144 L 54.499998,39.616144 L 52.749998,39.158822 z M 75.749998,39.158822 C 74.787498,38.907294 73.212498,38.907294 72.249998,39.158822 L 70.499998,39.616144 L 73.999998,39.616144 L 77.499998,39.616144 L 75.749998,39.158822 z M 95.249998,39.142414 C 94.012498,38.904061 91.987498,38.904061 90.749998,39.142414 L 88.499998,39.575783 L 92.999998,39.575783 L 97.499998,39.575783 L 95.249998,39.142414 z M 125.74999,39.109159 C 122.58749,38.910708 117.41249,38.910708 114.24999,39.109159 L 108.49999,39.469978 L 119.99999,39.469978 L 131.49999,39.469978 L 125.74999,39.109159 z M 138.74999,39.158822 C 137.78749,38.907294 136.21249,38.907294 135.24999,39.158822 L 133.49999,39.616144 L 136.99999,39.616144 L 140.49999,39.616144 L 138.74999,39.158822 z M 155.73096,39.155156 C 154.75799,38.901613 153.40799,38.918287 152.73096,39.19221 L 151.49999,39.690252 L 154.49999,39.653198 L 157.49999,39.616144 L 155.73096,39.155156 z"
+ style="fill:#4e48a7" />
+ <path
+ id="path2622"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 26.999998,102.84814 L 26.999998,101.84814 L 16.940981,101.84814 L 6.8819644,101.84814 L 7.4999984,102.84814 L 8.1180324,103.84814 L 17.559015,103.84814 L 26.999998,103.84814 L 26.999998,102.84814 z M 51.499998,102.84814 L 52.118032,101.84814 L 41.499998,101.84814 L 30.881964,101.84814 L 31.499998,102.84814 L 32.118032,103.84814 L 41.499998,103.84814 L 50.881964,103.84814 L 51.499998,102.84814 z M 60.999998,102.84814 L 60.999998,101.84814 L 57.999998,101.84814 L 54.999998,101.84814 L 54.999998,102.84814 L 54.999998,103.84814 L 57.999998,103.84814 L 60.999998,103.84814 L 60.999998,102.84814 z M 72.499998,102.84814 L 73.118032,101.84814 L 70.059015,101.84814 L 66.999998,101.84814 L 66.999998,102.84814 L 66.999998,103.84814 L 69.440981,103.84814 L 71.881964,103.84814 L 72.499998,102.84814 z M 83.999998,102.84814 L 83.999998,101.84814 L 81.499998,101.84814 L 78.999998,101.84814 L 78.999998,102.84814 L 78.999998,103.84814 L 81.499998,103.84814 L 83.999998,103.84814 L 83.999998,102.84814 z M 91.999998,102.84814 L 91.999998,101.84814 L 89.499998,101.84814 L 86.999998,101.84814 L 86.999998,102.84814 L 86.999998,103.84814 L 89.499998,103.84814 L 91.999998,103.84814 L 91.999998,102.84814 z M 103.99999,102.84814 L 103.99999,101.84814 L 101.49999,101.84814 L 98.999998,101.84814 L 98.999998,102.84814 L 98.999998,103.84814 L 101.49999,103.84814 L 103.99999,103.84814 L 103.99999,102.84814 z M 115.99999,102.84814 L 115.99999,101.84814 L 112.99999,101.84814 L 109.99999,101.84814 L 109.99999,102.84814 L 109.99999,103.84814 L 112.99999,103.84814 L 115.99999,103.84814 L 115.99999,102.84814 z M 123.99999,102.84814 L 123.99999,101.84814 L 120.99999,101.84814 L 117.99999,101.84814 L 117.99999,102.84814 L 117.99999,103.84814 L 120.99999,103.84814 L 123.99999,103.84814 L 123.99999,102.84814 z M 146.27137,102.58332 L 146.75673,101.31849 L 142.88393,101.68782 L 139.01113,102.05715 L 139.56458,102.95265 L 140.11802,103.84814 L 142.95202,103.84814 L 145.78601,103.84814 L 146.27137,102.58332 z M 152.99999,102.84814 L 152.99999,101.84814 L 150.49999,101.84814 L 147.99999,101.84814 L 147.99999,102.84814 L 147.99999,103.84814 L 150.49999,103.84814 L 152.99999,103.84814 L 152.99999,102.84814 z M 170.99999,102.84814 L 170.99999,101.84814 L 167.44097,101.84814 L 163.88196,101.84814 L 164.49999,102.84814 L 165.11802,103.84814 L 168.05901,103.84814 L 170.99999,103.84814 L 170.99999,102.84814 z M 194.49999,102.84814 L 195.11802,101.84814 L 184.05901,101.84814 L 172.99999,101.84814 L 172.99999,102.84814 L 172.99999,103.84814 L 183.44097,103.84814 L 193.88196,103.84814 L 194.49999,102.84814 z M 26.999998,99.848147 L 26.999998,98.848147 L 16.499998,98.848147 L 5.9999984,98.848147 L 5.9999984,99.848147 L 5.9999984,100.84814 L 16.499998,100.84814 L 26.999998,100.84814 L 26.999998,99.848147 z M 52.999998,99.848147 L 52.999998,98.848147 L 41.499998,98.848147 L 29.999998,98.848147 L 29.999998,99.848147 L 29.999998,100.84814 L 41.499998,100.84814 L 52.999998,100.84814 L 52.999998,99.848147 z M 60.999998,99.848147 L 60.999998,98.848147 L 57.999998,98.848147 L 54.999998,98.848147 L 54.999998,99.848147 L 54.999998,100.84814 L 57.999998,100.84814 L 60.999998,100.84814 L 60.999998,99.848147 z M 73.999998,99.848147 L 73.999998,98.848147 L 69.440981,98.848147 L 64.881964,98.848147 L 65.499998,99.848147 L 66.118032,100.84814 L 70.059015,100.84814 L 73.999998,100.84814 L 73.999998,99.848147 z M 83.999998,99.848147 L 83.999998,98.848147 L 81.499998,98.848147 L 78.999998,98.848147 L 78.999998,99.848147 L 78.999998,100.84814 L 81.499998,100.84814 L 83.999998,100.84814 L 83.999998,99.848147 z M 92.499998,99.848147 L 93.118032,98.848147 L 90.059015,98.848147 L 86.999998,98.848147 L 86.999998,99.848147 L 86.999998,100.84814 L 89.440981,100.84814 L 91.881964,100.84814 L 92.499998,99.848147 z M 105.49999,99.848147 L 106.11802,98.848147 L 101.49999,98.848147 L 96.881964,98.848147 L 97.499998,99.848147 L 98.118032,100.84814 L 101.49999,100.84814 L 104.88196,100.84814 L 105.49999,99.848147 z M 115.99999,99.848147 L 115.99999,98.848147 L 112.99999,98.848147 L 109.99999,98.848147 L 109.99999,99.848147 L 109.99999,100.84814 L 112.99999,100.84814 L 115.99999,100.84814 L 115.99999,99.848147 z M 125.49999,99.848147 L 126.11802,98.848147 L 122.55901,98.848147 L 118.99999,98.848147 L 118.99999,99.848147 L 118.99999,100.84814 L 121.94097,100.84814 L 124.88196,100.84814 L 125.49999,99.848147 z M 144.49999,99.848147 L 143.88196,98.848147 L 140.94097,98.848147 L 137.99999,98.848147 L 137.99999,99.848147 L 137.99999,100.84814 L 141.55901,100.84814 L 145.11802,100.84814 L 144.49999,99.848147 z M 152.99999,99.848147 L 152.99999,98.848147 L 150.49999,98.848147 L 147.99999,98.848147 L 147.99999,99.848147 L 147.99999,100.84814 L 150.49999,100.84814 L 152.99999,100.84814 L 152.99999,99.848147 z M 170.99999,99.848147 L 170.99999,98.848147 L 166.49999,98.848147 L 161.99999,98.848147 L 161.99999,99.848147 L 161.99999,100.84814 L 166.49999,100.84814 L 170.99999,100.84814 L 170.99999,99.848147 z M 195.99999,99.848147 L 195.99999,98.848147 L 184.49999,98.848147 L 172.99999,98.848147 L 172.99999,99.848147 L 172.99999,100.84814 L 184.49999,100.84814 L 195.99999,100.84814 L 195.99999,99.848147 z M 11.999998,96.848147 L 11.999998,95.848147 L 8.9999984,95.848147 L 5.9999984,95.848147 L 5.9999984,96.848147 L 5.9999984,97.848147 L 8.9999984,97.848147 L 11.999998,97.848147 L 11.999998,96.848147 z M 34.999998,96.848147 L 34.999998,95.848147 L 32.499998,95.848147 L 29.999998,95.848147 L 29.999998,96.848147 L 29.999998,97.848147 L 32.499998,97.848147 L 34.999998,97.848147 L 34.999998,96.848147 z M 52.999998,96.848147 L 52.999998,95.848147 L 49.999998,95.848147 L 46.999998,95.848147 L 46.999998,96.848147 L 46.999998,97.848147 L 49.999998,97.848147 L 52.999998,97.848147 L 52.999998,96.848147 z M 60.999998,96.848147 L 60.999998,95.848147 L 57.999998,95.848147 L 54.999998,95.848147 L 54.999998,96.848147 L 54.999998,97.848147 L 57.999998,97.848147 L 60.999998,97.848147 L 60.999998,96.848147 z M 75.499998,96.848147 L 76.118032,95.848147 L 70.059015,95.848147 L 63.999998,95.848147 L 63.999998,96.848147 L 63.999998,97.848147 L 69.440981,97.848147 L 74.881964,97.848147 L 75.499998,96.848147 z M 83.999998,96.848147 L 83.999998,95.848147 L 81.499998,95.848147 L 78.999998,95.848147 L 78.999998,96.848147 L 78.999998,97.848147 L 81.499998,97.848147 L 83.999998,97.848147 L 83.999998,96.848147 z M 92.499998,96.848147 L 93.118032,95.848147 L 90.059015,95.848147 L 86.999998,95.848147 L 86.999998,96.848147 L 86.999998,97.848147 L 89.440981,97.848147 L 91.881964,97.848147 L 92.499998,96.848147 z M 106.99999,96.848147 L 106.99999,95.848147 L 101.49999,95.848147 L 95.999998,95.848147 L 95.999998,96.848147 L 95.999998,97.848147 L 101.49999,97.848147 L 106.99999,97.848147 L 106.99999,96.848147 z M 115.99999,96.848147 L 115.99999,95.848147 L 112.94097,95.848147 L 109.88196,95.848147 L 110.49999,96.848147 L 111.11802,97.848147 L 113.55901,97.848147 L 115.99999,97.848147 L 115.99999,96.848147 z M 142.99999,96.848147 L 142.99999,95.848147 L 131.49999,95.848147 L 119.99999,95.848147 L 119.99999,96.848147 L 119.99999,97.848147 L 131.49999,97.848147 L 142.99999,97.848147 L 142.99999,96.848147 z M 152.99999,96.848147 L 152.99999,95.848147 L 150.49999,95.848147 L 147.99999,95.848147 L 147.99999,96.848147 L 147.99999,97.848147 L 150.49999,97.848147 L 152.99999,97.848147 L 152.99999,96.848147 z M 170.49999,96.848147 L 171.11802,95.848147 L 165.55901,95.848147 L 159.99999,95.848147 L 159.99999,96.848147 L 159.99999,97.848147 L 164.94097,97.848147 L 169.88196,97.848147 L 170.49999,96.848147 z M 178.99999,96.848147 L 178.99999,95.848147 L 175.99999,95.848147 L 172.99999,95.848147 L 172.99999,96.848147 L 172.99999,97.848147 L 175.99999,97.848147 L 178.99999,97.848147 L 178.99999,96.848147 z M 195.99999,96.848147 L 195.99999,95.848147 L 192.99999,95.848147 L 189.99999,95.848147 L 189.99999,96.848147 L 189.99999,97.848147 L 192.99999,97.848147 L 195.99999,97.848147 L 195.99999,96.848147 z M 11.499998,93.848147 L 12.118032,92.848147 L 9.0590154,92.848147 L 5.9999984,92.848147 L 5.9999984,93.848147 L 5.9999984,94.848147 L 8.4409814,94.848147 L 10.881964,94.848147 L 11.499998,93.848147 z M 34.999998,93.848147 L 34.999998,92.848147 L 32.499998,92.848147 L 29.999998,92.848147 L 29.999998,93.848147 L 29.999998,94.848147 L 32.499998,94.848147 L 34.999998,94.848147 L 34.999998,93.848147 z M 52.499998,93.848147 L 53.118032,92.848147 L 50.059015,92.848147 L 46.999998,92.848147 L 46.999998,93.848147 L 46.999998,94.848147 L 49.440981,94.848147 L 51.881964,94.848147 L 52.499998,93.848147 z M 60.499998,93.848147 L 61.118032,92.848147 L 58.059015,92.848147 L 54.999998,92.848147 L 54.999998,93.848147 L 54.999998,94.848147 L 57.440981,94.848147 L 59.881964,94.848147 L 60.499998,93.848147 z M 68.999998,93.848147 L 68.999998,92.848147 L 65.440981,92.848147 L 61.881964,92.848147 L 62.499998,93.848147 L 63.118032,94.848147 L 66.059015,94.848147 L 68.999998,94.848147 L 68.999998,93.848147 z M 76.499998,93.848147 L 77.118032,92.848147 L 74.059015,92.848147 L 70.999998,92.848147 L 70.999998,93.848147 L 70.999998,94.848147 L 73.440981,94.848147 L 75.881964,94.848147 L 76.499998,93.848147 z M 83.999998,93.848147 L 83.999998,92.848147 L 81.499998,92.848147 L 78.999998,92.848147 L 78.999998,93.848147 L 78.999998,94.848147 L 81.499998,94.848147 L 83.999998,94.848147 L 83.999998,93.848147 z M 92.499998,93.848147 L 93.118032,92.848147 L 90.059015,92.848147 L 86.999998,92.848147 L 86.999998,93.848147 L 86.999998,94.848147 L 89.440981,94.848147 L 91.881964,94.848147 L 92.499998,93.848147 z M 100.49999,93.848147 L 99.881964,92.848147 L 96.881964,92.848147 L 93.881964,92.848147 L 94.499998,93.848147 L 95.118032,94.848147 L 98.118032,94.848147 L 101.11802,94.848147 L 100.49999,93.848147 z M 108.49999,93.848147 L 109.11802,92.848147 L 105.55901,92.848147 L 101.99999,92.848147 L 101.99999,93.848147 L 101.99999,94.848147 L 104.94097,94.848147 L 107.88196,94.848147 L 108.49999,93.848147 z M 115.99999,93.848147 L 115.99999,92.848147 L 112.94097,92.848147 L 109.88196,92.848147 L 110.49999,93.848147 L 111.11802,94.848147 L 113.55901,94.848147 L 115.99999,94.848147 L 115.99999,93.848147 z M 141.99999,93.848147 L 141.99999,92.848147 L 131.99999,92.848147 L 121.99999,92.848147 L 121.99999,93.848147 L 121.99999,94.848147 L 131.99999,94.848147 L 141.99999,94.848147 L 141.99999,93.848147 z M 152.99999,93.848147 L 152.99999,92.848147 L 150.49999,92.848147 L 147.99999,92.848147 L 147.99999,93.848147 L 147.99999,94.848147 L 150.49999,94.848147 L 152.99999,94.848147 L 152.99999,93.848147 z M 170.49999,93.848147 L 171.11802,92.848147 L 163.99999,92.848147 L 156.88196,92.848147 L 157.49999,93.848147 L 158.11802,94.848147 L 163.99999,94.848147 L 169.88196,94.848147 L 170.49999,93.848147 z M 178.49999,93.848147 L 179.11802,92.848147 L 176.05901,92.848147 L 172.99999,92.848147 L 172.99999,93.848147 L 172.99999,94.848147 L 175.44097,94.848147 L 177.88196,94.848147 L 178.49999,93.848147 z M 195.99999,93.848147 L 195.99999,92.848147 L 192.94097,92.848147 L 189.88196,92.848147 L 190.49999,93.848147 L 191.11802,94.848147 L 193.55901,94.848147 L 195.99999,94.848147 L 195.99999,93.848147 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 11.504363,90.841084 L 12.126762,89.834021 L 10.56338,89.234095 L 8.9999984,88.634169 L 7.4366163,89.234095 L 5.8732343,89.834021 L 6.4956333,90.841084 L 7.1180324,91.848147 L 8.9999984,91.848147 L 10.881964,91.848147 L 11.504363,90.841084 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 34.999998,90.348147 L 34.999998,88.848147 L 32.499998,88.848147 L 29.999998,88.848147 L 29.999998,90.348147 L 29.999998,91.848147 L 32.499998,91.848147 L 34.999998,91.848147 L 34.999998,90.348147 z M 52.504363,90.841084 L 53.126762,89.834021 L 51.56338,89.234095 L 49.999998,88.634169 L 48.436616,89.234095 L 46.873234,89.834021 L 47.495633,90.841084 L 48.118032,91.848147 L 49.999998,91.848147 L 51.881964,91.848147 L 52.504363,90.841084 z M 66.728409,90.51654 L 66.344557,89.348147 L 62.057874,89.035059 C 59.700198,88.862861 57.11915,88.972182 56.322212,89.277996 L 54.873234,89.834021 L 55.414217,90.70935 L 55.9552,91.584679 L 61.53373,91.634806 L 67.11226,91.684934 L 66.728409,90.51654 z M 83.999998,90.217387 L 83.999998,88.748339 L 78.329002,89.048243 L 72.658007,89.348147 L 72.26295,90.546304 L 71.867893,91.744461 L 77.933946,91.715448 L 83.999998,91.686436 L 83.999998,90.217387 z M 98.728409,90.51654 L 98.344557,89.348147 L 94.057874,89.035059 C 91.700198,88.862861 89.11915,88.972182 88.322212,89.277996 L 86.873234,89.834021 L 87.414217,90.70935 L 87.9552,91.584679 L 93.53373,91.634806 L 99.11226,91.684934 L 98.728409,90.51654 z M 115.72295,90.517022 L 115.33332,89.348147 L 109.99999,89.348147 L 104.66666,89.348147 L 104.26727,90.546304 L 103.86789,91.744461 L 109.99023,91.715179 L 116.11257,91.685897 L 115.72295,90.517022 z M 128.78185,90.021209 L 129.21795,88.69427 L 126.43609,89.021209 L 123.65423,89.348147 L 123.21813,90.675085 L 122.78203,92.002024 L 125.56389,91.675085 L 128.34575,91.348147 L 128.78185,90.021209 z M 140.75046,90.598147 L 140.33426,89.348147 L 138.60871,89.013573 C 137.65966,88.829558 136.20593,88.93888 135.37819,89.256511 L 133.87323,89.834021 L 134.49562,90.841084 L 135.11802,91.848147 L 138.14234,91.848147 L 141.16666,91.848147 L 140.75046,90.598147 z M 152.99999,90.348147 L 152.99999,88.848147 L 150.49999,88.848147 L 147.99999,88.848147 L 147.99999,90.348147 L 147.99999,91.848147 L 150.49999,91.848147 L 152.99999,91.848147 L 152.99999,90.348147 z M 162.75602,90.598147 L 162.34539,89.348147 L 158.67269,89.037782 L 154.99999,88.727416 L 154.99999,89.621115 C 154.99999,91.243347 156.28996,91.848147 159.74999,91.848147 L 163.16666,91.848147 L 162.75602,90.598147 z M 170.49999,90.348147 L 170.49999,89.348147 L 167.74999,89.031725 L 164.99999,88.715302 L 164.99999,90.348147 L 164.99999,91.980992 L 167.74999,91.664569 L 170.49999,91.348147 L 170.49999,90.348147 z M 178.50436,90.841084 L 179.12675,89.834021 L 177.56337,89.234095 L 175.99999,88.634169 L 174.43661,89.234095 L 172.87323,89.834021 L 173.49562,90.841084 L 174.11802,91.848147 L 175.99999,91.848147 L 177.88196,91.848147 L 178.50436,90.841084 z M 195.99999,90.348147 L 195.99999,88.848147 L 193.55901,88.848147 L 191.11802,88.848147 L 190.58619,89.708667 L 190.05436,90.569187 L 190.69384,91.208667 C 191.04556,91.560381 192.38332,91.848147 193.66666,91.848147 L 195.99999,91.848147 L 195.99999,90.348147 z M 11.499998,86.848147 L 10.881964,85.848147 L 8.4409814,85.848147 L 5.9999984,85.848147 L 5.9999984,86.848147 L 5.9999984,87.848147 L 9.0590154,87.848147 L 12.118032,87.848147 L 11.499998,86.848147 z M 34.999998,86.848147 L 34.999998,85.848147 L 32.499998,85.848147 L 29.999998,85.848147 L 29.999998,86.848147 L 29.999998,87.848147 L 32.499998,87.848147 L 34.999998,87.848147 L 34.999998,86.848147 z M 52.499998,86.848147 L 51.881964,85.848147 L 49.999998,85.848147 L 48.118032,85.848147 L 47.499998,86.848147 L 46.881964,87.848147 L 49.999998,87.848147 L 53.118032,87.848147 L 52.499998,86.848147 z M 65.499998,86.848147 L 64.881964,85.848147 L 60.499998,85.848147 L 56.118032,85.848147 L 55.499998,86.848147 L 54.881964,87.848147 L 60.499998,87.848147 L 66.118032,87.848147 L 65.499998,86.848147 z M 83.999998,86.848147 L 83.999998,85.848147 L 78.999998,85.848147 L 73.999998,85.848147 L 73.999998,86.848147 L 73.999998,87.848147 L 78.999998,87.848147 L 83.999998,87.848147 L 83.999998,86.848147 z M 97.499998,86.848147 L 96.881964,85.848147 L 91.940981,85.848147 L 86.999998,85.848147 L 86.999998,86.848147 L 86.999998,87.848147 L 92.559015,87.848147 L 98.118032,87.848147 L 97.499998,86.848147 z M 115.99999,86.848147 L 115.99999,85.848147 L 111.05901,85.848147 L 106.11802,85.848147 L 105.49999,86.848147 L 104.88196,87.848147 L 110.44097,87.848147 L 115.99999,87.848147 L 115.99999,86.848147 z M 129.99999,86.848147 L 129.99999,85.848147 L 127.55901,85.848147 L 125.11802,85.848147 L 124.49999,86.848147 L 123.88196,87.848147 L 126.94097,87.848147 L 129.99999,87.848147 L 129.99999,86.848147 z M 139.49999,86.848147 L 138.88196,85.848147 L 135.94097,85.848147 L 132.99999,85.848147 L 132.99999,86.848147 L 132.99999,87.848147 L 136.55901,87.848147 L 140.11802,87.848147 L 139.49999,86.848147 z M 160.49999,86.848147 L 159.88196,85.848147 L 153.94097,85.848147 L 147.99999,85.848147 L 147.99999,86.848147 L 147.99999,87.848147 L 154.55901,87.848147 L 161.11802,87.848147 L 160.49999,86.848147 z M 170.49999,86.848147 L 169.88196,85.848147 L 167.44097,85.848147 L 164.99999,85.848147 L 164.99999,86.848147 L 164.99999,87.848147 L 168.05901,87.848147 L 171.11802,87.848147 L 170.49999,86.848147 z M 178.49999,86.848147 L 177.88196,85.848147 L 175.99999,85.848147 L 174.11802,85.848147 L 173.49999,86.848147 L 172.88196,87.848147 L 175.99999,87.848147 L 179.11802,87.848147 L 178.49999,86.848147 z M 195.99999,86.848147 L 195.99999,85.848147 L 193.55901,85.848147 L 191.11802,85.848147 L 190.49999,86.848147 L 189.88196,87.848147 L 192.94097,87.848147 L 195.99999,87.848147 L 195.99999,86.848147 z M 11.999998,83.848147 L 11.999998,82.848147 L 8.9999984,82.848147 L 5.9999984,82.848147 L 5.9999984,83.848147 L 5.9999984,84.848147 L 8.9999984,84.848147 L 11.999998,84.848147 L 11.999998,83.848147 z M 34.999998,83.848147 L 34.999998,82.848147 L 32.499998,82.848147 L 29.999998,82.848147 L 29.999998,83.848147 L 29.999998,84.848147 L 32.499998,84.848147 L 34.999998,84.848147 L 34.999998,83.848147 z M 52.499998,83.848147 L 51.881964,82.848147 L 49.440981,82.848147 L 46.999998,82.848147 L 46.999998,83.848147 L 46.999998,84.848147 L 50.059015,84.848147 L 53.118032,84.848147 L 52.499998,83.848147 z M 63.999998,83.848147 L 63.999998,82.848147 L 59.499998,82.848147 L 54.999998,82.848147 L 54.999998,83.848147 L 54.999998,84.848147 L 59.499998,84.848147 L 63.999998,84.848147 L 63.999998,83.848147 z M 83.999998,83.848147 L 83.999998,82.848147 L 80.059015,82.848147 L 76.118032,82.848147 L 75.499998,83.848147 L 74.881964,84.848147 L 79.440981,84.848147 L 83.999998,84.848147 L 83.999998,83.848147 z M 95.499998,83.848147 L 94.881964,82.848147 L 90.940981,82.848147 L 86.999998,82.848147 L 86.999998,83.848147 L 86.999998,84.848147 L 91.559015,84.848147 L 96.118032,84.848147 L 95.499998,83.848147 z M 115.99999,83.848147 L 115.99999,82.848147 L 111.49999,82.848147 L 106.99999,82.848147 L 106.99999,83.848147 L 106.99999,84.848147 L 111.49999,84.848147 L 115.99999,84.848147 L 115.99999,83.848147 z M 137.99999,83.848147 L 137.99999,82.848147 L 132.05901,82.848147 L 126.11802,82.848147 L 125.49999,83.848147 L 124.88196,84.848147 L 131.44097,84.848147 L 137.99999,84.848147 L 137.99999,83.848147 z M 157.99999,83.848147 L 157.99999,82.848147 L 152.99999,82.848147 L 147.99999,82.848147 L 147.99999,83.848147 L 147.99999,84.848147 L 152.99999,84.848147 L 157.99999,84.848147 L 157.99999,83.848147 z M 170.49999,83.848147 L 169.88196,82.848147 L 167.44097,82.848147 L 164.99999,82.848147 L 164.99999,83.848147 L 164.99999,84.848147 L 168.05901,84.848147 L 171.11802,84.848147 L 170.49999,83.848147 z M 178.49999,83.848147 L 177.88196,82.848147 L 175.44097,82.848147 L 172.99999,82.848147 L 172.99999,83.848147 L 172.99999,84.848147 L 176.05901,84.848147 L 179.11802,84.848147 L 178.49999,83.848147 z M 195.99999,83.848147 L 195.99999,82.848147 L 193.55901,82.848147 L 191.11802,82.848147 L 190.49999,83.848147 L 189.88196,84.848147 L 192.94097,84.848147 L 195.99999,84.848147 L 195.99999,83.848147 z M 26.999998,80.848147 L 26.999998,79.848147 L 16.499998,79.848147 L 5.9999984,79.848147 L 5.9999984,80.848147 L 5.9999984,81.848147 L 16.499998,81.848147 L 26.999998,81.848147 L 26.999998,80.848147 z M 52.499998,80.848147 L 51.881964,79.848147 L 40.940981,79.848147 L 29.999998,79.848147 L 29.999998,80.848147 L 29.999998,81.848147 L 41.559015,81.848147 L 53.118032,81.848147 L 52.499998,80.848147 z M 62.499998,80.848147 L 61.881964,79.848147 L 58.440981,79.848147 L 54.999998,79.848147 L 54.999998,80.848147 L 54.999998,81.848147 L 59.059015,81.848147 L 63.118032,81.848147 L 62.499998,80.848147 z M 83.999998,80.848147 L 83.999998,79.848147 L 80.499998,79.848147 L 76.999998,79.848147 L 76.999998,80.848147 L 76.999998,81.848147 L 80.499998,81.848147 L 83.999998,81.848147 L 83.999998,80.848147 z M 94.499998,80.848147 L 93.881964,79.848147 L 90.440981,79.848147 L 86.999998,79.848147 L 86.999998,80.848147 L 86.999998,81.848147 L 91.059015,81.848147 L 95.118032,81.848147 L 94.499998,80.848147 z M 115.99999,80.848147 L 115.99999,79.848147 L 112.55901,79.848147 L 109.11802,79.848147 L 108.49999,80.848147 L 107.88196,81.848147 L 111.94097,81.848147 L 115.99999,81.848147 L 115.99999,80.848147 z M 136.99999,80.848147 L 136.99999,79.848147 L 132.05901,79.848147 L 127.11802,79.848147 L 126.49999,80.848147 L 125.88196,81.848147 L 131.44097,81.848147 L 136.99999,81.848147 L 136.99999,80.848147 z M 155.99999,80.848147 L 155.99999,79.848147 L 151.99999,79.848147 L 147.99999,79.848147 L 147.99999,80.848147 L 147.99999,81.848147 L 151.99999,81.848147 L 155.99999,81.848147 L 155.99999,80.848147 z M 170.49999,80.848147 L 169.88196,79.848147 L 167.44097,79.848147 L 164.99999,79.848147 L 164.99999,80.848147 L 164.99999,81.848147 L 168.05901,81.848147 L 171.11802,81.848147 L 170.49999,80.848147 z M 195.99999,80.848147 L 195.99999,79.848147 L 184.49999,79.848147 L 172.99999,79.848147 L 172.99999,80.848147 L 172.99999,81.848147 L 184.49999,81.848147 L 195.99999,81.848147 L 195.99999,80.848147 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 26.999998,77.848147 L 26.999998,76.848147 L 17.559015,76.848147 L 8.1180324,76.848147 L 7.4999984,77.848147 L 6.8819644,78.848147 L 16.940981,78.848147 L 26.999998,78.848147 L 26.999998,77.848147 z M 51.499998,77.848147 L 50.881964,76.848147 L 41.499998,76.848147 L 32.118032,76.848147 L 31.499998,77.848147 L 30.881964,78.848147 L 41.499998,78.848147 L 52.118032,78.848147 L 51.499998,77.848147 z M 60.999998,77.848147 L 60.999998,76.848147 L 57.999998,76.848147 L 54.999998,76.848147 L 54.999998,77.848147 L 54.999998,78.848147 L 57.999998,78.848147 L 60.999998,78.848147 L 60.999998,77.848147 z M 83.999998,77.848147 L 83.999998,76.848147 L 81.559015,76.848147 L 79.118032,76.848147 L 78.499998,77.848147 L 77.881964,78.848147 L 80.940981,78.848147 L 83.999998,78.848147 L 83.999998,77.848147 z M 92.999998,77.848147 L 92.999998,76.848147 L 89.999998,76.848147 L 86.999998,76.848147 L 86.999998,77.848147 L 86.999998,78.848147 L 89.999998,78.848147 L 92.999998,78.848147 L 92.999998,77.848147 z M 115.99999,77.848147 L 115.99999,76.848147 L 112.99999,76.848147 L 109.99999,76.848147 L 109.99999,77.848147 L 109.99999,78.848147 L 112.99999,78.848147 L 115.99999,78.848147 L 115.99999,77.848147 z M 135.99999,77.848147 L 135.99999,76.848147 L 131.99999,76.848147 L 127.99999,76.848147 L 127.99999,77.848147 L 127.99999,78.848147 L 131.99999,78.848147 L 135.99999,78.848147 L 135.99999,77.848147 z M 153.49999,77.848147 L 152.88196,76.848147 L 150.44097,76.848147 L 147.99999,76.848147 L 147.99999,77.848147 L 147.99999,78.848147 L 151.05901,78.848147 L 154.11802,78.848147 L 153.49999,77.848147 z M 170.49999,77.848147 L 169.88196,76.848147 L 167.44097,76.848147 L 164.99999,76.848147 L 164.99999,77.848147 L 164.99999,78.848147 L 168.05901,78.848147 L 171.11802,78.848147 L 170.49999,77.848147 z M 194.49999,77.848147 L 193.88196,76.848147 L 183.44097,76.848147 L 172.99999,76.848147 L 172.99999,77.848147 L 172.99999,78.848147 L 184.05901,78.848147 L 195.11802,78.848147 L 194.49999,77.848147 z M 53.999998,63.848147 L 53.999998,62.848147 L 50.999998,62.848147 L 47.999998,62.848147 L 47.999998,63.848147 L 47.999998,64.848147 L 50.999998,64.848147 L 53.999998,64.848147 L 53.999998,63.848147 z M 65.499998,63.848147 L 66.118032,62.848147 L 63.059015,62.848147 L 59.999998,62.848147 L 59.999998,63.848147 L 59.999998,64.848147 L 62.440981,64.848147 L 64.881964,64.848147 L 65.499998,63.848147 z M 76.999998,63.848147 L 76.999998,62.848147 L 74.559015,62.848147 L 72.118032,62.848147 L 71.499998,63.848147 L 70.881964,64.848147 L 73.940981,64.848147 L 76.999998,64.848147 L 76.999998,63.848147 z M 84.999998,63.957553 L 84.999998,63.066959 L 81.613523,62.671607 L 78.227048,62.276255 L 78.720512,63.562201 L 79.213976,64.848147 L 82.106987,64.848147 L 84.999998,64.848147 L 84.999998,63.957553 z M 106.99999,63.848147 L 106.99999,62.848147 L 103.44097,62.848147 L 99.881964,62.848147 L 100.49999,63.848147 L 101.11802,64.848147 L 104.05901,64.848147 L 106.99999,64.848147 L 106.99999,63.848147 z M 122.99999,63.848147 L 122.99999,62.848147 L 120.49999,62.848147 L 117.99999,62.848147 L 117.99999,63.848147 L 117.99999,64.848147 L 120.49999,64.848147 L 122.99999,64.848147 L 122.99999,63.848147 z M 139.99999,63.848147 L 139.99999,62.848147 L 136.99999,62.848147 L 133.99999,62.848147 L 133.99999,63.848147 L 133.99999,64.848147 L 136.99999,64.848147 L 139.99999,64.848147 L 139.99999,63.848147 z M 156.99999,63.848147 L 156.99999,62.848147 L 154.55901,62.848147 L 152.11802,62.848147 L 151.49999,63.848147 L 150.88196,64.848147 L 153.94097,64.848147 L 156.99999,64.848147 L 156.99999,63.848147 z M 53.999998,60.848147 L 53.999998,59.848147 L 50.999998,59.848147 L 47.999998,59.848147 L 47.999998,60.848147 L 47.999998,61.848147 L 50.999998,61.848147 L 53.999998,61.848147 L 53.999998,60.848147 z M 66.999998,60.848147 L 66.999998,59.848147 L 62.440981,59.848147 L 57.881964,59.848147 L 58.499998,60.848147 L 59.118032,61.848147 L 63.059015,61.848147 L 66.999998,61.848147 L 66.999998,60.848147 z M 76.999998,60.848147 L 76.999998,59.848147 L 74.499998,59.848147 L 71.999998,59.848147 L 71.999998,60.848147 L 71.999998,61.848147 L 74.499998,61.848147 L 76.999998,61.848147 L 76.999998,60.848147 z M 86.499998,60.848147 L 87.118032,59.848147 L 83.559015,59.848147 L 79.999998,59.848147 L 79.999998,60.848147 L 79.999998,61.848147 L 82.940981,61.848147 L 85.881964,61.848147 L 86.499998,60.848147 z M 105.49999,60.848147 L 104.88196,59.848147 L 101.94097,59.848147 L 98.999998,59.848147 L 98.999998,60.848147 L 98.999998,61.848147 L 102.55901,61.848147 L 106.11802,61.848147 L 105.49999,60.848147 z M 122.99999,60.848147 L 122.99999,59.848147 L 120.49999,59.848147 L 117.99999,59.848147 L 117.99999,60.848147 L 117.99999,61.848147 L 120.49999,61.848147 L 122.99999,61.848147 L 122.99999,60.848147 z M 139.99999,60.848147 L 139.99999,59.848147 L 136.99999,59.848147 L 133.99999,59.848147 L 133.99999,60.848147 L 133.99999,61.848147 L 136.99999,61.848147 L 139.99999,61.848147 L 139.99999,60.848147 z M 156.99999,60.848147 L 156.99999,59.848147 L 153.99999,59.848147 L 150.99999,59.848147 L 150.99999,60.848147 L 150.99999,61.848147 L 153.99999,61.848147 L 156.99999,61.848147 L 156.99999,60.848147 z M 53.999998,57.848147 L 53.999998,56.848147 L 50.999998,56.848147 L 47.999998,56.848147 L 47.999998,57.848147 L 47.999998,58.848147 L 50.999998,58.848147 L 53.999998,58.848147 L 53.999998,57.848147 z M 68.499998,57.848147 L 69.118032,56.848147 L 63.059015,56.848147 L 56.999998,56.848147 L 56.999998,57.848147 L 56.999998,58.848147 L 62.440981,58.848147 L 67.881964,58.848147 L 68.499998,57.848147 z M 76.999998,57.957553 L 76.999998,57.066959 L 73.548946,56.664068 L 70.097893,56.261177 L 71.17139,57.554662 L 72.244887,58.848147 L 74.622443,58.848147 L 76.999998,58.848147 L 76.999998,57.957553 z M 104.49999,57.848147 L 103.88196,56.848147 L 92.999998,56.848147 L 82.118032,56.848147 L 81.499998,57.848147 L 80.881964,58.848147 L 92.999998,58.848147 L 105.11802,58.848147 L 104.49999,57.848147 z M 122.99999,57.848147 L 122.99999,56.848147 L 120.49999,56.848147 L 117.99999,56.848147 L 117.99999,57.848147 L 117.99999,58.848147 L 120.49999,58.848147 L 122.99999,58.848147 L 122.99999,57.848147 z M 139.99999,57.848147 L 139.99999,56.848147 L 136.99999,56.848147 L 133.99999,56.848147 L 133.99999,57.848147 L 133.99999,58.848147 L 136.99999,58.848147 L 139.99999,58.848147 L 139.99999,57.848147 z M 156.99999,57.848147 L 156.99999,56.848147 L 153.94097,56.848147 L 150.88196,56.848147 L 151.49999,57.848147 L 152.11802,58.848147 L 154.55901,58.848147 L 156.99999,58.848147 L 156.99999,57.848147 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 53.499998,54.848147 L 54.118032,53.848147 L 51.059015,53.848147 L 47.999998,53.848147 L 47.999998,54.848147 L 47.999998,55.848147 L 50.440981,55.848147 L 52.881964,55.848147 L 53.499998,54.848147 z M 61.499998,54.848147 L 60.881964,53.848147 L 57.881964,53.848147 L 54.881964,53.848147 L 55.499998,54.848147 L 56.118032,55.848147 L 59.118032,55.848147 L 62.118032,55.848147 L 61.499998,54.848147 z M 69.499998,54.848147 L 70.118032,53.848147 L 67.118032,53.848147 L 64.118032,53.848147 L 63.499998,54.848147 L 62.881964,55.848147 L 65.881964,55.848147 L 68.881964,55.848147 L 69.499998,54.848147 z M 76.999998,54.848147 L 76.999998,53.848147 L 74.499998,53.848147 L 71.999998,53.848147 L 71.999998,54.848147 L 71.999998,55.848147 L 74.499998,55.848147 L 76.999998,55.848147 L 76.999998,54.848147 z M 102.99999,54.848147 L 102.99999,53.848147 L 92.999998,53.848147 L 82.999998,53.848147 L 82.999998,54.848147 L 82.999998,55.848147 L 92.999998,55.848147 L 102.99999,55.848147 L 102.99999,54.848147 z M 123.49999,54.848147 L 124.11802,53.848147 L 121.05901,53.848147 L 117.99999,53.848147 L 117.99999,54.848147 L 117.99999,55.848147 L 120.44097,55.848147 L 122.88196,55.848147 L 123.49999,54.848147 z M 139.99999,54.848147 L 139.99999,53.848147 L 136.99999,53.848147 L 133.99999,53.848147 L 133.99999,54.848147 L 133.99999,55.848147 L 136.99999,55.848147 L 139.99999,55.848147 L 139.99999,54.848147 z M 156.99999,54.848147 L 156.99999,53.848147 L 153.94097,53.848147 L 150.88196,53.848147 L 151.49999,54.848147 L 152.11802,55.848147 L 154.55901,55.848147 L 156.99999,55.848147 L 156.99999,54.848147 z M 59.999998,51.795988 L 59.999998,50.848147 L 53.999998,50.848147 L 47.999998,50.848147 L 47.999998,51.767291 L 47.999998,52.686436 L 53.999998,52.715133 L 59.999998,52.743829 L 59.999998,51.795988 z M 76.999998,51.767291 L 76.999998,50.848147 L 70.999998,50.848147 L 64.999998,50.848147 L 64.999998,51.795988 L 64.999998,52.743829 L 70.999998,52.715133 L 76.999998,52.686436 L 76.999998,51.767291 z M 89.999998,51.848147 L 89.999998,50.848147 L 86.999998,50.848147 L 83.999998,50.848147 L 83.999998,51.848147 L 83.999998,52.848147 L 86.999998,52.848147 L 89.999998,52.848147 L 89.999998,51.848147 z M 101.99999,51.848147 L 101.99999,50.848147 L 98.440981,50.848147 L 94.881964,50.848147 L 95.499998,51.848147 L 96.118032,52.848147 L 99.059015,52.848147 L 101.99999,52.848147 L 101.99999,51.848147 z M 123.49999,51.848147 L 124.11802,50.848147 L 121.05901,50.848147 L 117.99999,50.848147 L 117.99999,51.848147 L 117.99999,52.848147 L 120.44097,52.848147 L 122.88196,52.848147 L 123.49999,51.848147 z M 156.99999,51.848147 L 156.99999,50.848147 L 145.49999,50.848147 L 133.99999,50.848147 L 133.99999,51.848147 L 133.99999,52.848147 L 145.49999,52.848147 L 156.99999,52.848147 L 156.99999,51.848147 z M 58.999998,48.848147 L 58.999998,47.848147 L 53.499998,47.848147 L 47.999998,47.848147 L 47.999998,48.848147 L 47.999998,49.848147 L 53.499998,49.848147 L 58.999998,49.848147 L 58.999998,48.848147 z M 76.999998,48.848147 L 76.999998,47.848147 L 71.999998,47.848147 L 66.999998,47.848147 L 66.999998,48.848147 L 66.999998,49.848147 L 71.999998,49.848147 L 76.999998,49.848147 L 76.999998,48.848147 z M 91.499998,48.848147 L 92.118032,47.848147 L 88.559015,47.848147 L 84.999998,47.848147 L 84.999998,48.848147 L 84.999998,49.848147 L 87.940981,49.848147 L 90.881964,49.848147 L 91.499998,48.848147 z M 100.99999,48.848147 L 100.99999,47.848147 L 97.440981,47.848147 L 93.881964,47.848147 L 94.499998,48.848147 L 95.118032,49.848147 L 98.059015,49.848147 L 100.99999,49.848147 L 100.99999,48.848147 z M 123.49999,48.848147 L 124.11802,47.848147 L 121.05901,47.848147 L 117.99999,47.848147 L 117.99999,48.848147 L 117.99999,49.848147 L 120.44097,49.848147 L 122.88196,49.848147 L 123.49999,48.848147 z M 156.99999,48.96337 L 156.99999,48.078594 L 151.59366,47.403117 L 146.18732,46.72764 L 140.11311,47.414859 L 134.03889,48.102078 L 134.57846,48.975113 L 135.11802,49.848147 L 146.05901,49.848147 L 156.99999,49.848147 L 156.99999,48.96337 z M 56.756212,45.598147 L 56.34576,44.348147 L 53.588406,44.023573 C 52.071862,43.845058 50.165543,43.95438 49.352143,44.266511 L 47.873234,44.834021 L 48.495633,45.841084 L 49.118032,46.848147 L 53.142348,46.848147 L 57.166665,46.848147 L 56.756212,45.598147 z M 76.999998,45.290649 L 76.999998,43.733151 L 72.827719,44.040649 L 68.655439,44.348147 L 68.244385,45.598147 L 67.833331,46.848147 L 72.416665,46.848147 L 76.999998,46.848147 L 76.999998,45.290649 z M 98.722698,45.498147 L 98.345399,44.348147 L 94.518021,44.02856 C 92.412964,43.852788 89.616844,43.97848 88.304423,44.307877 L 85.918202,44.906781 L 86.456313,45.777464 L 86.994425,46.648147 L 93.047212,46.648147 L 99.099998,46.648147 L 98.722698,45.498147 z M 123.49999,45.348147 L 123.49999,44.348147 L 120.74999,44.031725 L 117.99999,43.715302 L 117.99999,45.348147 L 117.99999,46.980992 L 120.74999,46.664569 L 123.49999,46.348147 L 123.49999,45.348147 z M 139.50436,45.841084 L 140.12675,44.834021 L 138.56337,44.234095 L 136.99999,43.634169 L 135.43661,44.234095 L 133.87323,44.834021 L 134.49562,45.841084 L 135.11802,46.848147 L 136.99999,46.848147 L 138.88196,46.848147 L 139.50436,45.841084 z M 156.99999,45.348147 L 156.99999,43.848147 L 154.55901,43.848147 L 152.11802,43.848147 L 151.58619,44.708667 L 151.05436,45.569187 L 151.69384,46.208667 C 152.04556,46.560381 153.38332,46.848147 154.66666,46.848147 L 156.99999,46.848147 L 156.99999,45.348147 z M 131.49999,42.348147 L 131.49999,41.348147 L 120.24999,41.065396 L 108.99999,40.782645 L 108.99999,42.232094 L 108.99999,43.681543 L 120.24999,43.514845 L 131.49999,43.348147 L 131.49999,42.348147 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z M 55.499998,41.848147 L 54.881964,40.848147 L 51.999998,40.848147 L 49.118032,40.848147 L 48.499998,41.848147 L 47.881964,42.848147 L 51.999998,42.848147 L 56.118032,42.848147 L 55.499998,41.848147 z M 76.999998,41.848147 L 76.999998,40.848147 L 73.559015,40.848147 L 70.118032,40.848147 L 69.499998,41.848147 L 68.881964,42.848147 L 72.940981,42.848147 L 76.999998,42.848147 L 76.999998,41.848147 z M 97.999998,41.848147 L 97.999998,40.848147 L 92.999998,40.848147 L 87.999998,40.848147 L 87.999998,41.848147 L 87.999998,42.848147 L 92.999998,42.848147 L 97.999998,42.848147 L 97.999998,41.848147 z M 139.49999,41.848147 L 138.88196,40.848147 L 136.99999,40.848147 L 135.11802,40.848147 L 134.49999,41.848147 L 133.88196,42.848147 L 136.99999,42.848147 L 140.11802,42.848147 L 139.49999,41.848147 z M 156.99999,41.848147 L 156.99999,40.848147 L 154.55901,40.848147 L 152.11802,40.848147 L 151.49999,41.848147 L 150.88196,42.848147 L 153.94097,42.848147 L 156.99999,42.848147 L 156.99999,41.848147 z M 53.999998,38.848147 L 53.999998,37.848147 L 50.999998,37.848147 L 47.999998,37.848147 L 47.999998,38.848147 L 47.999998,39.848147 L 50.999998,39.848147 L 53.999998,39.848147 L 53.999998,38.848147 z M 76.999998,38.848147 L 76.999998,37.848147 L 73.999998,37.848147 L 70.999998,37.848147 L 70.999998,38.848147 L 70.999998,39.848147 L 73.999998,39.848147 L 76.999998,39.848147 L 76.999998,38.848147 z M 96.999998,38.848147 L 96.999998,37.848147 L 92.999998,37.848147 L 88.999998,37.848147 L 88.999998,38.848147 L 88.999998,39.848147 L 92.999998,39.848147 L 96.999998,39.848147 L 96.999998,38.848147 z M 131.49999,38.848147 L 130.88196,37.848147 L 119.94097,37.848147 L 108.99999,37.848147 L 108.99999,38.848147 L 108.99999,39.848147 L 120.55901,39.848147 L 132.11802,39.848147 L 131.49999,38.848147 z M 139.99999,38.848147 L 139.99999,37.848147 L 136.99999,37.848147 L 133.99999,37.848147 L 133.99999,38.848147 L 133.99999,39.848147 L 136.99999,39.848147 L 139.99999,39.848147 L 139.99999,38.848147 z M 156.99999,38.848147 L 156.99999,37.848147 L 154.55901,37.848147 L 152.11802,37.848147 L 151.49999,38.848147 L 150.88196,39.848147 L 153.94097,39.848147 L 156.99999,39.848147 L 156.99999,38.848147 z"
+ style="fill:#423c8d" />
+ <path
+ id="path2620"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 26.999998,102.84814 L 26.999998,101.84814 L 16.940981,101.84814 L 6.8819644,101.84814 L 7.4999984,102.84814 L 8.1180324,103.84814 L 17.559015,103.84814 L 26.999998,103.84814 L 26.999998,102.84814 z M 51.499998,102.84814 L 52.118032,101.84814 L 40.999998,101.84814 L 29.881964,101.84814 L 30.499998,102.84814 L 31.118032,103.84814 L 40.999998,103.84814 L 50.881964,103.84814 L 51.499998,102.84814 z M 60.999998,102.84814 L 60.999998,101.84814 L 57.999998,101.84814 L 54.999998,101.84814 L 54.999998,102.84814 L 54.999998,103.84814 L 57.999998,103.84814 L 60.999998,103.84814 L 60.999998,102.84814 z M 72.499998,102.84814 L 73.118032,101.84814 L 70.059015,101.84814 L 66.999998,101.84814 L 66.999998,102.84814 L 66.999998,103.84814 L 69.440981,103.84814 L 71.881964,103.84814 L 72.499998,102.84814 z M 83.999998,102.84814 L 83.999998,101.84814 L 80.999998,101.84814 L 77.999998,101.84814 L 77.999998,102.84814 L 77.999998,103.84814 L 80.999998,103.84814 L 83.999998,103.84814 L 83.999998,102.84814 z M 85.743388,83.641897 L 85.397392,76.348147 L 85.394555,90.348147 L 85.391719,104.34814 L 85.740551,97.641897 C 85.932409,93.95346 85.933685,87.65346 85.743388,83.641897 z M 92.999998,102.84814 L 92.999998,101.84814 L 89.999998,101.84814 L 86.999998,101.84814 L 86.999998,102.84814 L 86.999998,103.84814 L 89.999998,103.84814 L 92.999998,103.84814 L 92.999998,102.84814 z M 104.49999,102.84814 L 105.11802,101.84814 L 101.49999,101.84814 L 97.881964,101.84814 L 98.499998,102.84814 L 99.118032,103.84814 L 101.49999,103.84814 L 103.88196,103.84814 L 104.49999,102.84814 z M 115.99999,102.84814 L 115.99999,101.84814 L 112.99999,101.84814 L 109.99999,101.84814 L 109.99999,102.84814 L 109.99999,103.84814 L 112.99999,103.84814 L 115.99999,103.84814 L 115.99999,102.84814 z M 124.4354,102.95265 L 124.98885,102.05715 L 121.11605,101.68782 L 117.24325,101.31849 L 117.72861,102.58332 L 118.21397,103.84814 L 121.04796,103.84814 L 123.88196,103.84814 L 124.4354,102.95265 z M 145.99999,102.64814 L 145.99999,101.44814 L 147.19999,102.64814 L 148.39999,103.84814 L 150.69999,103.84814 L 152.99999,103.84814 L 152.99999,102.9115 L 152.99999,101.97486 L 149.74999,101.6615 C 147.96249,101.48915 144.81249,101.50791 142.74999,101.70318 L 138.99999,102.05821 L 138.99999,102.95318 L 138.99999,103.84814 L 142.49999,103.84814 L 145.99999,103.84814 L 145.99999,102.64814 z M 171.09147,103.09814 C 171.14179,102.68564 171.29191,100.54814 171.42508,98.348147 L 171.6672,94.348147 L 170.9699,93.348147 C 170.05196,92.031719 170.07873,88.608662 171.01682,87.348147 L 171.76103,86.348147 L 171.47378,82.348147 C 171.31579,80.148147 171.14455,78.010647 171.09326,77.598147 L 170.99999,76.848147 L 167.99999,76.848147 L 164.99999,76.848147 L 164.99999,77.784789 L 164.99999,78.72143 L 168.24999,79.124751 L 171.49999,79.528073 L 168.24999,79.68811 L 164.99999,79.848147 L 164.99999,80.848147 L 164.99999,81.848147 L 167.99999,81.848147 L 170.99999,81.848147 L 170.99999,82.674954 L 170.99999,83.501761 L 167.99999,83.061455 L 164.99999,82.621148 L 164.99999,83.734648 L 164.99999,84.848147 L 167.99999,84.848147 L 170.99999,84.848147 L 170.99999,85.674954 L 170.99999,86.501761 L 167.99999,86.061455 L 164.99999,85.621148 L 164.99999,89.293665 L 164.99999,92.966181 L 163.93182,92.306013 L 162.86364,91.645846 L 163.42036,90.195059 L 163.97708,88.744271 L 163.03871,89.324217 L 162.10034,89.904163 L 160.99027,87.829992 L 159.88021,85.755821 L 153.72228,86.051984 L 147.56435,86.348147 L 147.56272,90.348147 L 147.56109,94.348147 L 150.28054,94.664569 L 152.99999,94.980992 L 152.99999,91.355552 L 152.99999,87.730113 L 154.06816,88.390281 L 155.13634,89.050448 L 154.60415,90.437302 L 154.07197,91.824155 L 154.78598,91.71773 C 155.17868,91.659196 156.06249,91.664594 156.74999,91.729726 L 157.99999,91.848147 L 157.74999,93.098147 L 157.49999,94.348147 L 164.25178,94.348147 L 171.00356,94.348147 L 171.00178,95.098147 L 170.99999,95.848147 L 164.94097,95.848147 L 158.88196,95.848147 L 159.49999,96.848147 L 160.11802,97.848147 L 165.80901,98.028395 L 171.49999,98.208643 L 166.74999,98.583186 L 161.99999,98.957729 L 161.99999,99.902938 L 161.99999,100.84814 L 166.74999,101.01625 L 171.49999,101.18435 L 167.74999,101.57661 L 163.99999,101.96887 L 163.99999,102.90851 L 163.99999,103.84814 L 167.49999,103.84814 L 170.99999,103.84814 L 171.09147,103.09814 z M 194.49999,102.84814 L 195.11802,101.84814 L 184.05901,101.84814 L 172.99999,101.84814 L 172.99999,102.84814 L 172.99999,103.84814 L 183.44097,103.84814 L 193.88196,103.84814 L 194.49999,102.84814 z M 26.999998,99.848147 L 26.999998,98.848147 L 16.499998,98.848147 L 5.9999984,98.848147 L 5.9999984,99.848147 L 5.9999984,100.84814 L 16.499998,100.84814 L 26.999998,100.84814 L 26.999998,99.848147 z M 53.999998,90.348147 L 53.999998,79.848147 L 41.999998,79.848147 L 29.999998,79.848147 L 29.999998,80.848147 L 29.999998,81.848147 L 32.999998,81.848147 L 35.999998,81.848147 L 35.999998,82.657671 L 35.999998,83.467195 L 43.702701,82.641905 C 47.939187,82.187996 51.876687,82.013184 52.452701,82.253434 L 53.499998,82.690252 L 50.249998,82.7692 L 46.999998,82.848147 L 46.999998,83.848147 L 46.999998,84.848147 L 49.999998,84.848147 L 52.999998,84.848147 L 52.999998,85.674954 L 52.999998,86.501761 L 50.142855,86.082422 L 47.285712,85.663082 L 47.285712,90.348147 L 47.285712,95.033212 L 50.142855,94.613872 L 52.999998,94.194533 L 52.999998,95.02134 L 52.999998,95.848147 L 49.999998,95.848147 L 46.999998,95.848147 L 46.999998,96.784789 L 46.999998,97.72143 L 50.249998,98.124751 L 53.499998,98.528073 L 41.749998,98.68811 L 29.999998,98.848147 L 29.999998,99.848147 L 29.999998,100.84814 L 41.999998,100.84814 L 53.999998,100.84814 L 53.999998,90.348147 z M 60.999998,99.848147 L 60.999998,98.848147 L 57.999998,98.848147 L 54.999998,98.848147 L 54.999998,99.848147 L 54.999998,100.84814 L 57.999998,100.84814 L 60.999998,100.84814 L 60.999998,99.848147 z M 73.999998,99.848147 L 73.999998,98.848147 L 69.440981,98.848147 L 64.881964,98.848147 L 65.499998,99.848147 L 66.118032,100.84814 L 70.059015,100.84814 L 73.999998,100.84814 L 73.999998,99.848147 z M 83.999998,99.848147 L 83.999998,98.848147 L 80.940981,98.848147 L 77.881964,98.848147 L 78.499998,99.848147 L 79.118032,100.84814 L 81.559015,100.84814 L 83.999998,100.84814 L 83.999998,99.848147 z M 92.999998,99.848147 L 92.999998,98.848147 L 89.999998,98.848147 L 86.999998,98.848147 L 86.999998,99.848147 L 86.999998,100.84814 L 89.999998,100.84814 L 92.999998,100.84814 L 92.999998,99.848147 z M 105.99999,99.848147 L 105.99999,98.848147 L 101.49999,98.848147 L 96.999998,98.848147 L 96.999998,99.848147 L 96.999998,100.84814 L 101.49999,100.84814 L 105.99999,100.84814 L 105.99999,99.848147 z M 115.99999,99.848147 L 115.99999,98.848147 L 112.99999,98.848147 L 109.99999,98.848147 L 109.99999,99.848147 L 109.99999,100.84814 L 112.99999,100.84814 L 115.99999,100.84814 L 115.99999,99.848147 z M 125.49999,99.848147 L 126.11802,98.848147 L 122.55901,98.848147 L 118.99999,98.848147 L 118.99999,99.848147 L 118.99999,100.84814 L 121.94097,100.84814 L 124.88196,100.84814 L 125.49999,99.848147 z M 144.99999,99.848147 L 144.99999,98.848147 L 141.49999,98.848147 L 137.99999,98.848147 L 137.99999,99.848147 L 137.99999,100.84814 L 141.49999,100.84814 L 144.99999,100.84814 L 144.99999,99.848147 z M 152.99999,99.848147 L 152.99999,98.848147 L 149.94097,98.848147 L 146.88196,98.848147 L 147.49999,99.848147 L 148.11802,100.84814 L 150.55901,100.84814 L 152.99999,100.84814 L 152.99999,99.848147 z M 195.99999,99.848147 L 195.99999,98.848147 L 184.49999,98.848147 L 172.99999,98.848147 L 172.99999,99.848147 L 172.99999,100.84814 L 184.49999,100.84814 L 195.99999,100.84814 L 195.99999,99.848147 z M 11.999998,96.848147 L 11.999998,95.848147 L 8.9999984,95.848147 L 5.9999984,95.848147 L 5.9999984,96.848147 L 5.9999984,97.848147 L 8.9999984,97.848147 L 11.999998,97.848147 L 11.999998,96.848147 z M 34.999998,96.848147 L 34.999998,95.848147 L 32.499998,95.848147 L 29.999998,95.848147 L 29.999998,96.848147 L 29.999998,97.848147 L 32.499998,97.848147 L 34.999998,97.848147 L 34.999998,96.848147 z M 60.999998,96.848147 L 60.999998,95.848147 L 57.999998,95.848147 L 54.999998,95.848147 L 54.999998,96.848147 L 54.999998,97.848147 L 57.999998,97.848147 L 60.999998,97.848147 L 60.999998,96.848147 z M 75.499998,96.848147 L 76.118032,95.848147 L 70.059015,95.848147 L 63.999998,95.848147 L 63.999998,96.848147 L 63.999998,97.848147 L 69.440981,97.848147 L 74.881964,97.848147 L 75.499998,96.848147 z M 83.999998,96.848147 L 83.999998,95.848147 L 80.968613,95.848147 L 77.937228,95.848147 L 77.335831,94.28093 L 76.734433,92.713712 L 77.867215,91.58093 L 78.999998,90.448147 L 78.999998,92.648147 L 78.999998,94.848147 L 81.499998,94.848147 L 83.999998,94.848147 L 83.999998,90.348147 L 83.999998,85.848147 L 79.235898,85.848147 L 74.471798,85.848147 L 72.735898,89.855007 C 71.781153,92.05878 70.999998,94.08378 70.999998,94.355007 C 70.999998,94.626234 72.294898,94.848147 73.877553,94.848147 L 76.755109,94.848147 L 77.999998,96.348147 L 79.244887,97.848147 L 81.622443,97.848147 L 83.999998,97.848147 L 83.999998,96.848147 z M 93.416548,96.205019 L 94.047075,94.561891 L 93.523537,94.038352 L 92.999998,93.514814 L 92.999998,94.68148 L 92.999998,95.848147 L 89.999998,95.848147 L 86.999998,95.848147 L 86.999998,96.848147 L 86.999998,97.848147 L 89.893009,97.848147 L 92.78602,97.848147 L 93.416548,96.205019 z M 106.99999,96.848147 L 106.99999,95.848147 L 100.94097,95.848147 L 94.881964,95.848147 L 95.499998,96.848147 L 96.118032,97.848147 L 101.55901,97.848147 L 106.99999,97.848147 L 106.99999,96.848147 z M 115.99999,96.848147 L 115.99999,95.848147 L 112.99999,95.848147 L 109.99999,95.848147 L 109.99999,94.68148 L 109.99999,93.514814 L 109.47645,94.038352 L 108.95291,94.561891 L 109.58344,96.205019 L 110.21397,97.848147 L 113.10698,97.848147 L 115.99999,97.848147 L 115.99999,96.848147 z M 143.49999,96.848147 L 142.88196,95.848147 L 131.44097,95.848147 L 119.99999,95.848147 L 119.99999,96.848147 L 119.99999,97.848147 L 132.05901,97.848147 L 144.11802,97.848147 L 143.49999,96.848147 z M 152.99999,96.848147 L 152.99999,95.848147 L 149.94097,95.848147 L 146.88196,95.848147 L 147.49999,96.848147 L 148.11802,97.848147 L 150.55901,97.848147 L 152.99999,97.848147 L 152.99999,96.848147 z M 178.99999,96.848147 L 178.99999,95.848147 L 175.99999,95.848147 L 172.99999,95.848147 L 172.99999,96.848147 L 172.99999,97.848147 L 175.99999,97.848147 L 178.99999,97.848147 L 178.99999,96.848147 z M 195.99999,96.848147 L 195.99999,95.848147 L 192.99999,95.848147 L 189.99999,95.848147 L 189.99999,96.848147 L 189.99999,97.848147 L 192.99999,97.848147 L 195.99999,97.848147 L 195.99999,96.848147 z M 68.999998,94.42657 C 68.999998,94.31505 68.089495,92.339283 66.976659,90.035976 L 64.95332,85.848147 L 60.119516,85.848147 L 55.285712,85.848147 L 55.285712,90.296298 L 55.285712,94.74445 L 58.892855,95.046298 C 62.199447,95.322997 68.999998,94.906015 68.999998,94.42657 z M 61.073884,93.437175 L 59.902881,92.026202 L 60.95144,91.378158 C 61.528147,91.021733 62.034428,90.869171 62.076509,91.03913 C 62.525393,92.852102 62.765111,94.848147 62.533959,94.848147 C 62.37497,94.848147 61.717936,94.213209 61.073884,93.437175 z M 11.571427,90.348147 L 11.571427,85.848147 L 8.9285698,85.848147 L 6.2857127,85.848147 L 6.2857127,90.348147 L 6.2857127,94.848147 L 8.9285698,94.848147 L 11.571427,94.848147 L 11.571427,90.348147 z M 34.999998,90.348147 L 34.999998,85.848147 L 32.499998,85.848147 L 29.999998,85.848147 L 29.999998,90.348147 L 29.999998,94.848147 L 32.499998,94.848147 L 34.999998,94.848147 L 34.999998,90.348147 z M 92.245545,92.348147 L 91.991093,90.348147 L 93.617517,92.598147 L 95.243942,94.848147 L 98.12197,94.848147 L 100.99999,94.848147 L 101.07894,93.598147 L 101.15788,92.348147 L 101.66227,93.598147 L 102.16666,94.848147 L 104.96135,94.848147 L 107.75605,94.848147 L 109.38247,92.598147 L 111.0089,90.348147 L 110.75444,92.348147 L 110.49999,94.348147 L 113.24999,94.664569 L 115.99999,94.980992 L 115.99999,90.36231 L 115.99999,85.743628 L 110.74999,86.045887 C 107.86249,86.21213 105.7168,86.573147 105.9818,86.848147 C 106.2468,87.123147 105.69524,88.445155 104.75611,89.785941 L 103.04862,92.223736 L 101.44139,92.459627 L 99.834172,92.695517 L 98.403665,89.271832 L 96.973158,85.848147 L 91.978502,85.848147 L 86.983846,85.848147 L 87.15597,90.398739 L 87.328094,94.949332 L 89.914046,94.648739 L 92.499998,94.348147 L 92.245545,92.348147 z M 141.99999,94.413247 C 141.99999,94.174051 141.4752,92.711551 140.83378,91.163247 C 140.19237,89.614942 139.62987,87.898147 139.58378,87.348147 L 139.49999,86.348147 L 136.24999,86.034789 C 134.46249,85.862441 132.99999,85.945647 132.99999,86.219689 C 132.99999,86.493731 133.4038,87.780044 133.89734,89.078161 L 134.79469,91.438375 L 131.89734,91.659145 L 128.99999,91.879916 L 128.99999,90.332647 L 128.99999,88.785377 L 130.49425,88.211977 L 131.9885,87.638577 L 131.43523,86.743362 L 130.88196,85.848147 L 127.44097,85.848147 L 123.99999,85.848147 L 123.99383,87.098147 C 123.99044,87.785647 123.35863,89.553837 122.58981,91.027458 L 121.19194,93.706768 L 121.76263,94.277458 L 122.33332,94.848147 L 132.16666,94.848147 C 137.57499,94.848147 141.99999,94.652442 141.99999,94.413247 z M 178.51422,90.598147 L 178.31786,86.348147 L 175.80178,86.04551 L 173.2857,85.742872 L 173.2857,90.29551 L 173.2857,94.848147 L 175.99814,94.848147 L 178.71058,94.848147 L 178.51422,90.598147 z M 195.99999,90.281725 L 195.99999,85.715302 L 193.26587,86.031725 L 190.53175,86.348147 L 190.4878,89.848147 C 190.46363,91.773147 190.59554,93.685647 190.78094,94.098147 L 191.11802,94.848147 L 193.55901,94.848147 L 195.99999,94.848147 L 195.99999,90.281725 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 11.999998,83.848147 L 11.999998,82.848147 L 8.9999984,82.848147 L 5.9999984,82.848147 L 5.9999984,83.848147 L 5.9999984,84.848147 L 8.9999984,84.848147 L 11.999998,84.848147 L 11.999998,83.848147 z M 34.999998,83.848147 L 34.999998,82.848147 L 32.499998,82.848147 L 29.999998,82.848147 L 29.999998,83.848147 L 29.999998,84.848147 L 32.499998,84.848147 L 34.999998,84.848147 L 34.999998,83.848147 z M 64.499998,83.848147 L 63.881964,82.848147 L 59.440981,82.848147 L 54.999998,82.848147 L 54.999998,83.848147 L 54.999998,84.848147 L 60.059015,84.848147 L 65.118032,84.848147 L 64.499998,83.848147 z M 83.999998,83.848147 L 83.999998,82.848147 L 80.059015,82.848147 L 76.118032,82.848147 L 75.499998,83.848147 L 74.881964,84.848147 L 79.440981,84.848147 L 83.999998,84.848147 L 83.999998,83.848147 z M 95.999998,83.848147 L 95.999998,82.848147 L 91.499998,82.848147 L 86.999998,82.848147 L 86.999998,83.848147 L 86.999998,84.848147 L 91.499998,84.848147 L 95.999998,84.848147 L 95.999998,83.848147 z M 115.99999,83.848147 L 115.99999,82.848147 L 111.49999,82.848147 L 106.99999,82.848147 L 106.99999,83.848147 L 106.99999,84.848147 L 111.49999,84.848147 L 115.99999,84.848147 L 115.99999,83.848147 z M 138.49999,83.848147 L 137.88196,82.848147 L 131.99999,82.848147 L 126.11802,82.848147 L 125.49999,83.848147 L 124.88196,84.848147 L 131.99999,84.848147 L 139.11802,84.848147 L 138.49999,83.848147 z M 158.49999,83.848147 L 157.88196,82.848147 L 152.99999,82.848147 L 148.11802,82.848147 L 147.49999,83.848147 L 146.88196,84.848147 L 152.99999,84.848147 L 159.11802,84.848147 L 158.49999,83.848147 z M 178.99999,83.848147 L 178.99999,82.848147 L 175.99999,82.848147 L 172.99999,82.848147 L 172.99999,83.848147 L 172.99999,84.848147 L 175.99999,84.848147 L 178.99999,84.848147 L 178.99999,83.848147 z M 195.99999,83.848147 L 195.99999,82.848147 L 192.99999,82.848147 L 189.99999,82.848147 L 189.99999,83.848147 L 189.99999,84.848147 L 192.99999,84.848147 L 195.99999,84.848147 L 195.99999,83.848147 z M 26.999998,81.348147 L 26.999998,79.848147 L 16.499998,79.848147 L 5.9999984,79.848147 L 5.9999984,80.784789 L 5.9999984,81.72143 L 9.2499984,82.124751 C 11.037498,82.346578 15.762498,82.60009 19.749998,82.68811 L 26.999998,82.848147 L 26.999998,81.348147 z M 191.36042,82.212223 L 195.99999,81.576299 L 195.99999,80.712223 L 195.99999,79.848147 L 184.49999,79.848147 L 172.99999,79.848147 L 172.99999,80.784789 L 172.99999,81.72143 L 176.24999,82.124751 C 181.98934,82.836999 186.60715,82.863731 191.36042,82.212223 z M 62.999998,80.848147 L 62.999998,79.848147 L 58.999998,79.848147 L 54.999998,79.848147 L 54.999998,80.848147 L 54.999998,81.848147 L 58.999998,81.848147 L 62.999998,81.848147 L 62.999998,80.848147 z M 83.999998,80.848147 L 83.999998,79.848147 L 80.559015,79.848147 L 77.118032,79.848147 L 76.499998,80.848147 L 75.881964,81.848147 L 79.940981,81.848147 L 83.999998,81.848147 L 83.999998,80.848147 z M 94.499998,80.848147 L 93.881964,79.848147 L 90.440981,79.848147 L 86.999998,79.848147 L 86.999998,80.848147 L 86.999998,81.848147 L 91.059015,81.848147 L 95.118032,81.848147 L 94.499998,80.848147 z M 115.99999,80.848147 L 115.99999,79.848147 L 112.55901,79.848147 L 109.11802,79.848147 L 108.49999,80.848147 L 107.88196,81.848147 L 111.94097,81.848147 L 115.99999,81.848147 L 115.99999,80.848147 z M 136.99999,80.848147 L 136.99999,79.848147 L 132.05901,79.848147 L 127.11802,79.848147 L 126.49999,80.848147 L 125.88196,81.848147 L 131.44097,81.848147 L 136.99999,81.848147 L 136.99999,80.848147 z M 155.99999,80.848147 L 155.99999,79.848147 L 152.05901,79.848147 L 148.11802,79.848147 L 147.49999,80.848147 L 146.88196,81.848147 L 151.44097,81.848147 L 155.99999,81.848147 L 155.99999,80.848147 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 26.999998,77.848147 L 26.999998,76.848147 L 17.559015,76.848147 L 8.1180324,76.848147 L 7.4999984,77.848147 L 6.8819644,78.848147 L 16.940981,78.848147 L 26.999998,78.848147 L 26.999998,77.848147 z M 51.499998,77.848147 L 50.881964,76.848147 L 40.999998,76.848147 L 31.118032,76.848147 L 30.499998,77.848147 L 29.881964,78.848147 L 40.999998,78.848147 L 52.118032,78.848147 L 51.499998,77.848147 z M 61.499998,77.848147 L 60.881964,76.848147 L 57.940981,76.848147 L 54.999998,76.848147 L 54.999998,77.848147 L 54.999998,78.848147 L 58.559015,78.848147 L 62.118032,78.848147 L 61.499998,77.848147 z M 83.999998,77.848147 L 83.999998,76.848147 L 80.999998,76.848147 L 77.999998,76.848147 L 77.999998,77.848147 L 77.999998,78.848147 L 80.999998,78.848147 L 83.999998,78.848147 L 83.999998,77.848147 z M 92.999998,77.848147 L 92.999998,76.848147 L 89.999998,76.848147 L 86.999998,76.848147 L 86.999998,77.848147 L 86.999998,78.848147 L 89.999998,78.848147 L 92.999998,78.848147 L 92.999998,77.848147 z M 115.99999,77.848147 L 115.99999,76.848147 L 112.99999,76.848147 L 109.99999,76.848147 L 109.99999,77.848147 L 109.99999,78.848147 L 112.99999,78.848147 L 115.99999,78.848147 L 115.99999,77.848147 z M 135.99999,77.848147 L 135.99999,76.848147 L 131.99999,76.848147 L 127.99999,76.848147 L 127.99999,77.848147 L 127.99999,78.848147 L 131.99999,78.848147 L 135.99999,78.848147 L 135.99999,77.848147 z M 153.99999,77.848147 L 153.99999,76.848147 L 151.05901,76.848147 L 148.11802,76.848147 L 147.49999,77.848147 L 146.88196,78.848147 L 150.44097,78.848147 L 153.99999,78.848147 L 153.99999,77.848147 z M 194.49999,77.848147 L 193.88196,76.848147 L 183.44097,76.848147 L 172.99999,76.848147 L 172.99999,77.848147 L 172.99999,78.848147 L 184.05901,78.848147 L 195.11802,78.848147 L 194.49999,77.848147 z M 53.999998,63.848147 L 53.999998,62.848147 L 50.999998,62.848147 L 47.999998,62.848147 L 47.999998,63.848147 L 47.999998,64.848147 L 50.999998,64.848147 L 53.999998,64.848147 L 53.999998,63.848147 z M 65.499998,63.848147 L 66.118032,62.848147 L 62.499998,62.848147 L 58.881964,62.848147 L 59.499998,63.848147 L 60.118032,64.848147 L 62.499998,64.848147 L 64.881964,64.848147 L 65.499998,63.848147 z M 76.999998,63.848147 L 76.999998,62.848147 L 73.999998,62.848147 L 70.999998,62.848147 L 70.999998,63.848147 L 70.999998,64.848147 L 73.999998,64.848147 L 76.999998,64.848147 L 76.999998,63.848147 z M 85.435411,63.952651 L 85.988858,63.057156 L 82.116057,62.687825 L 78.243257,62.318494 L 78.728616,63.58332 L 79.213976,64.848147 L 82.04797,64.848147 L 84.881964,64.848147 L 85.435411,63.952651 z M 106.99999,63.848147 L 106.99999,62.848147 L 103.44097,62.848147 L 99.881964,62.848147 L 100.49999,63.848147 L 101.11802,64.848147 L 104.05901,64.848147 L 106.99999,64.848147 L 106.99999,63.848147 z M 123.99999,63.848147 L 123.99999,62.848147 L 120.99999,62.848147 L 117.99999,62.848147 L 117.99999,63.848147 L 117.99999,64.848147 L 120.99999,64.848147 L 123.99999,64.848147 L 123.99999,63.848147 z M 139.99999,63.848147 L 139.99999,62.848147 L 136.99999,62.848147 L 133.99999,62.848147 L 133.99999,63.848147 L 133.99999,64.848147 L 136.99999,64.848147 L 139.99999,64.848147 L 139.99999,63.848147 z M 156.99999,63.848147 L 156.99999,62.848147 L 153.99999,62.848147 L 150.99999,62.848147 L 150.99999,63.848147 L 150.99999,64.848147 L 153.99999,64.848147 L 156.99999,64.848147 L 156.99999,63.848147 z M 53.999998,60.848147 L 53.999998,59.848147 L 50.999998,59.848147 L 47.999998,59.848147 L 47.999998,60.848147 L 47.999998,61.848147 L 50.999998,61.848147 L 53.999998,61.848147 L 53.999998,60.848147 z M 66.999998,60.848147 L 66.999998,59.848147 L 62.499998,59.848147 L 57.999998,59.848147 L 57.999998,60.848147 L 57.999998,61.848147 L 62.499998,61.848147 L 66.999998,61.848147 L 66.999998,60.848147 z M 76.999998,60.848147 L 76.999998,59.848147 L 73.999998,59.848147 L 70.999998,59.848147 L 70.999998,60.848147 L 70.999998,61.848147 L 73.999998,61.848147 L 76.999998,61.848147 L 76.999998,60.848147 z M 86.999998,60.848147 L 86.999998,59.848147 L 83.499998,59.848147 L 79.999998,59.848147 L 79.999998,60.848147 L 79.999998,61.848147 L 83.499998,61.848147 L 86.999998,61.848147 L 86.999998,60.848147 z M 105.99999,60.848147 L 105.99999,59.848147 L 102.49999,59.848147 L 98.999998,59.848147 L 98.999998,60.848147 L 98.999998,61.848147 L 102.49999,61.848147 L 105.99999,61.848147 L 105.99999,60.848147 z M 123.99999,60.848147 L 123.99999,59.848147 L 120.99999,59.848147 L 117.99999,59.848147 L 117.99999,60.848147 L 117.99999,61.848147 L 120.99999,61.848147 L 123.99999,61.848147 L 123.99999,60.848147 z M 139.99999,60.848147 L 139.99999,59.848147 L 136.99999,59.848147 L 133.99999,59.848147 L 133.99999,60.848147 L 133.99999,61.848147 L 136.99999,61.848147 L 139.99999,61.848147 L 139.99999,60.848147 z M 156.99999,60.848147 L 156.99999,59.848147 L 153.99999,59.848147 L 150.99999,59.848147 L 150.99999,60.848147 L 150.99999,61.848147 L 153.99999,61.848147 L 156.99999,61.848147 L 156.99999,60.848147 z M 54.436136,57.049359 L 55.007049,55.250572 L 58.503523,55.658765 L 61.999998,56.066959 L 61.999998,55.005222 L 61.999998,53.943484 L 54.999998,53.965608 L 47.999998,53.987732 L 47.999998,54.854581 L 47.999998,55.72143 L 51.249998,56.124751 L 54.499998,56.528073 L 51.249998,56.68811 L 47.999998,56.848147 L 47.999998,57.848147 L 47.999998,58.848147 L 50.93261,58.848147 L 53.865223,58.848147 L 54.436136,57.049359 z M 68.499998,57.848147 L 69.118032,56.848147 L 62.499998,56.848147 L 55.881964,56.848147 L 56.499998,57.848147 L 57.118032,58.848147 L 62.499998,58.848147 L 67.881964,58.848147 L 68.499998,57.848147 z M 76.999998,57.848147 L 76.999998,56.848147 L 73.968613,56.848147 L 70.937228,56.848147 L 70.361624,55.348147 L 69.78602,53.848147 L 66.393009,53.848147 L 62.999998,53.848147 L 62.999998,54.848147 L 62.999998,55.848147 L 66.531383,55.848147 L 70.062768,55.848147 L 70.638372,57.348147 L 71.213976,58.848147 L 74.106987,58.848147 L 76.999998,58.848147 L 76.999998,57.848147 z M 104.49999,57.848147 L 103.88196,56.848147 L 92.440981,56.848147 L 80.999998,56.848147 L 80.999998,57.848147 L 80.999998,58.848147 L 93.059015,58.848147 L 105.11802,58.848147 L 104.49999,57.848147 z M 123.99999,57.848147 L 123.99999,56.848147 L 120.99999,56.848147 L 117.99999,56.848147 L 117.99999,57.848147 L 117.99999,58.848147 L 120.99999,58.848147 L 123.99999,58.848147 L 123.99999,57.848147 z M 139.99999,57.848147 L 139.99999,56.848147 L 136.99999,56.848147 L 133.99999,56.848147 L 133.99999,57.848147 L 133.99999,58.848147 L 136.99999,58.848147 L 139.99999,58.848147 L 139.99999,57.848147 z M 156.99999,57.848147 L 156.99999,56.848147 L 153.99999,56.848147 L 150.99999,56.848147 L 150.99999,57.848147 L 150.99999,58.848147 L 153.99999,58.848147 L 156.99999,58.848147 L 156.99999,57.848147 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 76.999998,54.848147 L 76.999998,53.848147 L 73.940981,53.848147 L 70.881964,53.848147 L 71.499998,54.848147 L 72.118032,55.848147 L 74.559015,55.848147 L 76.999998,55.848147 L 76.999998,54.848147 z M 102.99999,54.848147 L 102.99999,53.848147 L 98.999998,53.848147 L 94.999998,53.848147 L 94.999998,53.048948 L 94.999998,52.249748 L 98.499998,52.658354 L 101.99999,53.066959 L 101.99999,51.957553 L 101.99999,50.848147 L 99.114305,50.848147 L 96.228612,50.848147 L 93.364305,52.341986 L 90.499998,53.835826 L 86.749998,53.841986 L 82.999998,53.848147 L 82.999998,54.848147 L 82.999998,55.848147 L 92.999998,55.848147 L 102.99999,55.848147 L 102.99999,54.848147 z M 123.49999,54.848147 L 124.11802,53.848147 L 121.05901,53.848147 L 117.99999,53.848147 L 117.99999,54.848147 L 117.99999,55.848147 L 120.44097,55.848147 L 122.88196,55.848147 L 123.49999,54.848147 z M 139.99999,54.848147 L 139.99999,53.848147 L 136.99999,53.848147 L 133.99999,53.848147 L 133.99999,54.848147 L 133.99999,55.848147 L 136.99999,55.848147 L 139.99999,55.848147 L 139.99999,54.848147 z M 156.99999,54.848147 L 156.99999,53.848147 L 153.99999,53.848147 L 150.99999,53.848147 L 150.99999,54.848147 L 150.99999,55.848147 L 153.99999,55.848147 L 156.99999,55.848147 L 156.99999,54.848147 z M 59.999998,51.848147 L 59.999998,50.848147 L 53.999998,50.848147 L 47.999998,50.848147 L 47.999998,51.848147 L 47.999998,52.848147 L 53.999998,52.848147 L 59.999998,52.848147 L 59.999998,51.848147 z M 76.999998,51.848147 L 76.999998,50.848147 L 70.999998,50.848147 L 64.999998,50.848147 L 64.999998,51.848147 L 64.999998,52.848147 L 70.999998,52.848147 L 76.999998,52.848147 L 76.999998,51.848147 z M 90.499998,51.848147 L 91.118032,50.848147 L 87.559015,50.848147 L 83.999998,50.848147 L 83.999998,51.848147 L 83.999998,52.848147 L 86.940981,52.848147 L 89.881964,52.848147 L 90.499998,51.848147 z M 123.49999,51.848147 L 124.11802,50.848147 L 121.05901,50.848147 L 117.99999,50.848147 L 117.99999,51.848147 L 117.99999,52.848147 L 120.44097,52.848147 L 122.88196,52.848147 L 123.49999,51.848147 z M 156.99999,51.848147 L 156.99999,50.848147 L 145.49999,50.848147 L 133.99999,50.848147 L 133.99999,51.848147 L 133.99999,52.848147 L 145.49999,52.848147 L 156.99999,52.848147 L 156.99999,51.848147 z M 58.999998,49.535976 C 58.999998,49.364283 58.089495,47.339283 56.976659,45.035976 L 54.95332,40.848147 L 51.619516,40.848147 L 48.285712,40.848147 L 48.285712,45.348147 L 48.285712,49.848147 L 53.642855,49.848147 C 56.589284,49.848147 58.999998,49.70767 58.999998,49.535976 z M 76.999998,45.287782 L 76.999998,40.727417 L 73.249998,41.037782 L 69.499998,41.348147 L 69.640077,42.348147 C 69.71712,42.898147 68.92962,44.542614 67.890077,46.002517 C 66.850533,47.462421 65.999998,48.924921 65.999998,49.252517 L 65.999998,49.848147 L 71.499998,49.848147 L 76.999998,49.848147 L 76.999998,45.287782 z M 91.999998,48.848147 L 93.499998,47.878773 L 92.190981,47.86346 L 90.881964,47.848147 L 91.499998,46.848147 C 92.490414,45.24562 93.724888,45.688123 94.289747,47.848147 L 94.812759,49.848147 L 97.906378,49.848147 C 99.607869,49.848147 100.99999,49.626234 100.99999,49.355007 C 100.99999,49.08378 100.2125,47.039844 99.249998,44.812926 L 97.499998,40.763985 L 92.499998,41.056066 L 87.499998,41.348147 L 87.416204,42.348147 C 87.370117,42.898147 86.807617,44.614942 86.166204,46.163247 C 85.524791,47.711551 84.999998,49.174051 84.999998,49.413247 C 84.999998,49.652442 86.237498,49.841256 87.749998,49.832834 L 90.499998,49.817521 L 91.999998,48.848147 z M 123.38709,46.598147 L 123.27419,43.848147 L 127.38709,43.729726 C 129.64919,43.664594 131.83749,43.664594 132.24999,43.729726 L 132.99999,43.848147 L 132.99999,40.848147 L 132.99999,37.848147 L 120.99999,37.848147 L 108.99999,37.848147 L 108.99999,38.848147 L 108.99999,39.848147 L 120.49999,39.848147 L 131.99999,39.848147 L 132.00195,40.598147 L 132.00392,41.348147 L 120.50195,41.037607 L 108.99999,40.727066 L 108.99999,42.287607 L 108.99999,43.848147 L 113.49999,43.848147 L 117.99999,43.848147 L 117.99999,46.914569 L 117.99999,49.980992 L 120.74999,49.664569 L 123.49999,49.348147 L 123.38709,46.598147 z M 156.99999,45.281725 L 156.99999,40.715302 L 154.24999,41.031725 L 151.49999,41.348147 L 151.61289,44.098147 L 151.72579,46.848147 L 145.86289,46.848147 L 139.99999,46.848147 L 139.88151,45.098147 C 139.81634,44.135647 139.83607,42.785647 139.92534,42.098147 L 140.08766,40.848147 L 137.24319,40.848147 L 134.39872,40.848147 L 134.35778,45.348147 L 134.31685,49.848147 L 145.65842,49.848147 L 156.99999,49.848147 L 156.99999,45.281725 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z M 53.999998,38.848147 L 53.999998,37.848147 L 50.999998,37.848147 L 47.999998,37.848147 L 47.999998,38.848147 L 47.999998,39.848147 L 50.999998,39.848147 L 53.999998,39.848147 L 53.999998,38.848147 z M 76.999998,38.848147 L 76.999998,37.848147 L 73.999998,37.848147 L 70.999998,37.848147 L 70.999998,38.848147 L 70.999998,39.848147 L 73.999998,39.848147 L 76.999998,39.848147 L 76.999998,38.848147 z M 96.999998,38.848147 L 96.999998,37.848147 L 92.999998,37.848147 L 88.999998,37.848147 L 88.999998,38.848147 L 88.999998,39.848147 L 92.999998,39.848147 L 96.999998,39.848147 L 96.999998,38.848147 z M 139.99999,38.848147 L 139.99999,37.848147 L 136.99999,37.848147 L 133.99999,37.848147 L 133.99999,38.848147 L 133.99999,39.848147 L 136.99999,39.848147 L 139.99999,39.848147 L 139.99999,38.848147 z M 156.99999,38.848147 L 156.99999,37.848147 L 153.99999,37.848147 L 150.99999,37.848147 L 150.99999,38.848147 L 150.99999,39.848147 L 153.99999,39.848147 L 156.99999,39.848147 L 156.99999,38.848147 z"
+ style="fill:#3c3883" />
+ <path
+ id="path2618"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 92.999998,102.7991 L 92.999998,101.96887 L 89.249998,101.57661 L 85.499998,101.18435 L 89.249998,101.01625 L 92.999998,100.84814 L 92.999998,99.848147 L 92.999998,98.848147 L 89.499998,98.848147 L 85.999998,98.848147 L 85.999998,98.048948 L 85.999998,97.249748 L 89.499998,97.658354 L 92.999998,98.066959 L 92.999998,96.957553 L 92.999998,95.848147 L 89.499998,95.848147 L 85.999998,95.848147 L 85.999998,94.78913 L 85.999998,93.730113 L 87.035062,94.369818 L 88.070127,95.009523 L 94.150121,94.980443 C 97.494117,94.96445 100.46746,94.714015 100.75755,94.423921 L 101.28499,93.896479 L 99.999998,92.348147 L 98.714997,90.799815 L 99.309878,90.204933 L 99.90476,89.610052 L 98.443188,88.14848 L 96.981616,86.686907 L 97.645315,85.613019 L 98.309015,84.53913 L 97.154506,85.252655 L 95.999998,85.966181 L 95.999998,84.310651 L 95.999998,82.65512 L 90.999376,83.001634 L 85.998755,83.348147 L 85.999376,82.598147 L 85.999998,81.848147 L 90.559015,81.848147 L 95.118032,81.848147 L 94.44198,80.754273 L 93.765929,79.660398 L 89.882963,80.030698 L 85.999998,80.400999 L 85.999998,79.684938 L 85.999998,78.968878 L 89.749998,78.658512 L 93.499998,78.348147 L 93.499998,77.348147 L 93.499998,76.348147 L 85.999998,76.348147 L 78.499998,76.348147 L 77.999998,77.348147 L 77.499998,78.348147 L 81.249998,78.658512 L 84.999998,78.968878 L 84.999998,79.749977 L 84.999998,80.531076 L 80.542994,79.854672 L 76.08599,79.178268 L 76.549225,79.927797 L 77.012459,80.677327 L 75.756229,81.183789 L 74.499998,81.690252 L 79.749998,81.7692 L 84.999998,81.848147 L 85.001361,82.598147 L 85.002725,83.348147 L 79.380826,82.998609 L 73.758928,82.649071 L 74.532238,83.900313 L 75.305548,85.151555 L 73.461644,86.499851 L 71.617739,87.848147 L 72.817342,87.848147 L 74.016946,87.848147 L 72.767925,89.848147 L 71.518904,91.848147 L 70.290836,91.848147 L 69.062768,91.848147 L 69.600599,93.249712 L 70.13843,94.651278 L 74.06553,95.025787 L 77.992631,95.400296 L 77.455637,93.708379 L 76.918643,92.016461 L 78.026202,91.331952 L 79.133761,90.647443 L 78.81688,92.497795 L 78.499998,94.348147 L 81.749998,94.338481 L 84.999998,94.328814 L 84.999998,95.088481 L 84.999998,95.848147 L 81.499998,95.848147 L 77.999998,95.848147 L 77.999998,96.957553 L 77.999998,98.066959 L 81.499998,97.658354 L 84.999998,97.249748 L 84.999998,98.048948 L 84.999998,98.848147 L 81.499998,98.848147 L 77.999998,98.848147 L 77.999998,99.787782 L 77.999998,100.72741 L 81.749998,101.11967 L 85.499998,101.51194 L 81.749998,101.68004 L 77.999998,101.84814 L 77.999998,102.79065 L 77.999998,103.73315 L 82.249998,104.04064 C 84.587498,104.20977 87.962498,104.18641 89.749998,103.98874 L 92.999998,103.62933 L 92.999998,102.7991 z M 92.666665,93.18148 C 92.299998,92.814814 91.999998,92.049814 91.999998,91.48148 L 91.999998,90.448147 L 93.183331,91.63148 L 94.366665,92.814814 L 93.849998,93.33148 L 93.333331,93.848147 L 92.666665,93.18148 z M 105.74588,102.43559 L 106.33332,101.84814 L 102.33332,101.84814 L 98.333331,101.84814 L 98.333331,103.20524 L 98.333331,104.56234 L 101.74588,103.79269 C 103.62279,103.36938 105.42279,102.75868 105.74588,102.43559 z M 124.53587,102.79009 L 125.05922,101.94329 L 118.04695,101.96546 L 111.03468,101.98762 L 109.94916,101.31673 L 108.86364,100.64584 L 109.33648,99.413663 L 109.80931,98.18148 L 108.44657,98.18148 L 107.08382,98.18148 L 108.7283,100.96535 L 110.37278,103.74923 L 113.43638,104.04869 C 115.12137,104.21339 118.19031,104.18811 120.25626,103.99251 L 124.01253,103.63688 L 124.53587,102.79009 z M 195.37396,102.82211 L 194.46989,101.91804 L 182.98494,101.59685 L 171.49999,101.27566 L 183.74999,101.0619 L 195.99999,100.84814 L 195.99999,99.848147 L 195.99999,98.848147 L 192.74999,98.68811 L 189.49999,98.528073 L 192.74999,98.124751 L 195.99999,97.72143 L 195.99999,96.784789 L 195.99999,95.848147 L 193.05901,95.848147 L 190.11802,95.848147 L 189.49999,96.848147 L 188.88196,97.848147 L 184.64097,97.848147 L 180.39999,97.848147 L 179.44999,96.925094 C 178.92749,96.417415 177.14999,95.80984 175.49999,95.574926 L 172.49999,95.147811 L 175.64585,94.997979 L 178.79172,94.848147 L 178.59836,90.098147 L 178.40499,85.348147 L 179.32494,84.098147 L 180.24488,82.848147 L 184.49999,82.848147 L 188.7551,82.848147 L 189.67504,84.098147 L 190.59499,85.348147 L 190.40162,90.098147 L 190.20826,94.848147 L 193.10413,94.848147 L 195.99999,94.848147 L 195.99999,88.848147 L 195.99999,82.848147 L 193.24999,82.698315 L 190.49999,82.548483 L 193.24999,82.131893 L 195.99999,81.715302 L 195.99999,80.781725 L 195.99999,79.848147 L 183.74999,79.635765 L 171.49999,79.423384 L 182.49999,79.121484 C 188.54999,78.955439 194.17499,78.555939 194.99999,78.233706 L 196.49999,77.647828 L 194.1499,76.743185 L 191.79981,75.838542 L 177.9774,75.963535 L 164.155,76.088527 L 164.68448,77.468337 L 165.21397,78.848147 L 168.35698,79.008184 L 171.49999,79.168221 L 168.24999,79.571543 L 164.99999,79.974864 L 164.99999,80.911505 L 164.99999,81.848147 L 168.24999,82.008184 L 171.49999,82.168221 L 168.24999,82.571543 L 164.99999,82.974864 L 164.99999,87.970522 L 164.99999,92.966181 L 164.04366,92.375139 L 163.08734,91.784097 L 163.61184,90.417273 L 164.13634,89.050448 L 163.05185,88.380199 L 161.96737,87.70995 L 162.47292,86.891953 L 162.97847,86.073957 L 161.23923,86.211052 L 159.49999,86.348147 L 159.74413,85.115728 L 159.98827,83.883309 L 157.50387,83.259764 L 155.01946,82.636219 L 151.00973,83.018609 L 146.99999,83.400999 L 146.99999,82.624573 L 146.99999,81.848147 L 152.74999,81.832834 L 158.49999,81.817521 L 156.99999,80.848147 L 155.49999,79.878773 L 150.99999,79.721554 L 146.49999,79.564336 L 150.49999,78.956242 L 154.49999,78.348147 L 154.24999,77.348147 L 153.99999,76.348147 L 150.28785,76.348147 L 146.57572,76.348147 L 146.42413,84.588805 L 146.27255,92.829463 L 147.58123,93.915569 L 148.88991,95.001675 L 151.19495,94.674911 L 153.49999,94.348147 L 153.22565,92.683059 L 152.95131,91.017971 L 154.72565,91.356548 C 155.70154,91.542765 156.66759,91.729555 156.87243,91.771636 C 157.07728,91.813717 156.76299,92.428787 156.17402,93.138458 L 155.10315,94.428769 L 162.79501,94.715226 C 167.02553,94.872778 170.67731,95.192138 170.91009,95.424915 C 171.14287,95.657693 168.25832,95.848147 164.49999,95.848147 L 157.66666,95.848147 L 158.41555,96.598147 L 159.16444,97.348147 L 165.33222,97.94566 L 171.49999,98.543173 L 165.49999,98.710973 L 159.49999,98.878773 L 160.99999,99.848147 L 162.49999,100.81752 L 166.99999,100.98266 L 171.49999,101.14781 L 168.49999,101.54097 C 166.84999,101.75721 164.82499,102.22891 163.99999,102.5892 L 162.49999,103.24426 L 167.49999,103.7962 C 170.24999,104.09977 177.85005,104.2082 184.38901,104.03717 L 196.27804,103.72619 L 195.37396,102.82211 z M 173.76165,98.140886 C 175.00556,97.901693 176.80556,97.910774 177.76165,98.161067 L 179.49999,98.616144 L 175.49999,98.595964 L 171.49999,98.575783 L 173.76165,98.140886 z M 152.99999,88.848147 C 152.99999,88.298147 153.19843,87.848147 153.44097,87.848147 C 153.68351,87.848147 154.16007,88.298147 154.49999,88.848147 L 155.11802,89.848147 L 154.05901,89.848147 L 152.99999,89.848147 L 152.99999,88.848147 z M 173.73096,82.19221 C 174.40799,81.918287 175.75799,81.901613 176.73096,82.155156 L 178.49999,82.616144 L 175.49999,82.653198 L 172.49999,82.690252 L 173.73096,82.19221 z M 27.999998,102.89547 L 27.999998,101.84814 L 17.559015,101.84814 L 7.1180324,101.84814 L 6.5715996,102.73229 L 6.0251668,103.61644 L 17.012582,103.77962 L 27.999998,103.9428 L 27.999998,102.89547 z M 51.499998,102.84814 L 52.118032,101.84814 L 40.999998,101.84814 L 29.881964,101.84814 L 30.499998,102.84814 L 31.118032,103.84814 L 40.999998,103.84814 L 50.881964,103.84814 L 51.499998,102.84814 z M 60.999998,102.84814 L 60.999998,101.84814 L 57.999998,101.84814 L 54.999998,101.84814 L 54.999998,102.84814 L 54.999998,103.84814 L 57.999998,103.84814 L 60.999998,103.84814 L 60.999998,102.84814 z M 72.999998,102.84814 L 72.999998,101.84814 L 69.999998,101.84814 L 66.999998,101.84814 L 66.999998,102.84814 L 66.999998,103.84814 L 69.999998,103.84814 L 72.999998,103.84814 L 72.999998,102.84814 z M 152.99999,102.77835 L 152.99999,101.84814 L 149.74999,101.68811 L 146.49999,101.52807 L 149.74999,101.12475 L 152.99999,100.72143 L 152.99999,99.882721 L 152.99999,99.044012 L 145.49999,99.014596 L 137.99999,98.98518 L 137.99999,99.916663 L 137.99999,100.84814 L 142.24999,101.02285 L 146.49999,101.19756 L 142.2272,101.58146 L 137.9544,101.96537 L 138.5067,102.85899 L 139.05899,103.75262 L 146.02949,103.73059 L 152.99999,103.70856 L 152.99999,102.77835 z M 53.999998,90.632187 L 53.999998,79.916226 L 29.626433,79.632187 L 5.2528679,79.348147 L 5.706155,80.527091 L 6.1594422,81.706034 L 12.722926,82.408924 L 19.28641,83.111813 L 26.96777,82.471212 L 34.649129,81.830611 L 35.347899,82.529381 L 36.046668,83.228151 L 41.023333,82.96401 L 45.999998,82.699869 L 45.999998,90.213643 L 45.999998,97.727416 L 49.249998,98.134866 C 51.037498,98.358963 49.124998,98.336432 44.999998,98.084798 L 37.499998,97.627281 L 36.549998,96.737714 L 35.599998,95.848147 L 32.299998,95.848147 L 28.999998,95.848147 L 28.999998,96.957553 L 28.999998,98.066959 L 32.499998,97.658354 L 35.999998,97.249748 L 35.999998,98.138717 L 35.999998,99.027685 L 27.509347,98.320418 L 19.018696,97.613151 L 12.589069,98.301705 L 6.1594422,98.99026 L 5.7070391,100.1692 L 5.254636,101.34814 L 29.627317,101.34814 L 53.999998,101.34814 L 53.999998,90.632187 z M 48.249998,95.158821 C 49.212498,94.907294 50.787498,94.907294 51.749998,95.158821 L 53.499998,95.616144 L 49.999998,95.616144 L 46.499998,95.616144 L 48.249998,95.158821 z M 48.249998,82.158821 C 49.212498,81.907294 50.787498,81.907294 51.749998,82.158821 L 53.499998,82.616144 L 49.999998,82.616144 L 46.499998,82.616144 L 48.249998,82.158821 z M 117.36162,100.34815 L 116.78601,98.848147 L 113.393,98.848147 L 109.99999,98.848147 L 109.99999,99.787782 L 109.99999,100.72741 L 113.74999,101.11967 C 115.81249,101.33542 117.59837,101.58758 117.71861,101.68004 C 117.83884,101.7725 117.6782,101.17314 117.36162,100.34815 z M 60.999998,99.848147 L 60.999998,98.848147 L 57.999998,98.848147 L 54.999998,98.848147 L 54.999998,99.848147 L 54.999998,100.84814 L 57.999998,100.84814 L 60.999998,100.84814 L 60.999998,99.848147 z M 74.565981,99.741384 L 75.249998,98.634622 L 76.201129,99.991384 L 77.15226,101.34814 L 76.742796,99.848147 C 76.51759,99.023147 76.033331,98.460647 75.666665,98.598147 C 75.299998,98.735647 72.72344,98.848147 69.940981,98.848147 L 64.881964,98.848147 L 65.499998,99.848147 L 66.118032,100.84814 L 69.999998,100.84814 L 73.881964,100.84814 L 74.565981,99.741384 z M 106.49999,99.848147 L 105.88196,98.848147 L 101.49999,98.848147 L 97.118032,98.848147 L 96.499998,99.848147 L 95.881964,100.84814 L 101.49999,100.84814 L 107.11802,100.84814 L 106.49999,99.848147 z M 126.49999,99.848147 L 127.11802,98.848147 L 123.05901,98.848147 L 118.99999,98.848147 L 118.99999,99.848147 L 118.99999,100.84814 L 122.44097,100.84814 L 125.88196,100.84814 L 126.49999,99.848147 z M 101.50886,97.848147 L 106.61773,97.848147 L 108.55886,96.37995 L 110.49999,94.911754 L 113.56578,94.87995 L 116.63157,94.848147 L 116.63157,88.848147 L 116.63157,82.848147 L 111.81578,82.848147 L 106.99999,82.848147 L 106.99999,84.379532 L 106.99999,85.910917 L 105.71083,86.405614 L 104.42167,86.900311 L 104.26175,89.02331 L 104.10183,91.146309 L 102.9042,92.247228 L 101.70658,93.348147 L 102.3696,92.167245 L 103.03261,90.986344 L 102.10409,90.412482 L 101.17556,89.838621 L 101.51126,91.593384 C 101.6959,92.558504 101.8814,93.657136 101.92348,94.034789 C 101.96556,94.412441 103.46249,94.902925 105.24999,95.124751 L 108.49999,95.528073 L 101.58332,95.68811 L 94.666665,95.848147 L 95.324655,96.506138 L 95.982646,97.164128 L 94.78955,98.756138 L 93.596454,100.34815 L 94.998226,99.098147 L 96.399998,97.848147 L 101.50886,97.848147 z M 108.99999,92.907164 L 108.99999,91.848147 L 109.99999,91.848147 C 110.54999,91.848147 110.99999,92.046589 110.99999,92.28913 C 110.99999,92.531671 110.54999,93.008228 109.99999,93.348147 L 108.99999,93.966181 L 108.99999,92.907164 z M 11.999998,96.848147 L 11.999998,95.848147 L 8.9999984,95.848147 L 5.9999984,95.848147 L 5.9999984,96.848147 L 5.9999984,97.848147 L 8.9999984,97.848147 L 11.999998,97.848147 L 11.999998,96.848147 z M 60.999998,96.848147 L 60.999998,95.848147 L 57.999998,95.848147 L 54.999998,95.848147 L 54.999998,96.848147 L 54.999998,97.848147 L 57.999998,97.848147 L 60.999998,97.848147 L 60.999998,96.848147 z M 75.499998,96.848147 L 76.118032,95.848147 L 70.059015,95.848147 L 63.999998,95.848147 L 63.999998,96.848147 L 63.999998,97.848147 L 69.440981,97.848147 L 74.881964,97.848147 L 75.499998,96.848147 z M 116.99999,96.848147 L 116.99999,95.848147 L 113.49999,95.848147 L 109.99999,95.848147 L 109.99999,96.848147 L 109.99999,97.848147 L 113.49999,97.848147 L 116.99999,97.848147 L 116.99999,96.848147 z M 145.79999,96.648147 L 146.99999,95.448147 L 146.99999,96.648147 L 146.99999,97.848147 L 149.94097,97.848147 L 152.88196,97.848147 L 153.49999,96.848147 L 154.11802,95.848147 L 150.55901,95.848147 L 146.99999,95.848147 L 146.96819,94.598147 L 146.93638,93.348147 L 145.60794,95.098147 C 144.8773,96.060647 143.96506,96.848147 143.58073,96.848147 L 142.88196,96.848147 L 143.34823,96.098147 L 143.81451,95.348147 L 132.15725,95.657985 L 120.49999,95.967822 L 119.54999,96.907985 L 118.59999,97.848147 L 131.59999,97.848147 L 144.59999,97.848147 L 145.79999,96.648147 z M 66.475999,94.848147 L 68.788425,94.848147 L 68.644211,92.359963 L 68.499998,89.871779 L 67.146244,89.351533 L 65.79249,88.831288 L 66.364859,87.339718 L 66.937228,85.848147 L 65.218613,85.832834 L 63.499998,85.817521 L 64.999998,84.848147 L 66.499998,83.878773 L 65.190981,83.86346 L 63.881964,83.848147 L 64.346941,83.098147 L 64.811918,82.348147 L 60.053043,82.684741 L 55.294168,83.021334 L 55.118695,88.869265 L 54.943222,94.717196 L 58.22161,95.11679 C 60.024723,95.336567 62.099302,95.366032 62.831785,95.182266 C 63.564269,94.998501 65.204165,94.848147 66.475999,94.848147 z M 61.458879,93.781616 C 61.096346,93.195024 61.014196,92.500616 61.276324,92.238488 C 61.538452,91.976359 62.01939,92.456298 62.345075,93.305019 C 63.021259,95.067126 62.444929,95.377077 61.458879,93.781616 z M 11.764704,88.848147 L 11.764704,82.848147 L 9.0320345,82.848147 L 6.2993647,82.848147 L 6.119329,88.848147 L 5.9392932,94.848147 L 8.8519987,94.848147 L 11.764704,94.848147 L 11.764704,88.848147 z M 35.426248,88.848147 L 35.421051,83.348147 L 32.489382,83.348147 L 29.557714,83.348147 L 29.498756,88.348147 C 29.466328,91.098147 29.608339,93.711436 29.814334,94.155457 L 30.188871,94.962766 L 32.810158,94.655457 L 35.431446,94.348147 L 35.426248,88.848147 z M 142.38155,93.296209 L 142.97708,91.744271 L 141.83101,92.452581 L 140.68494,93.160891 L 141.24921,91.003139 L 141.81347,88.845387 L 140.73679,89.510812 L 139.66011,90.176237 L 140.26691,88.594951 L 140.87371,87.013665 L 139.48469,86.480648 L 138.09567,85.947631 L 138.44481,84.147889 L 138.79396,82.348147 L 131.45786,82.675022 L 124.12176,83.001897 L 124.66786,84.425022 L 125.21397,85.848147 L 124.35698,85.848853 L 123.49999,85.849559 L 123.35214,88.407236 L 123.20429,90.964912 L 121.44715,92.90653 L 119.69001,94.848147 L 130.73801,94.848147 L 141.78601,94.848147 L 142.38155,93.296209 z M 129.45345,89.93148 L 129.68102,88.348147 L 131.84051,88.028596 L 133.99999,87.709045 L 133.98468,88.528596 C 133.97626,88.979349 133.63876,89.842583 133.23468,90.446893 L 132.49999,91.545639 L 130.86294,91.530226 L 129.22588,91.514814 L 129.45345,89.93148 z M 131.49999,85.848147 L 130.88196,84.848147 L 131.94097,84.848147 L 132.99999,84.848147 L 132.99999,85.848147 C 132.99999,86.398147 132.80155,86.848147 132.55901,86.848147 C 132.31647,86.848147 131.83991,86.398147 131.49999,85.848147 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 63.499998,80.848147 L 64.118032,79.848147 L 59.559015,79.848147 L 54.999998,79.848147 L 54.999998,80.848147 L 54.999998,81.848147 L 58.940981,81.848147 L 62.881964,81.848147 L 63.499998,80.848147 z M 116.99999,80.848147 L 116.99999,79.848147 L 112.49999,79.848147 L 107.99999,79.848147 L 107.99999,80.848147 L 107.99999,81.848147 L 112.49999,81.848147 L 116.99999,81.848147 L 116.99999,80.848147 z M 136.99999,80.848147 L 136.99999,79.848147 L 132.05901,79.848147 L 127.11802,79.848147 L 126.49999,80.848147 L 125.88196,81.848147 L 131.44097,81.848147 L 136.99999,81.848147 L 136.99999,80.848147 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 27.999998,77.348147 L 27.999998,75.848147 L 19.191128,75.848147 L 10.382257,75.848147 L 8.441128,77.316344 L 6.4999984,78.78454 L 17.249998,78.816344 L 27.999998,78.848147 L 27.999998,77.348147 z M 50.558868,77.316344 L 48.617739,75.848147 L 40.999998,75.848147 L 33.382257,75.848147 L 31.441128,77.316344 L 29.499998,78.78454 L 40.999998,78.78454 L 52.499998,78.78454 L 50.558868,77.316344 z M 61.203893,77.278407 L 58.962775,75.708667 L 57.314253,76.028407 L 55.665731,76.348147 L 55.249531,77.598147 L 54.833331,78.848147 L 59.139171,78.848147 L 63.44501,78.848147 L 61.203893,77.278407 z M 116.99999,77.348147 L 116.99999,75.848147 L 114.12243,75.848147 L 111.24488,75.848147 L 109.99999,77.348147 L 108.7551,78.848147 L 112.87755,78.848147 L 116.99999,78.848147 L 116.99999,77.348147 z M 136.49999,77.348147 L 136.49999,76.348147 L 132.9144,76.047583 L 129.32881,75.747019 L 127.99059,77.359473 L 126.65237,78.971926 L 131.57618,78.660037 L 136.49999,78.348147 L 136.49999,77.348147 z M 85.666665,64.437288 L 85.666665,63.02643 L 81.824234,62.659995 L 77.981802,62.29356 L 78.320391,63.320854 L 78.658979,64.348147 L 82.079489,64.966506 C 83.960769,65.306603 85.537498,65.644103 85.583331,65.716506 C 85.629165,65.788908 85.666665,65.213261 85.666665,64.437288 z M 53.999998,63.848147 L 53.999998,62.848147 L 50.999998,62.848147 L 47.999998,62.848147 L 47.999998,63.848147 L 47.999998,64.848147 L 50.999998,64.848147 L 53.999998,64.848147 L 53.999998,63.848147 z M 65.999998,63.848147 L 67.499998,62.878773 L 63.190981,62.86346 L 58.881964,62.848147 L 59.499998,63.848147 L 60.118032,64.848147 L 62.309015,64.832834 C 63.514056,64.824412 65.174998,64.381303 65.999998,63.848147 z M 76.999998,63.848147 L 76.999998,62.848147 L 73.999998,62.848147 L 70.999998,62.848147 L 70.999998,63.848147 L 70.999998,64.848147 L 73.999998,64.848147 L 76.999998,64.848147 L 76.999998,63.848147 z M 106.99999,63.848147 L 106.99999,62.848147 L 103.55901,62.848147 L 100.11803,62.848147 L 99.499998,63.848147 L 98.881964,64.848147 L 102.94097,64.848147 L 106.99999,64.848147 L 106.99999,63.848147 z M 123.99999,63.848147 L 123.99999,62.848147 L 120.99999,62.848147 L 117.99999,62.848147 L 117.99999,63.848147 L 117.99999,64.848147 L 120.99999,64.848147 L 123.99999,64.848147 L 123.99999,63.848147 z M 139.99999,63.848147 L 139.99999,62.848147 L 136.99999,62.848147 L 133.99999,62.848147 L 133.99999,63.848147 L 133.99999,64.848147 L 136.99999,64.848147 L 139.99999,64.848147 L 139.99999,63.848147 z M 156.99999,63.848147 L 156.99999,62.848147 L 153.99999,62.848147 L 150.99999,62.848147 L 150.99999,63.848147 L 150.99999,64.848147 L 153.99999,64.848147 L 156.99999,64.848147 L 156.99999,63.848147 z M 53.999998,60.848147 L 53.999998,59.848147 L 50.999998,59.848147 L 47.999998,59.848147 L 47.999998,60.848147 L 47.999998,61.848147 L 50.999998,61.848147 L 53.999998,61.848147 L 53.999998,60.848147 z M 66.999998,60.848147 L 66.999998,59.848147 L 62.559015,59.848147 L 58.118032,59.848147 L 57.499998,60.848147 L 56.881964,61.848147 L 61.940981,61.848147 L 66.999998,61.848147 L 66.999998,60.848147 z M 69.100761,59.469559 L 67.916522,58.042639 L 69.20826,57.52434 L 70.499998,57.006042 L 63.190981,56.927094 L 55.881964,56.848147 L 56.499998,57.848147 L 57.118032,58.848147 L 62.5904,58.848147 L 68.062768,58.848147 L 68.654921,60.391275 L 69.247075,61.934403 L 69.766037,61.415441 L 70.284999,60.896479 L 69.100761,59.469559 z M 76.999998,60.848147 L 76.999998,59.848147 L 73.999998,59.848147 L 70.999998,59.848147 L 70.999998,60.848147 L 70.999998,61.848147 L 73.999998,61.848147 L 76.999998,61.848147 L 76.999998,60.848147 z M 87.999998,60.848147 L 87.999998,59.848147 L 83.999998,59.848147 L 79.999998,59.848147 L 79.999998,60.848147 L 79.999998,61.848147 L 83.999998,61.848147 L 87.999998,61.848147 L 87.999998,60.848147 z M 106.49999,60.848147 L 105.88196,59.848147 L 101.94097,59.848147 L 97.999998,59.848147 L 97.999998,60.848147 L 97.999998,61.848147 L 102.55901,61.848147 L 107.11802,61.848147 L 106.49999,60.848147 z M 123.99999,60.848147 L 123.99999,59.848147 L 120.99999,59.848147 L 117.99999,59.848147 L 117.99999,60.848147 L 117.99999,61.848147 L 120.99999,61.848147 L 123.99999,61.848147 L 123.99999,60.848147 z M 139.99999,60.848147 L 139.99999,59.848147 L 136.99999,59.848147 L 133.99999,59.848147 L 133.99999,60.848147 L 133.99999,61.848147 L 136.99999,61.848147 L 139.99999,61.848147 L 139.99999,60.848147 z M 156.99999,60.848147 L 156.99999,59.848147 L 153.99999,59.848147 L 150.99999,59.848147 L 150.99999,60.848147 L 150.99999,61.848147 L 153.99999,61.848147 L 156.99999,61.848147 L 156.99999,60.848147 z M 54.410262,57.221399 L 55.034504,55.594651 L 53.894806,54.221399 L 52.755109,52.848147 L 53.770564,52.848147 C 54.329065,52.848147 55.03425,53.495022 55.337641,54.285647 L 55.889261,55.723147 L 62.25713,55.723147 C 65.759457,55.723147 69.046873,55.804561 69.562498,55.904068 C 70.078123,56.003575 71.931619,56.0317 73.681378,55.966568 L 76.862758,55.848147 L 77.181378,46.345905 L 77.499998,36.843662 L 74.249998,36.845905 L 70.999998,36.848147 L 70.999998,38.879532 L 70.999998,40.910917 L 69.710838,41.405614 L 68.421677,41.900311 L 68.25561,44.104906 L 68.089543,46.309502 L 66.79477,47.328824 C 66.082646,47.889452 65.454998,48.910647 65.399998,49.598147 C 65.344998,50.285647 65.232498,51.523147 65.149998,52.348147 L 64.999998,53.848147 L 63.940981,53.848147 L 62.881964,53.848147 L 63.457293,52.917245 L 64.032622,51.986344 L 62.991533,51.342916 L 61.950445,50.699487 L 62.225221,51.898817 L 62.499998,53.098147 L 61.098356,53.607028 L 59.696714,54.115908 L 60.255097,51.980648 L 60.81348,49.845387 L 59.7368,50.510812 L 58.660121,51.176237 L 59.266917,49.594951 L 59.873713,48.013665 L 58.333102,47.422476 L 56.79249,46.831288 L 57.364859,45.339718 L 57.937228,43.848147 L 56.909596,43.848147 L 55.881964,43.848147 L 56.435237,42.952932 L 56.988511,42.057717 L 55.447344,41.466315 L 53.906178,40.874914 L 54.203088,39.111531 L 54.499998,37.348147 L 50.649988,37.03182 L 46.799979,36.715492 L 47.357103,37.616939 C 47.663522,38.112734 47.990566,42.393325 48.083868,47.129361 L 48.253507,55.740337 L 51.376753,56.134205 L 54.499998,56.528073 L 51.249998,56.68811 L 47.999998,56.848147 L 47.999998,57.848147 L 47.999998,58.848147 L 50.893009,58.848147 L 53.78602,58.848147 L 54.410262,57.221399 z M 69.510079,53.864459 L 68.881964,52.848147 L 70.440981,52.848147 C 72.197507,52.848147 72.45614,53.448202 71.069096,54.305442 L 70.138195,54.880771 L 69.510079,53.864459 z M 76.999998,57.848147 L 76.999998,56.848147 L 73.999998,56.848147 L 70.999998,56.848147 L 70.999998,57.848147 L 70.999998,58.848147 L 73.999998,58.848147 L 76.999998,58.848147 L 76.999998,57.848147 z M 105.33901,57.787171 L 104.27804,56.726194 L 92.137129,57.037171 L 79.996214,57.348147 L 79.998106,56.43148 L 79.999998,55.514814 L 79.399862,56.114949 L 78.799727,56.715085 L 79.458879,57.781616 L 80.118032,58.848147 L 93.259015,58.848147 L 106.39999,58.848147 L 105.33901,57.787171 z M 123.99999,57.848147 L 123.99999,56.848147 L 120.44097,56.848147 L 116.88196,56.848147 L 117.49999,57.848147 L 118.11802,58.848147 L 121.05901,58.848147 L 123.99999,58.848147 L 123.99999,57.848147 z M 139.99999,57.848147 L 139.99999,56.848147 L 136.99999,56.848147 L 133.99999,56.848147 L 133.99999,57.848147 L 133.99999,58.848147 L 136.99999,58.848147 L 139.99999,58.848147 L 139.99999,57.848147 z M 156.99999,57.848147 L 156.99999,56.848147 L 153.99999,56.848147 L 150.99999,56.848147 L 150.99999,57.848147 L 150.99999,58.848147 L 153.99999,58.848147 L 156.99999,58.848147 L 156.99999,57.848147 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 103.38155,54.296209 L 103.97708,52.744271 L 103.13701,53.263463 L 102.29694,53.782654 L 101.04519,49.5654 C 100.35674,47.245911 99.277422,44.699266 98.646723,43.906189 L 97.499998,42.46423 L 98.999998,43.328083 L 100.49999,44.191936 L 98.708278,42.145201 L 96.916558,40.098466 L 97.208278,38.723306 L 97.499998,37.348147 L 93.249998,37.040649 L 88.999998,36.733151 L 88.999998,38.623983 C 88.999998,39.66394 88.662498,40.852314 88.249998,41.264814 C 87.837498,41.677314 87.462291,42.314814 87.416204,42.68148 C 87.370117,43.048147 86.807617,44.614942 86.166204,46.163247 C 85.524791,47.711551 84.999998,49.425609 84.999998,49.972264 L 84.999998,50.966181 L 84.093257,50.405784 L 83.186516,49.845387 L 83.75078,52.003139 L 84.315045,54.160891 L 83.262306,53.510262 L 82.209568,52.859634 L 81.636168,54.353891 L 81.062768,55.848147 L 91.924394,55.848147 L 102.78601,55.848147 L 103.38155,54.296209 z M 89.889676,52.598147 L 91.244887,50.848147 L 90.422443,50.848147 L 89.599998,50.848147 L 90.699335,49.74881 L 91.798672,48.649473 L 93.974695,49.340116 L 96.150719,50.030759 L 95.584034,50.597444 L 95.01735,51.164128 L 96.210446,52.756138 L 97.403542,54.348147 L 96.079915,53.176292 L 94.756288,52.004437 L 93.214098,52.596231 L 91.671908,53.188024 L 92.507847,51.768086 L 93.343787,50.348147 L 90.939125,52.348147 L 88.534464,54.348147 L 89.889676,52.598147 z M 91.999998,46.848147 C 91.999998,46.298147 92.19844,45.848147 92.440981,45.848147 C 92.683522,45.848147 93.160079,46.298147 93.499998,46.848147 L 94.118032,47.848147 L 93.059015,47.848147 L 91.999998,47.848147 L 91.999998,46.848147 z M 123.55643,49.848147 L 123.29883,43.848147 L 128.64941,43.848147 L 133.99999,43.848147 L 134.12624,47.098147 C 134.19567,48.885647 134.22702,51.585647 134.1959,53.098147 L 134.13931,55.848147 L 137.17664,55.848147 L 140.21397,55.848147 L 139.73352,54.598147 L 139.25308,53.348147 L 145.49624,53.348147 L 151.73941,53.348147 L 151.26271,54.598147 L 150.78601,55.848147 L 153.82438,55.848147 L 156.86275,55.848147 L 157.18137,46.345905 L 157.49999,36.843662 L 154.27738,36.845905 L 151.05477,36.848147 L 151.41498,41.848147 L 151.77518,46.848147 L 145.88759,46.848147 L 139.99999,46.848147 L 139.88464,43.598147 C 139.8212,41.810647 139.7087,39.673147 139.63464,38.848147 L 139.49999,37.348147 L 123.92375,37.051483 L 108.34751,36.754819 L 108.48917,39.783573 C 108.56709,41.449388 108.83982,43.021311 109.09525,43.276736 C 109.35067,43.532162 111.38306,43.848735 113.61166,43.980232 L 117.66366,44.219318 L 117.53854,47.783732 L 117.41342,51.348147 L 118.32915,52.598147 L 119.24488,53.848147 L 118.06342,53.848147 L 116.88196,53.848147 L 117.49999,54.848147 L 118.11802,55.848147 L 120.96603,55.848147 L 123.81403,55.848147 L 123.55643,49.848147 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z"
+ style="fill:#322e6c" />
+ <path
+ id="path2616"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 133.5033,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 62.972739,102.96542 L 63.5348,100.58269 L 65.017399,102.36911 C 65.832828,103.35164 66.499998,104.42387 66.499998,104.75184 L 66.499998,105.34814 L 69.999998,105.14045 C 71.924998,105.02623 74.055354,104.83873 74.734122,104.72379 L 75.968245,104.51481 L 74.906238,103.23517 L 73.84423,101.95553 L 70.172114,101.53817 L 66.499998,101.12082 L 71.21629,101.33445 L 75.932583,101.54808 L 75.311782,100.5436 L 74.690981,99.53913 L 76.015428,100.35768 L 77.339875,101.17623 L 76.762457,99.671508 L 76.185038,98.166779 L 77.077205,96.757463 L 77.969372,95.348147 L 77.984685,98.098147 L 77.999998,100.84814 L 81.749998,101.01625 L 85.499998,101.18435 L 81.852441,101.5705 L 78.204883,101.95666 L 77.705062,103.86798 L 77.205241,105.7793 L 85.602619,105.74813 L 93.999998,105.71697 L 93.999998,103.28256 L 93.999998,100.84814 L 95.116629,100.84814 L 96.233261,100.84814 L 95.729814,102.77332 L 95.226368,104.69851 L 96.613183,104.16634 L 97.999998,103.63417 L 97.999998,104.74115 L 97.999998,105.84814 L 101.46481,105.84814 L 104.92962,105.84814 L 105.86619,104.09814 C 106.38131,103.13564 106.73464,102.04814 106.65138,101.68148 C 106.56811,101.31481 106.89901,100.63981 107.3867,100.18148 L 108.2734,99.348147 L 107.78436,102.05112 L 107.29531,104.7541 L 109.89765,105.24338 C 111.32894,105.51248 114.9054,105.75151 117.84535,105.77455 L 123.19071,105.81644 L 125.17291,104.7556 L 127.15511,103.69476 L 126.64069,102.35421 L 126.12627,101.01366 L 127.64492,100.4309 C 128.48017,100.11039 130.95332,99.848147 133.14079,99.848147 L 137.11802,99.848147 L 136.57002,100.73484 L 136.02201,101.62153 L 137.49999,102.84814 L 138.97797,104.07476 L 138.45698,104.91774 L 137.93599,105.76072 L 145.91785,105.74318 L 153.89972,105.72564 L 154.19985,100.61549 L 154.49999,95.505348 L 156.6591,95.350562 L 158.81821,95.195777 L 158.46957,97.006113 L 158.12093,98.816448 L 159.48943,99.582298 C 160.2421,100.00351 160.79797,100.57314 160.72469,100.84814 C 160.65141,101.12314 161.43358,102.33168 162.46285,103.53377 L 164.33424,105.7194 L 179.1607,105.79019 L 193.98717,105.86097 L 195.74358,104.10092 L 197.49999,102.34087 L 197.49999,90.344512 L 197.49999,78.348147 L 196.25245,77.029181 L 195.00492,75.710216 L 183.00245,75.744699 C 176.4011,75.763664 169.42499,75.794699 167.49999,75.813664 L 163.99999,75.848147 L 163.99999,80.74236 L 163.99999,85.636574 L 161.62756,85.49236 L 159.25512,85.348147 L 159.79004,83.953539 L 160.32495,82.558932 L 158.47134,81.203539 L 156.61773,79.848147 L 157.49742,79.848147 L 158.37711,79.848147 L 156.32285,77.934313 L 154.26859,76.020479 L 149.88429,75.699842 L 145.49999,75.379204 L 144.99999,83.166933 L 144.49999,90.954661 L 145.43332,91.884737 L 146.36666,92.814814 L 145.67299,93.508479 L 144.97933,94.202145 L 143.57833,92.286175 L 142.17734,90.370204 L 142.64768,89.609175 L 143.11802,88.848147 L 141.95202,88.848147 L 140.78601,88.848147 L 141.36162,87.348147 L 141.93722,85.848147 L 140.96861,85.848147 L 139.99999,85.848147 L 139.99999,84.014814 C 139.99999,83.00648 139.66249,81.84398 139.24999,81.43148 C 138.83749,81.01898 138.47787,80.38148 138.45083,80.014814 C 138.4238,79.648147 138.09233,78.448147 137.71425,77.348147 L 137.02682,75.348147 L 131.51165,75.690798 L 125.99648,76.03345 L 126.50743,76.860179 L 127.01837,77.686907 L 125.67882,79.026456 L 124.33928,80.366004 L 124.75297,81.607076 L 125.16666,82.848147 L 124.19173,82.848147 L 123.21681,82.848147 L 122.43993,85.598147 C 122.01265,87.110647 121.62637,88.648147 121.58152,89.014814 C 121.53668,89.38148 121.16249,90.01898 120.74999,90.43148 L 119.99999,91.18148 L 119.99999,89.848147 L 119.99999,88.514814 L 119.35749,89.157314 L 118.71499,89.799815 L 119.89201,91.218035 L 121.06902,92.636255 L 119.4352,94.27008 L 117.80138,95.903905 L 119.15068,97.567984 L 120.49999,99.232064 L 119.3354,98.533875 L 118.17081,97.835686 L 117.66435,99.091916 L 117.15788,100.34815 L 117.07894,88.098147 L 116.99999,75.848147 L 112.44097,75.848147 L 107.88196,75.848147 L 108.45016,76.767527 L 109.01837,77.686907 L 107.57347,79.131813 L 106.12856,80.576718 L 107.31428,81.771678 L 108.49999,82.966638 L 106.58595,82.237454 L 104.6719,81.50827 L 105.34514,82.597588 L 106.01837,83.686907 L 104.25918,85.446099 C 103.29163,86.413654 102.61249,87.462433 102.74999,87.776718 C 102.88749,88.091004 102.84817,88.798147 102.66261,89.348147 L 102.32523,90.348147 L 100.67362,88.98484 L 99.022019,87.621533 L 99.570025,86.73484 L 100.11803,85.848147 L 99.059015,85.848147 C 98.476556,85.848147 98.053287,85.510647 98.118419,85.098147 C 98.183551,84.685647 98.183551,83.737502 98.118419,82.991158 L 97.999998,81.634169 L 96.358554,82.26405 L 94.717111,82.893931 L 95.775959,81.618097 L 96.834808,80.342262 L 95.536686,77.916699 L 94.238563,75.491135 L 86.969566,75.649771 C 82.971617,75.737021 78.98044,76.037986 78.100283,76.318582 L 76.499998,76.828757 L 73.460804,83.018184 L 70.42161,89.20761 L 69.179554,89.621628 L 67.937498,90.035647 L 68.176026,89.191897 C 68.307216,88.727835 67.10264,85.535647 65.499189,82.098147 L 62.583825,75.848147 L 57.041911,75.729726 C 53.993859,75.664594 51.230825,75.641819 50.901835,75.679114 C 50.572846,75.716408 45.528182,75.823206 39.691471,75.916441 L 29.079269,76.08596 L 29.289634,77.217054 C 29.405334,77.839155 29.949998,78.678756 30.499998,79.082834 L 31.499998,79.817521 L 30.156378,79.832834 L 28.812759,79.848147 L 28.306053,77.910503 L 27.799348,75.972859 L 17.347889,75.660503 L 6.8964295,75.348147 L 5.448214,77.562964 L 3.9999984,79.77778 L 3.9999984,90.590457 L 3.9999984,101.40313 L 5.5343704,103.59375 L 7.0687424,105.78438 L 34.739711,105.56626 L 62.410679,105.34814 L 62.972739,102.96542 z M 28.250772,102.59814 L 28.668213,101.34814 L 45.084106,101.28894 C 54.112846,101.25638 60.151461,101.40949 58.503248,101.62918 L 55.506498,102.02861 L 54.677117,103.18838 L 53.847736,104.34814 L 53.340534,103.09814 L 52.833331,101.84814 L 40.857648,101.84814 L 28.881964,101.84814 L 29.499998,102.84814 L 30.118032,103.84814 L 28.975682,103.84814 L 27.833331,103.84814 L 28.250772,102.59814 z M 10.713485,101.11217 C 13.580903,100.91086 18.530903,100.90901 21.713485,101.10807 L 27.499998,101.46997 L 16.499998,101.47408 L 5.4999984,101.47818 L 10.713485,101.11217 z M 88.249998,101.15882 C 89.212498,100.90729 90.787498,100.90729 91.749998,101.15882 L 93.499998,101.61614 L 89.999998,101.61614 L 86.499998,101.61614 L 88.249998,101.15882 z M 99.761657,101.14088 C 101.00556,100.90169 102.80556,100.91077 103.76165,101.16106 L 105.49999,101.61614 L 101.49999,101.59596 L 97.499998,101.57578 L 99.761657,101.14088 z M 111.24999,101.15882 C 112.21249,100.90729 113.78749,100.90729 114.74999,101.15882 L 116.49999,101.61614 L 112.99999,101.61614 L 109.49999,101.61614 L 111.24999,101.15882 z M 119.76165,101.14088 C 121.00556,100.90169 122.80556,100.91077 123.76165,101.16106 L 125.49999,101.61614 L 121.49999,101.59596 L 117.49999,101.57578 L 119.76165,101.14088 z M 139.76165,101.14088 C 141.00556,100.90169 142.80556,100.91077 143.76165,101.16106 L 145.49999,101.61614 L 141.49999,101.59596 L 137.49999,101.57578 L 139.76165,101.14088 z M 148.24999,101.15882 C 149.21249,100.90729 150.78749,100.90729 151.74999,101.15882 L 153.49999,101.61614 L 149.99999,101.61614 L 146.49999,101.61614 L 148.24999,101.15882 z M 164.74999,101.14241 C 165.98749,100.90406 168.01249,100.90406 169.24999,101.14241 L 171.49999,101.57578 L 166.99999,101.57578 L 162.49999,101.57578 L 164.74999,101.14241 z M 178.2108,101.11032 C 181.35175,100.91252 186.75175,100.9109 190.2108,101.10673 L 196.49999,101.46278 L 184.49999,101.46638 L 172.49999,101.46997 L 178.2108,101.11032 z M 63.903322,98.540935 L 64.714421,97.733724 L 70.10721,98.05504 L 75.499998,98.376355 L 69.296111,98.862251 L 63.092223,99.348147 L 63.903322,98.540935 z M 94.359813,98.877843 C 94.102914,98.619176 92.229361,98.477024 90.196361,98.56195 L 86.499998,98.716361 L 90.499998,97.888165 L 94.499998,97.059969 L 94.752338,97.711078 L 95.004678,98.362186 L 99.401757,98.012473 C 101.82014,97.82013 104.63159,97.853996 105.64941,98.08773 L 107.49999,98.512702 L 101.16344,98.930424 C 97.678348,99.160172 94.616712,99.13651 94.359813,98.877843 z M 7.2499984,98.158821 C 8.2124984,97.907294 9.7874984,97.907294 10.749998,98.158821 L 12.499998,98.616144 L 8.9999984,98.616144 L 5.4999984,98.616144 L 7.2499984,98.158821 z M 28.460162,97.598147 L 27.983095,96.348147 L 20.991547,96.680206 L 13.999998,97.012265 L 13.999998,90.348147 L 13.999998,83.684029 L 21.002501,84.016088 L 28.005003,84.348147 L 28.352518,83.348147 C 28.543651,82.798147 28.730964,85.273147 28.76877,88.848147 C 28.806575,92.423147 28.874068,95.882136 28.918753,96.534789 L 28.999998,97.72143 L 32.249998,98.124751 L 35.499998,98.528073 L 32.218613,98.68811 L 28.937228,98.848147 L 28.460162,97.598147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 48.730966,98.19221 C 49.407999,97.918287 50.757999,97.901613 51.730966,98.155156 L 53.499998,98.616144 L 50.499998,98.653198 L 47.499998,98.690252 L 48.730966,98.19221 z M 56.249998,98.158821 C 57.212498,97.907294 58.787498,97.907294 59.749998,98.158821 L 61.499998,98.616144 L 57.999998,98.616144 L 54.499998,98.616144 L 56.249998,98.158821 z M 80.249998,98.158821 C 81.212498,97.907294 82.787498,97.907294 83.749998,98.158821 L 85.499998,98.616144 L 81.999998,98.616144 L 78.499998,98.616144 L 80.249998,98.158821 z M 111.24999,98.158821 C 112.21249,97.907294 113.78749,97.907294 114.74999,98.158821 L 116.49999,98.616144 L 112.99999,98.616144 L 109.49999,98.616144 L 111.24999,98.158821 z M 122.24999,98.158821 C 123.21249,97.907294 124.78749,97.907294 125.74999,98.158821 L 127.49999,98.616144 L 123.99999,98.616144 L 120.49999,98.616144 L 122.24999,98.158821 z M 138.24999,98.158821 C 139.21249,97.907294 140.78749,97.907294 141.74999,98.158821 L 143.49999,98.616144 L 139.99999,98.616144 L 136.49999,98.616144 L 138.24999,98.158821 z M 148.24999,98.158821 C 149.21249,97.907294 150.78749,97.907294 151.74999,98.158821 L 153.49999,98.616144 L 149.99999,98.616144 L 146.49999,98.616144 L 148.24999,98.158821 z M 163.24999,98.131893 C 164.76249,97.902768 167.23749,97.902768 168.74999,98.131893 L 171.49999,98.548483 L 165.99999,98.548483 L 160.49999,98.548483 L 163.24999,98.131893 z M 173.73096,98.19221 C 174.40799,97.918287 175.75799,97.901613 176.73096,98.155156 L 178.49999,98.616144 L 175.49999,98.653198 L 172.49999,98.690252 L 173.73096,98.19221 z M 191.73096,98.19221 C 192.40799,97.918287 193.75799,97.901613 194.73096,98.155156 L 196.49999,98.616144 L 193.49999,98.653198 L 190.49999,98.690252 L 191.73096,98.19221 z M 37.999998,90.348147 L 37.999998,83.848147 L 41.999998,83.848147 L 45.999998,83.848147 L 45.999998,90.348147 L 45.999998,96.848147 L 41.999998,96.848147 L 37.999998,96.848147 L 37.999998,90.348147 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 179.99999,90.348147 L 179.99999,83.848147 L 183.99999,83.848147 L 187.99999,83.848147 L 187.99999,90.348147 L 187.99999,96.848147 L 183.99999,96.848147 L 179.99999,96.848147 L 179.99999,90.348147 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 92.499998,92.848147 L 91.881964,91.848147 L 92.940981,91.848147 L 93.999998,91.848147 L 93.999998,92.848147 C 93.999998,93.398147 93.801556,93.848147 93.559015,93.848147 C 93.316474,93.848147 92.839917,93.398147 92.499998,92.848147 z M 153.99999,93.014814 L 153.99999,92.18148 L 155.456,92.18148 L 156.91201,92.18148 L 156.39698,93.014814 C 156.11372,93.473147 155.45851,93.848147 154.94097,93.848147 C 154.42343,93.848147 153.99999,93.473147 153.99999,93.014814 z M 52.564291,78.555019 L 53.247075,76.761891 L 53.80687,77.321686 L 54.366665,77.88148 L 53.124086,79.114814 L 51.881507,80.348147 L 52.564291,78.555019 z M 162.68707,78.086488 L 162.23199,76.348147 L 162.25217,80.348147 L 162.27235,84.348147 L 162.70725,82.086488 C 162.94644,80.842575 162.93736,79.042575 162.68707,78.086488 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 54.999998,64.348147 L 54.999998,61.848147 L 55.833331,61.848147 C 56.291665,61.848147 56.96276,62.144243 57.324655,62.506138 L 57.982646,63.164128 L 56.741322,64.698096 L 55.499998,66.232064 L 56.6809,65.523794 L 57.861801,64.815523 L 58.489917,65.831835 L 59.118032,66.848147 L 62.499998,66.848147 L 65.881964,66.848147 L 66.662861,65.598147 C 67.092354,64.910647 67.535146,63.744413 67.646842,63.006516 C 67.758539,62.268618 68.170211,61.368618 68.561669,61.006516 L 69.27341,60.348147 L 68.784953,63.048047 L 68.296496,65.747946 L 69.730035,66.298047 C 70.518481,66.600602 74.308911,66.848147 78.153214,66.848147 L 85.142855,66.848147 L 86.37738,65.598147 C 87.056369,64.910647 87.910103,63.560647 88.274567,62.598147 L 88.937228,60.848147 L 93.52763,60.848147 L 98.118032,60.848147 L 97.549824,61.767527 L 96.981616,62.686907 L 98.443188,64.14848 L 99.90476,65.610052 L 99.285712,66.229099 L 98.666665,66.848147 L 103.72754,66.848147 L 108.78842,66.848147 L 108.6442,64.519011 L 108.49999,62.189875 L 103.99999,62.382671 L 99.499998,62.575467 L 103.16344,62.158538 L 106.82689,61.741609 L 107.37095,60.323817 L 107.91501,58.906025 L 106.62714,57.618157 L 105.33928,56.33029 L 105.75297,55.089218 L 106.16666,53.848147 L 105.02431,53.848147 L 103.88196,53.848147 L 104.49999,52.848147 L 105.11802,51.848147 L 104.05901,51.848147 L 102.99999,51.848147 L 103.24999,50.598147 L 103.49999,49.348147 L 102.08072,49.654571 L 100.66144,49.960995 L 101.95316,48.404571 L 103.24488,46.848147 L 102.01545,46.848147 L 100.78601,46.848147 L 101.31486,45.470002 L 101.8437,44.091857 L 100.67185,42.920002 C 100.02733,42.275482 99.443748,41.320647 99.374998,40.798147 C 99.306248,40.275647 99.137498,39.623147 98.999998,39.348147 C 98.862498,39.073147 98.693748,38.398147 98.624998,37.848147 C 98.556248,37.298147 98.162498,36.848147 97.749998,36.848147 C 97.337498,36.848147 94.72344,36.848147 91.940981,36.848147 L 86.881964,36.848147 L 87.457293,37.779049 L 88.032622,38.70995 L 87.01631,39.338066 L 85.999998,39.966181 L 85.999998,41.907164 L 85.999998,43.848147 L 85.031383,43.848147 L 84.062768,43.848147 L 84.638372,45.348147 L 85.213976,46.848147 L 84.04797,46.848147 L 82.881964,46.848147 L 83.499998,47.848147 L 84.118032,48.848147 L 82.999998,48.848147 L 81.881964,48.848147 L 82.457293,49.779049 L 83.032622,50.70995 L 81.999998,51.348147 L 80.967374,51.986344 L 81.499998,52.848147 L 82.032622,53.70995 L 80.999998,54.348147 L 79.967374,54.986344 L 80.535624,55.905791 L 81.103874,56.825238 L 79.551936,56.229704 L 77.999998,55.634169 L 77.999998,46.241158 L 77.999998,36.848147 L 73.499998,36.848147 L 68.999998,36.848147 L 69.181877,37.598147 C 69.28191,38.010647 68.04441,41.150927 66.431877,44.576547 L 63.499998,50.804947 L 62.249998,50.826547 L 60.999998,50.848147 L 61.198123,50.098147 C 61.307092,49.685647 61.051767,48.335647 60.630735,47.098147 L 59.865223,44.848147 L 58.93261,44.848147 C 58.419674,44.848147 58.089154,44.510647 58.198123,44.098147 C 58.307092,43.685647 58.051767,42.335647 57.630735,41.098147 L 56.865223,38.848147 L 55.873593,38.848147 L 54.881964,38.848147 L 55.499998,37.848147 L 56.118032,36.848147 L 51.059015,36.848147 L 45.999998,36.848147 L 45.999998,51.848147 L 45.999998,66.848147 L 50.499998,66.848147 L 54.999998,66.848147 L 54.999998,64.348147 z M 49.249998,62.158821 C 50.212498,61.907294 51.787498,61.907294 52.749998,62.158821 L 54.499998,62.616144 L 50.999998,62.616144 L 47.499998,62.616144 L 49.249998,62.158821 z M 60.761657,62.140886 C 62.00557,61.901693 63.80557,61.910774 64.761657,62.161067 L 66.499998,62.616144 L 62.499998,62.595964 L 58.499998,62.575783 L 60.761657,62.140886 z M 72.249998,62.158821 C 73.212498,61.907294 74.787498,61.907294 75.749998,62.158821 L 77.499998,62.616144 L 73.999998,62.616144 L 70.499998,62.616144 L 72.249998,62.158821 z M 80.761657,62.140886 C 82.00557,61.901693 83.80557,61.910774 84.761657,62.161067 L 86.499998,62.616144 L 82.499998,62.595964 L 78.499998,62.575783 L 80.761657,62.140886 z M 55.31309,59.545723 L 54.799727,58.715085 L 55.399862,58.114949 L 55.999998,57.514814 L 55.998176,58.43148 L 55.996354,59.348147 L 62.248176,59.162727 C 69.240673,58.955339 68.142162,59.579626 60.663225,60.063458 L 55.826452,60.376361 L 55.31309,59.545723 z M 74.499998,59.913308 L 70.499998,59.26228 L 74.749998,58.778788 L 78.999998,58.295295 L 78.999998,59.571721 C 78.999998,60.273755 78.887498,60.78429 78.749998,60.706242 C 78.612498,60.628194 76.699998,60.271374 74.499998,59.913308 z M 49.249998,59.158821 C 50.212498,58.907294 51.787498,58.907294 52.749998,59.158821 L 54.499998,59.616144 L 50.999998,59.616144 L 47.499998,59.616144 L 49.249998,59.158821 z M 81.749998,59.142414 C 82.987498,58.904061 85.012498,58.904061 86.249998,59.142414 L 88.499998,59.575783 L 83.999998,59.575783 L 79.499998,59.575783 L 81.749998,59.142414 z M 99.761657,59.140886 C 101.00556,58.901693 102.80556,58.910774 103.76165,59.161067 L 105.49999,59.616144 L 101.49999,59.595964 L 97.499998,59.575783 L 99.761657,59.140886 z M 49.249998,56.158821 C 50.212498,55.907294 51.787498,55.907294 52.749998,56.158821 L 54.499998,56.616144 L 50.999998,56.616144 L 47.499998,56.616144 L 49.249998,56.158821 z M 56.238093,56.276718 C 56.552379,55.962433 59.370236,55.70529 62.499998,55.70529 C 65.62976,55.70529 68.447617,55.962433 68.761903,56.276718 L 69.333331,56.848147 L 62.499998,56.848147 L 55.666665,56.848147 L 56.238093,56.276718 z M 72.249998,56.158821 C 73.212498,55.907294 74.787498,55.907294 75.749998,56.158821 L 77.499998,56.616144 L 73.999998,56.616144 L 70.499998,56.616144 L 72.249998,56.158821 z M 87.249998,56.109159 C 90.412498,55.910708 95.587498,55.910708 98.749998,56.109159 L 104.49999,56.469978 L 92.999998,56.469978 L 81.499998,56.469978 L 87.249998,56.109159 z M 53.499998,53.848147 L 52.881964,52.848147 L 53.940981,52.848147 L 54.999998,52.848147 L 54.999998,53.848147 C 54.999998,54.398147 54.801556,54.848147 54.559015,54.848147 C 54.316474,54.848147 53.839917,54.398147 53.499998,53.848147 z M 69.999998,53.907164 L 69.999998,52.848147 L 70.999998,52.848147 C 71.549998,52.848147 71.999998,53.046589 71.999998,53.28913 C 71.999998,53.531671 71.549998,54.008228 70.999998,54.348147 L 69.999998,54.966181 L 69.999998,53.907164 z M 124.49999,56.028904 L 124.49999,45.20966 L 128.21577,44.990413 L 131.93155,44.771166 L 132.21577,55.559656 L 132.49999,66.348147 L 136.74999,66.655645 L 140.99999,66.963143 L 140.99999,60.629219 L 140.99999,54.295295 L 144.95309,54.672284 L 148.90618,55.049272 L 149.20309,60.69871 L 149.49999,66.348147 L 153.90088,66.663018 L 158.30177,66.977888 L 159.13557,65.663018 L 159.96936,64.348147 L 159.98468,51.205136 L 159.99999,38.062125 L 158.4182,37.455136 C 157.54822,37.121292 155.61322,36.848147 154.1182,36.848147 L 151.39999,36.848147 L 150.19999,38.048147 L 148.99999,39.248147 L 148.99999,42.079532 L 148.99999,44.910917 L 147.49775,45.487379 L 145.99552,46.063841 L 143.62773,45.469564 L 141.25995,44.875288 L 140.6121,40.823869 L 139.96425,36.77245 L 122.9269,36.896627 L 105.88955,37.020805 L 106.19477,40.684476 L 106.49999,44.348147 L 111.24999,44.652938 L 115.99999,44.957729 L 115.99999,55.902938 L 115.99999,66.848147 L 120.24999,66.848147 L 124.49999,66.848147 L 124.49999,56.028904 z M 118.76165,62.140886 C 120.00556,61.901693 121.80556,61.910774 122.76165,62.161067 L 124.49999,62.616144 L 120.49999,62.595964 L 116.49999,62.575783 L 118.76165,62.140886 z M 135.24999,62.158821 C 136.21249,61.907294 137.78749,61.907294 138.74999,62.158821 L 140.49999,62.616144 L 136.99999,62.616144 L 133.49999,62.616144 L 135.24999,62.158821 z M 152.76165,62.140886 C 154.00556,61.901693 155.80556,61.910774 156.76165,62.161067 L 158.49999,62.616144 L 154.49999,62.595964 L 150.49999,62.575783 L 152.76165,62.140886 z M 118.76165,59.140886 C 120.00556,58.901693 121.80556,58.910774 122.76165,59.161067 L 124.49999,59.616144 L 120.49999,59.595964 L 116.49999,59.575783 L 118.76165,59.140886 z M 135.24999,59.158821 C 136.21249,58.907294 137.78749,58.907294 138.74999,59.158821 L 140.49999,59.616144 L 136.99999,59.616144 L 133.49999,59.616144 L 135.24999,59.158821 z M 152.76165,59.140886 C 154.00556,58.901693 155.80556,58.910774 156.76165,59.161067 L 158.49999,59.616144 L 154.49999,59.595964 L 150.49999,59.575783 L 152.76165,59.140886 z M 118.76165,56.140886 C 120.00556,55.901693 121.80556,55.910774 122.76165,56.161067 L 124.49999,56.616144 L 120.49999,56.595964 L 116.49999,56.575783 L 118.76165,56.140886 z M 135.24999,56.158821 C 136.21249,55.907294 137.78749,55.907294 138.74999,56.158821 L 140.49999,56.616144 L 136.99999,56.616144 L 133.49999,56.616144 L 135.24999,56.158821 z M 152.76165,56.140886 C 154.00556,55.901693 155.80556,55.910774 156.76165,56.161067 L 158.49999,56.616144 L 154.49999,56.595964 L 150.49999,56.575783 L 152.76165,56.140886 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 80.088944,45.103642 C 79.954467,41.394229 79.65444,38.169256 79.422219,37.937034 C 79.189997,37.704813 78.999998,41.039814 78.999998,45.348147 L 78.999998,53.18148 L 79.666723,52.514755 L 80.333449,51.848029 L 80.088944,45.103642 z M 146.48991,42.831835 L 145.86179,41.815523 L 144.93089,42.390852 C 143.54385,43.248092 143.80248,43.848147 145.55901,43.848147 L 147.11802,43.848147 L 146.48991,42.831835 z"
+ style="fill:#272454" />
+ <path
+ id="path2614"
+ d="M 2.8701468,107.94626 L 0.49999842,106.02921 L 0.18487064,89.605349 L -0.13025713,73.18148 L 1.1848706,72.891405 C 1.9081909,72.731864 11.721246,72.413115 22.991661,72.183075 L 43.483324,71.764821 L 44.418032,70.830113 L 45.352741,69.895404 L 43.676369,68.043035 L 41.999998,66.190666 L 41.999998,51.741913 L 41.999998,37.29316 L 43.556702,35.070653 L 45.113406,32.848147 L 50.365572,32.848147 L 55.617739,32.848147 L 57.208825,34.098147 C 58.083922,34.785647 59.670554,37.090909 60.734674,39.220951 L 62.669438,43.093755 L 65.084718,38.220951 L 67.499998,33.348147 L 73.37835,33.044413 L 79.256702,32.74068 L 81.408139,34.76185 L 83.559577,36.783021 L 84.815175,34.772489 L 86.070773,32.761956 L 93.25958,33.055052 L 100.44838,33.348147 L 101.56497,35.595287 L 102.68157,37.842427 L 103.81934,35.345287 L 104.95711,32.848147 L 123.59518,32.848147 L 142.23325,32.848147 L 141.72239,34.801671 L 141.21154,36.755195 L 142.43196,38.424222 L 143.65238,40.093249 L 145.86727,39.39027 L 148.08216,38.687292 L 148.66608,35.767719 L 149.24999,32.848147 L 155.64974,32.848147 L 162.04949,32.848147 L 163.02474,35.413247 L 163.99999,37.978346 L 163.99999,51.169849 L 163.99999,64.361351 L 163.0698,67.604749 L 162.1396,70.848147 L 179.45901,70.848147 L 196.77842,70.848147 L 199.13921,72.759794 L 201.49999,74.671441 L 201.49999,90.22408 L 201.49999,105.77671 L 199.71559,107.56243 L 197.93119,109.34814 L 166.45621,109.63856 L 134.98122,109.92898 L 134.01536,107.38856 L 133.04949,104.84814 L 131.76187,104.84814 L 130.47425,104.84814 L 129.48712,107.09814 L 128.49999,109.34814 L 66.870146,109.60573 L 5.2402952,109.86331 L 2.8701468,107.94626 z M 127.53824,103.77418 L 129.05135,100.84814 L 131.90435,100.84814 L 134.75735,100.84814 L 136.01479,103.88387 L 137.27223,106.91959 L 146.37532,106.63387 L 155.47842,106.34814 L 156.83931,103.50313 L 158.2002,100.65812 L 160.35009,103.73585 L 162.49999,106.81358 L 179.095,106.83086 L 195.69001,106.84814 L 197.595,104.74315 L 199.49999,102.63817 L 199.49999,90.156576 L 199.49999,77.67498 L 196.69423,75.261563 L 193.88846,72.848147 L 178.56913,72.848147 L 163.2498,72.848147 L 161.68836,76.072158 L 160.12693,79.296169 L 161.1859,80.572158 C 161.76834,81.273952 161.99274,81.848147 161.68457,81.848147 C 161.3764,81.848147 159.67002,79.823147 157.89261,77.348147 L 154.66095,72.848147 L 150.53047,72.848147 L 146.39999,72.848147 L 145.19999,74.048147 L 143.99999,75.248147 L 143.99999,79.48913 L 143.99999,83.730113 L 143.19602,84.226995 L 142.39205,84.723876 L 140.44602,79.702439 C 139.3757,76.940649 137.97245,74.242526 137.32768,73.706611 L 136.15538,72.732218 L 131.32768,73.040183 L 126.49999,73.348147 L 123.99999,78.59459 C 122.62499,81.480133 121.16249,83.842633 120.74999,83.84459 L 119.99999,83.848147 L 119.96819,80.098147 L 119.93638,76.348147 L 118.56253,74.536039 L 117.18868,72.723932 L 112.84433,73.036039 L 108.49999,73.348147 L 104.91976,80.160251 L 101.33952,86.972354 L 97.919764,80.160251 L 94.499998,73.348147 L 85.499998,73.348147 L 76.499998,73.348147 L 73.1447,80.309061 L 69.789402,87.269975 L 66.314317,80.16051 L 62.839232,73.051045 L 35.536538,72.963704 L 8.2338437,72.876364 L 5.616921,74.934836 L 2.9999984,76.993307 L 2.9999984,90.091986 L 2.9999984,103.19066 L 4.6528969,105.01709 L 6.3057953,106.84353 L 66.165463,106.77187 L 126.02512,106.70022 L 127.53824,103.77418 z M 14.999998,90.598147 L 14.999998,85.848147 L 20.499998,85.848147 L 25.999998,85.848147 L 25.999998,90.598147 L 25.999998,95.348147 L 20.499998,95.348147 L 14.999998,95.348147 L 14.999998,90.598147 z M 22.999998,90.348147 L 22.999998,88.848147 L 20.499998,88.848147 L 17.999998,88.848147 L 17.999998,90.348147 L 17.999998,91.848147 L 20.499998,91.848147 L 22.999998,91.848147 L 22.999998,90.348147 z M 39.385425,90.984412 L 39.499998,86.378747 L 41.249998,86.040123 L 42.999998,85.701499 L 42.999998,90.158191 L 42.999998,94.614884 L 41.135425,95.102481 L 39.270853,95.590078 L 39.385425,90.984412 z M 41.655935,88.579115 L 41.157893,87.348147 L 41.194947,90.348147 L 41.232001,93.348147 L 41.692989,91.579115 C 41.946532,90.606148 41.929858,89.256148 41.655935,88.579115 z M 182.8465,90.599895 L 183.19302,85.848147 L 185.0965,85.848147 L 186.99999,85.848147 L 186.99999,90.598147 L 186.99999,95.348147 L 184.74999,95.349895 L 182.49999,95.351644 L 182.8465,90.599895 z M 185.99999,90.348147 L 185.99999,87.848147 L 184.99999,87.848147 L 183.99999,87.848147 L 183.99999,90.348147 L 183.99999,92.848147 L 184.99999,92.848147 L 185.99999,92.848147 L 185.99999,90.348147 z M 119.56428,86.555019 L 120.24707,84.761891 L 120.80686,85.321686 L 121.36666,85.88148 L 120.12408,87.114814 L 118.8815,88.348147 L 119.56428,86.555019 z M 104.23147,74.070954 L 104.81275,71.848147 L 102.47147,71.848147 C 101.18377,71.848147 98.975902,71.409285 97.565098,70.872898 L 94.999998,69.897649 L 94.999998,67.872898 L 94.999998,65.848147 L 92.999998,65.848147 L 90.999998,65.848147 L 90.999998,67.764814 L 90.999998,69.68148 L 89.749998,70.185866 L 88.499998,70.690252 L 90.999998,70.782854 C 92.374998,70.833785 94.433346,71.126097 95.574105,71.432436 L 97.648212,71.989416 L 99.471696,76.411245 L 101.29517,80.833075 L 102.47268,78.563417 C 103.12032,77.315106 103.91177,75.293497 104.23147,74.070954 z M 71.840713,75.941694 L 73.728106,72.03524 L 70.614052,71.54895 L 67.499998,71.062659 L 66.838777,71.705403 L 66.177557,72.348147 L 67.695732,76.098147 C 68.530728,78.160647 69.380274,79.848147 69.583613,79.848147 C 69.786952,79.848147 70.802647,78.090243 71.840713,75.941694 z M 57.249998,67.868363 C 59.634052,67.957593 65.611643,67.950976 67.749998,67.85674 C 68.712498,67.814323 72.06664,68.074031 75.203647,68.433869 L 80.907296,69.08812 L 84.342456,68.44368 L 87.777615,67.79924 L 89.010127,64.823694 L 90.242639,61.848147 L 92.999998,61.848147 L 95.757357,61.848147 L 96.975935,64.790053 L 98.194512,67.731959 L 101.09725,68.369508 L 103.99999,69.007058 L 107.06756,68.333306 L 110.13513,67.659555 L 110.69664,66.196287 L 111.25815,64.733019 L 109.53369,60.540583 C 108.58524,58.234743 106.02669,51.863572 103.84803,46.382424 C 101.66936,40.901276 99.389754,35.817775 98.782231,35.085754 L 97.677643,33.754807 L 92.588821,34.051477 L 87.499998,34.348147 L 84.999998,39.59459 C 83.624998,42.480133 82.162498,44.842633 81.749998,44.84459 L 80.999998,44.848147 L 80.968195,41.098147 L 80.936391,37.348147 L 79.562538,35.536039 L 78.188684,33.723932 L 73.844341,34.036039 L 69.499998,34.348147 L 66.019636,41.044003 L 62.539274,47.73986 L 59.019636,41.044003 L 55.499998,34.348147 L 51.099107,34.033276 L 46.698217,33.718406 L 45.86442,35.033276 L 45.030624,36.348147 L 45.015311,51.548457 L 44.999998,66.748767 L 46.749998,67.813088 L 48.499998,68.877409 L 51.999998,68.340137 C 53.924998,68.044637 56.287498,67.832338 57.249998,67.868363 z M 79.999998,48.407164 L 79.999998,46.848147 L 80.999998,46.848147 C 81.549998,46.848147 81.999998,47.271589 81.999998,47.78913 C 81.999998,48.306671 81.549998,49.008228 80.999998,49.348147 L 79.999998,49.966181 L 79.999998,48.407164 z M 124.43489,67.872898 L 126.99999,66.897649 L 126.99999,56.872898 L 126.99999,46.848147 L 128.96501,46.848147 L 130.93002,46.848147 L 131.21501,57.0762 L 131.49999,67.304252 L 134.24999,68.269241 L 136.99999,69.23423 L 139.74999,68.272457 L 142.49999,67.310684 L 142.99999,61.829415 L 143.49999,56.348147 L 145.74999,56.268746 L 147.99999,56.189345 L 147.99999,61.543497 L 147.99999,66.897649 L 150.73958,67.939241 L 153.47918,68.980832 L 156.63775,68.38828 L 159.79633,67.795728 L 160.33447,65.571937 C 160.63045,64.348853 160.90537,57.865808 160.9454,51.165171 L 161.01819,38.982196 L 159.84857,36.415171 L 158.67896,33.848147 L 154.54036,33.848147 L 150.40177,33.848147 L 149.20088,37.169145 C 148.54039,38.995694 147.99999,41.300794 147.99999,42.29159 L 147.99999,44.093036 L 146.58902,42.922033 L 145.17805,41.75103 L 144.45175,42.926204 L 143.72545,44.101378 L 141.8209,39.946934 L 139.91635,35.792489 L 140.51719,34.820318 L 141.11802,33.848147 L 124.22799,33.848147 L 107.33795,33.848147 L 106.23098,36.098147 C 105.14568,38.304096 103.97319,46.208285 104.86329,45.318177 C 105.11227,45.069204 105.82914,45.291387 106.45634,45.811917 L 107.5967,46.758336 L 111.29835,47.007628 L 114.99999,47.256921 L 114.99999,57.47921 L 114.99999,67.701499 L 116.74999,68.158821 C 119.78696,68.952464 121.79159,68.87788 124.43489,67.872898 z M 112.99999,53.848147 L 112.99999,49.848147 L 111.99999,49.848147 L 110.99999,49.848147 L 110.99999,52.26636 C 110.99999,54.731787 111.89719,57.848147 112.60698,57.848147 C 112.82313,57.848147 112.99999,56.048147 112.99999,53.848147 z M 143.58839,36.991176 L 142.9935,36.028631 L 143.60373,34.438389 L 144.21397,32.848147 L 145.67653,32.848147 L 147.13909,32.848147 L 146.81954,35.019819 L 146.49999,37.191491 L 145.34163,37.572606 L 144.18327,37.95372 L 143.58839,36.991176 z"
+ style="fill:#101025" />
+ <path
+ id="path2465"
+ d="M 141.86221,30.577742 C 142.23731,29.340242 142.81662,27.447147 143.14957,26.370865 C 143.71868,24.531158 143.58693,24.546127 140.94933,26.620865 C 137.46289,29.363298 134.02363,29.437912 131.41346,26.827742 C 129.03078,24.445063 128.85323,20.811782 130.92381,16.807726 C 133.81839,11.210236 140.799,9.9598263 144.30074,14.411568 C 145.41858,15.832673 146.7359,16.746495 147.22813,16.442284 C 147.72035,16.138073 149.08168,13.260119 150.2533,10.046831 C 153.48213,1.1914844 159.07928,-2.8126386 161.05002,2.323022 C 161.66914,3.9364055 159.88069,9.1474094 158.00686,11.1899 C 157.40549,11.8454 155.92219,13.78514 154.71063,15.500434 C 152.56312,18.540838 152.55684,18.631974 154.46063,19.129827 C 157.41459,19.902305 156.82531,23.360465 153.26489,26.146911 C 148.67621,29.738098 149.90617,31.637123 157.11234,32.087228 C 160.53222,32.300838 158.45293,32.527188 152.04683,32.638658 C 141.20553,32.827301 141.18179,32.822496 141.86221,30.577742 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z M 106.29498,30.577742 C 106.22981,29.890242 106.26357,28.704143 106.36999,27.941967 C 106.50527,26.973157 106.01436,26.781627 104.73848,27.30542 C 100.87303,28.892314 99.731524,28.915903 98.501903,27.434301 C 97.359816,26.05817 96.988827,26.059871 94.865736,27.450974 C 90.346022,30.412404 88.78214,26.708923 92.913467,22.827742 C 94.288467,21.535997 95.413467,20.045976 95.413467,19.516586 C 95.413467,18.987196 93.241715,20.585478 90.587352,23.068323 C 84.718886,28.557587 81.948929,29.622304 79.441081,27.352732 C 78.414185,26.423404 77.35568,26.112226 77.027522,26.643197 C 76.100522,28.143115 71.553389,28.658534 70.008157,27.438845 C 69.233941,26.827738 68.338925,24.977742 68.019232,23.327742 C 67.539658,20.852568 68.050479,19.67171 70.939177,16.577742 C 76.446994,10.678542 79.385651,12.113279 75.839731,18.970332 C 73.335037,23.813876 74.843848,23.362089 79.461464,17.885869 C 81.807256,15.103899 84.331099,12.827742 85.070004,12.827742 C 86.847989,12.827742 86.731149,16.823634 84.881664,19.268872 C 81.552823,23.669992 83.79156,22.771543 89.33923,17.479962 C 92.598399,14.371241 95.678655,11.827742 96.184242,11.827742 C 96.68983,11.827742 97.884848,12.691131 98.839838,13.746383 C 100.54442,15.629929 100.61086,15.630344 102.47214,13.769064 C 104.40817,11.833032 107.41346,12.102344 107.41346,14.21187 C 107.41346,14.855452 106.06346,16.86008 104.41346,18.666599 C 100.76956,22.656164 100.58785,23.598722 103.87828,21.442752 C 106.96735,19.418711 109.41346,19.367886 109.41346,21.327742 C 109.41346,22.161075 110.30235,22.827742 111.41346,22.827742 C 112.84015,22.827742 113.41346,23.494409 113.41346,25.153428 C 113.41346,28.951867 106.63076,34.120311 106.29498,30.577742 z M 56.809154,28.416503 C 56.511306,27.640322 57.403502,25.277822 58.791814,23.166503 C 61.416289,19.175248 66.00227,8.0795033 65.309967,7.3958807 C 65.091892,7.1805402 63.675967,7.2420749 62.163467,7.5326246 C 60.080432,7.9327737 59.413467,8.6389549 59.413467,10.444319 C 59.413467,12.403363 58.901105,12.827742 56.535912,12.827742 C 53.08945,12.827742 51.139791,10.783392 51.586703,7.6381579 C 51.853355,5.7615425 52.925262,5.0907919 57.413467,3.9920359 C 60.438467,3.2514866 65.116741,1.9809143 67.809632,1.1685419 C 72.078331,-0.11920944 72.890929,-0.12336651 74.1504,1.1361039 C 75.40987,2.3955742 75.339714,2.8208065 73.602969,4.4542246 C 72.507351,5.4846596 70.224888,9.9277423 68.530828,14.327742 C 63.722573,26.81628 58.571096,33.008051 56.809154,28.416503 z"
+ style="fill:#cd0020" />
+ <path
+ id="path2463"
+ d="M 141.86221,30.577742 C 142.23731,29.340242 142.81662,27.447147 143.14957,26.370865 C 143.71868,24.531158 143.58693,24.546127 140.94933,26.620865 C 137.46289,29.363298 134.02363,29.437912 131.41346,26.827742 C 129.03078,24.445063 128.85323,20.811782 130.92381,16.807726 C 133.81839,11.210236 140.799,9.9598263 144.30074,14.411568 C 145.41858,15.832673 146.7359,16.746495 147.22813,16.442284 C 147.72035,16.138073 149.08168,13.260119 150.2533,10.046831 C 153.48213,1.1914844 159.07928,-2.8126386 161.05002,2.323022 C 161.66914,3.9364055 159.88069,9.1474094 158.00686,11.1899 C 157.40549,11.8454 155.92219,13.78514 154.71063,15.500434 C 152.56312,18.540838 152.55684,18.631974 154.46063,19.129827 C 157.41459,19.902305 156.82531,23.360465 153.26489,26.146911 C 148.68354,29.732356 149.908,31.631032 157.11234,32.112878 C 162.22617,32.454905 162.08414,32.490617 155.91346,32.414308 C 149.1158,32.330244 148.90461,32.251371 148.60746,29.685714 C 148.3761,27.688203 149.04696,26.51284 151.35746,24.86762 C 153.03826,23.670783 154.41346,22.249295 154.41346,21.708757 C 154.41346,21.168218 152.77608,21.974847 150.77485,23.501266 C 147.30085,26.151013 147.16817,26.175936 147.84223,24.052157 C 148.28675,22.651615 148.13104,21.827742 147.42183,21.827742 C 146.80231,21.827742 146.613,21.265242 147.00115,20.577742 C 147.56572,19.577742 147.43753,19.577742 146.36016,20.577742 C 144.32375,22.467927 143.19903,22.078711 143.94111,19.740614 C 144.40125,18.290848 143.94357,17.038633 142.44239,15.640063 C 141.25375,14.53268 140.01098,13.896888 139.68068,14.227191 C 139.35037,14.557494 139.39596,14.827742 139.78198,14.827742 C 140.16799,14.827742 139.97631,15.776054 139.356,16.935101 C 138.54037,18.459124 138.53063,19.344914 139.32082,20.135101 C 141.1067,21.920981 140.57499,23.797023 137.94307,24.996203 C 132.31386,27.561046 130.36148,20.732154 135.49019,16.416636 C 137.18238,14.992744 138.06193,13.827742 137.44473,13.827742 C 135.22779,13.827742 131.41346,18.731918 131.41346,21.582287 C 131.41346,24.947653 133.01829,26.827742 135.89095,26.827742 C 138.60219,26.827742 142.62862,23.984899 141.80496,22.652186 C 141.38619,21.974598 141.98879,21.867743 143.53823,22.344836 C 146.87604,23.372588 146.85002,23.248506 144.7823,28.276165 C 142.88141,32.89817 140.61813,34.682062 141.86221,30.577742 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z M 151.83431,16.13171 C 152.89077,14.68346 153.26671,13.800405 152.66972,14.169366 C 152.07273,14.538326 151.42685,14.367924 151.23444,13.790694 C 151.04203,13.213463 150.36769,14.110659 149.7359,15.784463 C 148.32986,19.509473 149.25824,19.663101 151.83431,16.13171 z M 156.3319,9.4597087 C 158.69151,5.6417884 159.1352,1.6135562 157.11054,2.3904889 C 155.5321,2.9961921 152.39626,8.112569 152.45766,9.9820343 C 152.48196,10.722173 153.4145,9.5977783 154.52996,7.4833778 C 155.64542,5.3689772 156.78192,3.8628698 157.05552,4.1364725 C 157.32913,4.4100752 156.61244,6.4775395 155.4629,8.7308374 C 152.93614,13.683687 153.45327,14.117427 156.3319,9.4597087 z M 144.4489,32.077742 C 144.46838,31.665242 145.12744,30.202742 145.91346,28.827742 L 147.34259,26.327742 L 147.37802,29.577742 C 147.40243,31.815713 146.94637,32.827742 145.91346,32.827742 C 145.08846,32.827742 144.42941,32.490242 144.4489,32.077742 z M 106.29498,30.577742 C 106.22981,29.890242 106.26357,28.704143 106.36999,27.941967 C 106.50527,26.973157 106.01436,26.781627 104.73848,27.30542 C 100.87303,28.892314 99.731524,28.915903 98.501903,27.434301 C 97.359816,26.05817 96.988827,26.059871 94.865736,27.450974 C 90.346022,30.412404 88.78214,26.708923 92.913467,22.827742 C 94.288467,21.535997 95.413467,20.045976 95.413467,19.516586 C 95.413467,18.987196 93.241715,20.585478 90.587352,23.068323 C 84.718886,28.557587 81.948929,29.622304 79.441081,27.352732 C 78.414185,26.423404 77.35568,26.112226 77.027522,26.643197 C 76.100522,28.143115 71.553389,28.658534 70.008157,27.438845 C 69.233941,26.827738 68.338925,24.977742 68.019232,23.327742 C 67.539658,20.852568 68.050479,19.67171 70.939177,16.577742 C 76.446994,10.678542 79.385651,12.113279 75.839731,18.970332 C 73.335037,23.813876 74.843848,23.362089 79.461464,17.885869 C 81.807256,15.103899 84.331099,12.827742 85.070004,12.827742 C 86.847989,12.827742 86.731149,16.823634 84.881664,19.268872 C 81.552823,23.669992 83.79156,22.771543 89.33923,17.479962 C 92.598399,14.371241 95.678655,11.827742 96.184242,11.827742 C 96.68983,11.827742 97.884848,12.691131 98.839838,13.746383 C 100.54442,15.629929 100.61086,15.630344 102.47214,13.769064 C 104.40817,11.833032 107.41346,12.102344 107.41346,14.21187 C 107.41346,14.855452 106.06346,16.86008 104.41346,18.666599 C 100.76956,22.656164 100.58785,23.598722 103.87828,21.442752 C 106.96735,19.418711 109.41346,19.367886 109.41346,21.327742 C 109.41346,22.161075 110.30235,22.827742 111.41346,22.827742 C 112.84015,22.827742 113.41346,23.494409 113.41346,25.153428 C 113.41346,28.951867 106.63076,34.120311 106.29498,30.577742 z M 110.4593,27.742096 C 112.04672,24.775965 111.24078,24.586016 109.11678,27.425683 C 108.1286,28.746815 107.77527,29.827742 108.33159,29.827742 C 108.88792,29.827742 109.84538,28.889201 110.4593,27.742096 z M 76.768952,24.762757 C 78.212814,23.627016 79.924973,23.025836 80.57375,23.426802 C 81.371342,23.919741 81.546554,23.616944 81.114791,22.491787 C 80.763586,21.576562 80.839882,20.827742 81.284337,20.827742 C 82.011873,20.827742 84.413467,16.510737 84.413467,15.20295 C 84.413467,14.911072 82.933947,16.612044 81.125645,18.982886 C 79.317344,21.353729 76.606048,23.976212 75.100543,24.810626 C 72.669428,26.158052 72.255932,26.159967 71.403677,24.827742 C 70.875906,24.002742 70.437202,23.815242 70.42878,24.411075 C 70.386688,27.388938 73.229815,27.546643 76.768952,24.762757 z M 87.103897,23.824015 C 89.350336,22.171965 91.924361,19.696965 92.823952,18.324015 C 94.554547,15.682793 97.413467,14.937605 97.413467,17.127742 C 97.413467,17.842742 97.952428,18.966703 98.611158,19.625433 C 99.541413,20.555688 100.43459,20.223631 102.61115,18.138342 C 104.15242,16.661712 105.41346,15.00356 105.41346,14.45356 C 105.41346,13.90356 104.15134,14.662751 102.60874,16.140651 C 99.274874,19.334705 98.413467,19.487901 98.413467,16.886759 C 98.413467,12.98753 96.149728,13.763983 89.832665,19.829938 C 85.766397,23.734569 82.829462,25.817616 81.895702,25.459299 C 81.080473,25.146466 80.413467,25.326388 80.413467,25.859127 C 80.413467,27.6377 82.979436,26.857177 87.103897,23.824015 z M 99.520715,25.201612 L 101.24794,27.327742 L 104.01765,25.266896 C 105.54099,24.133431 106.99888,22.571481 107.25741,21.795896 C 107.51594,21.02031 106.2269,21.648382 104.39287,23.191611 L 101.05829,25.997481 L 99.685816,23.378015 L 98.313338,20.758549 L 95.418732,23.043145 C 91.761327,25.929788 91.485861,27.670269 95.103478,25.035018 C 97.787207,23.080058 97.797523,23.080447 99.520715,25.201612 z M 72.737239,21.426388 C 73.08935,20.508803 72.694765,20.137175 71.594228,20.349877 C 70.66981,20.52854 69.688467,20.71604 69.413467,20.766544 C 69.018894,20.839006 71.489924,22.751766 72.056478,22.812429 C 72.135134,22.820851 72.441477,22.197133 72.737239,21.426388 z M 74.830017,17.184614 C 75.782743,14.70185 74.732643,14.362839 73.459304,16.742096 C 72.845003,17.889927 72.760464,18.827742 73.271294,18.827742 C 73.781802,18.827742 74.483227,18.088334 74.830017,17.184614 z M 56.809154,28.416503 C 56.511306,27.640322 57.403502,25.277822 58.791814,23.166503 C 61.416289,19.175248 66.00227,8.0795033 65.309967,7.3958807 C 65.091892,7.1805402 63.675967,7.2420749 62.163467,7.5326246 C 60.080432,7.9327737 59.413467,8.6389549 59.413467,10.444319 C 59.413467,12.403363 58.901105,12.827742 56.535912,12.827742 C 53.08945,12.827742 51.139791,10.783392 51.586703,7.6381579 C 51.853355,5.7615425 52.925262,5.0907919 57.413467,3.9920359 C 60.438467,3.2514866 65.116741,1.9809143 67.809632,1.1685419 C 72.078331,-0.11920944 72.890929,-0.12336651 74.1504,1.1361039 C 75.40987,2.3955742 75.339714,2.8208065 73.602969,4.4542246 C 72.507351,5.4846596 70.224888,9.9277423 68.530828,14.327742 C 63.722573,26.81628 58.571096,33.008051 56.809154,28.416503 z M 61.742876,24.077742 C 64.275374,20.044241 69.70414,7.1312015 69.730658,5.0777428 C 69.739536,4.3902427 70.320243,3.8277428 71.021117,3.8277428 C 71.721991,3.8277428 72.55901,3.401266 72.88116,2.8800164 C 73.20331,2.358767 72.667368,2.1299401 71.690177,2.3715122 C 70.712987,2.6130843 66.425967,3.5834095 62.163467,4.5277905 C 57.900967,5.4721714 54.413467,6.5419213 54.413467,6.9050125 C 54.413467,7.2681036 57.000967,6.9562845 60.163467,6.2120813 C 68.260217,4.3067448 68.561977,4.3606987 67.801489,7.5777427 C 66.846374,11.618106 60.855104,24.436761 59.542707,25.247867 C 58.4271,25.93735 57.956835,27.827742 58.900922,27.827742 C 59.169023,27.827742 60.447902,26.140242 61.742876,24.077742 z M 56.413467,9.8277423 C 55.620323,9.337553 54.746388,9.1614888 54.471388,9.4364887 C 54.196388,9.7114883 54.620323,10.337552 55.413467,10.827742 C 56.206611,11.317932 57.080546,11.493996 57.355546,11.218996 C 57.630546,10.943996 57.206611,10.317932 56.413467,9.8277423 z M 140.41346,18.827742 C 140.41346,17.538853 140.91987,16.829879 141.66346,17.077742 C 142.35096,17.306909 142.91346,18.094409 142.91346,18.827742 C 142.91346,19.561075 142.35096,20.348575 141.66346,20.577742 C 140.91987,20.825605 140.41346,20.116631 140.41346,18.827742 z"
+ style="fill:#b0001b" />
+ <path
+ id="path2461"
+ d="M 141.86221,30.577742 C 142.23731,29.340242 142.81662,27.447147 143.14957,26.370865 C 143.71868,24.531158 143.58693,24.546127 140.94933,26.620865 C 137.46289,29.363298 134.02363,29.437912 131.41346,26.827742 C 129.03078,24.445063 128.85323,20.811782 130.92381,16.807726 C 133.81839,11.210236 140.799,9.9598263 144.30074,14.411568 C 145.41858,15.832673 146.7359,16.746495 147.22813,16.442284 C 147.72035,16.138073 149.08168,13.260119 150.2533,10.046831 C 153.48213,1.1914844 159.07928,-2.8126386 161.05002,2.323022 C 161.66914,3.9364055 159.88069,9.1474094 158.00686,11.1899 C 157.40549,11.8454 155.92219,13.78514 154.71063,15.500434 C 152.56312,18.540838 152.55684,18.631974 154.46063,19.129827 C 157.41459,19.902305 156.82531,23.360465 153.26489,26.146911 C 148.67621,29.738098 149.90617,31.637123 157.11234,32.087228 L 162.91346,32.449573 L 156.18251,32.638658 C 149.69101,32.821016 149.4282,32.734652 148.79478,30.210908 C 148.25573,28.063175 148.70048,27.153868 151.27573,25.13843 C 153.00148,23.787826 154.41346,22.211991 154.41346,21.636575 C 154.41346,21.061159 152.83846,21.791675 150.91346,23.259944 C 148.98846,24.728213 147.41346,25.666664 147.41346,25.34539 C 147.41346,24.473401 152.06085,16.071597 155.98121,9.8561393 C 157.87936,6.8467574 159.27813,3.9217574 159.08959,3.3561394 C 158.35224,1.1440748 155.87096,2.5151311 153.71173,6.3277428 C 151.24867,10.676811 150.72696,13.370055 152.56797,12.23225 C 153.28901,11.786623 153.45079,11.958318 152.99887,12.689545 C 152.60089,13.333497 151.85636,13.601468 151.34436,13.285037 C 150.83237,12.968606 150.41346,13.216291 150.41346,13.835447 C 150.41346,15.213581 145.46459,21.827742 144.43344,21.827742 C 144.02499,21.827742 143.90998,20.681219 144.17785,19.279913 C 144.76085,16.230142 142.214,13.906797 138.23604,13.859545 C 133.58139,13.804256 130.0866,20.206414 132.02045,25.245955 C 132.71601,27.058549 138.90206,27.464216 139.95158,25.766059 C 140.67933,24.588542 145.46867,22.549623 146.07728,23.158229 C 146.62547,23.706417 142.62121,32.827742 141.83237,32.827742 C 141.47367,32.827742 141.4871,31.815242 141.86221,30.577742 z M 145.12779,30.812158 C 145.9316,27.73836 147.41346,27.386039 147.41346,30.268725 C 147.41346,31.80103 146.8492,32.827742 146.00708,32.827742 C 145.0894,32.827742 144.78386,32.127344 145.12779,30.812158 z M 106.29498,30.577742 C 106.22981,29.890242 106.26357,28.704143 106.36999,27.941967 C 106.50527,26.973157 106.01436,26.781627 104.73848,27.30542 C 100.87303,28.892314 99.731524,28.915903 98.501903,27.434301 C 97.359816,26.05817 96.988827,26.059871 94.865736,27.450974 C 90.346022,30.412404 88.78214,26.708923 92.913467,22.827742 C 94.288467,21.535997 95.413467,20.045976 95.413467,19.516586 C 95.413467,18.987196 93.241715,20.585478 90.587352,23.068323 C 84.718886,28.557587 81.948929,29.622304 79.441081,27.352732 C 78.414185,26.423404 77.35568,26.112226 77.027522,26.643197 C 76.100522,28.143115 71.553389,28.658534 70.008157,27.438845 C 69.233941,26.827738 68.338925,24.977742 68.019232,23.327742 C 67.539658,20.852568 68.050479,19.67171 70.939177,16.577742 C 76.446994,10.678542 79.385651,12.113279 75.839731,18.970332 C 73.335037,23.813876 74.843848,23.362089 79.461464,17.885869 C 81.807256,15.103899 84.331099,12.827742 85.070004,12.827742 C 86.847989,12.827742 86.731149,16.823634 84.881664,19.268872 C 81.552823,23.669992 83.79156,22.771543 89.33923,17.479962 C 92.598399,14.371241 95.678655,11.827742 96.184242,11.827742 C 96.68983,11.827742 97.884848,12.691131 98.839838,13.746383 C 100.54442,15.629929 100.61086,15.630344 102.47214,13.769064 C 104.40817,11.833032 107.41346,12.102344 107.41346,14.21187 C 107.41346,14.855452 106.06346,16.86008 104.41346,18.666599 C 100.76956,22.656164 100.58785,23.598722 103.87828,21.442752 C 106.96735,19.418711 109.41346,19.367886 109.41346,21.327742 C 109.41346,22.161075 110.30235,22.827742 111.41346,22.827742 C 112.84015,22.827742 113.41346,23.494409 113.41346,25.153428 C 113.41346,28.951867 106.63076,34.120311 106.29498,30.577742 z M 110.8215,27.327742 C 111.72244,25.952742 112.05095,24.827742 111.55152,24.827742 C 111.0521,24.827742 109.90635,25.952742 109.00542,27.327742 C 108.10448,28.702742 107.77597,29.827742 108.2754,29.827742 C 108.77482,29.827742 109.92057,28.702742 110.8215,27.327742 z M 76.666133,24.843635 C 79.181782,22.864825 79.189902,22.864825 79.707372,24.843635 C 80.592626,28.228849 84.022884,27.08381 90.240124,21.327742 C 93.507485,18.302742 96.458135,15.827742 96.797124,15.827742 C 97.136112,15.827742 97.413467,17.1471 97.413467,18.759648 C 97.413467,20.888214 96.575694,22.2881 94.355892,23.868739 C 92.674225,25.066191 91.55476,26.302368 91.868191,26.615799 C 92.181621,26.92923 93.754506,26.212386 95.36349,25.022813 C 98.247749,22.890388 98.297775,22.887869 98.918579,24.843847 C 99.264894,25.934989 100.13223,26.827742 100.84599,26.827742 C 102.58162,26.827742 107.41346,22.967478 107.41346,21.580848 C 107.41346,20.974894 106.37196,21.457555 105.09901,22.653428 C 102.32544,25.259056 100.84905,25.40524 99.987302,23.159556 C 99.568242,22.067503 100.39471,20.410576 102.38031,18.361949 C 106.29094,14.327194 106.34843,12.557798 102.44746,16.29517 L 99.481462,19.136781 L 98.472215,16.482262 C 97.91713,15.022276 97.054922,13.827742 96.556197,13.827742 C 96.057473,13.827742 92.915694,16.527742 89.574466,19.827742 C 81.359514,27.941329 78.97045,27.536775 83.433791,18.787904 C 86.050061,13.659592 84.446964,13.667632 81.050619,18.799856 C 78.432315,22.75638 72.967879,26.533816 72.038358,25.02982 C 71.769622,24.594996 72.419084,22.297504 73.481607,19.924283 C 76.087658,14.103481 75.869707,13.698758 72.348156,17.819519 C 70.70694,19.739996 69.759825,21.443195 70.243456,21.604405 C 70.727087,21.765615 70.910729,23.006816 70.651549,24.362628 C 70.278899,26.312023 70.594902,26.827742 72.162031,26.827742 C 73.251976,26.827742 75.278822,25.934894 76.666133,24.843635 z M 56.809154,28.416503 C 56.511306,27.640322 57.403502,25.277822 58.791814,23.166503 C 61.416289,19.175248 66.00227,8.0795033 65.309967,7.3958807 C 65.091892,7.1805402 63.675967,7.2420749 62.163467,7.5326246 C 60.080432,7.9327737 59.413467,8.6389549 59.413467,10.444319 C 59.413467,12.403363 58.901105,12.827742 56.535912,12.827742 C 53.08945,12.827742 51.139791,10.783392 51.586703,7.6381579 C 51.853355,5.7615425 52.925262,5.0907919 57.413467,3.9920359 C 60.438467,3.2514866 65.116741,1.9809143 67.809632,1.1685419 C 72.078331,-0.11920944 72.890929,-0.12336651 74.1504,1.1361039 C 75.40987,2.3955742 75.339714,2.8208065 73.602969,4.4542246 C 72.507351,5.4846596 70.224888,9.9277423 68.530828,14.327742 C 63.722573,26.81628 58.571096,33.008051 56.809154,28.416503 z M 63.1448,22.077742 C 64.800291,18.915242 66.963009,14.077742 67.95084,11.327742 C 68.938671,8.5777427 70.650316,5.3152427 71.754496,4.0777428 C 72.858675,2.8402427 73.494999,1.8277428 73.168548,1.8277428 C 72.618824,1.8277428 65.094541,3.6480816 56.163467,5.941757 C 51.994602,7.0124037 51.274041,9.1475731 54.499113,10.873579 C 57.239839,12.340371 58.30752,11.201975 55.865705,9.4164763 C 54.09137,8.119051 54.230269,7.9577388 57.938705,7.0089822 C 60.124824,6.4496912 63.420762,5.6845179 65.263012,5.308597 C 68.421233,4.6641454 68.574015,4.7594107 67.937793,6.9764237 C 67.408497,8.8208328 63.391079,17.487562 58.619928,27.077742 C 58.414708,27.490242 58.671604,27.827742 59.190808,27.827742 C 59.710013,27.827742 61.489309,25.240242 63.1448,22.077742 z M 133.61346,24.627742 C 131.72406,22.738339 132.20028,19.950012 134.86801,17.282287 C 137.65018,14.500108 141.60111,13.691784 139.38888,16.357356 C 138.3801,17.572862 138.37014,18.437255 139.34038,20.566701 C 140.38559,22.860677 140.30726,23.432227 138.79628,24.537088 C 136.59682,26.145371 135.15629,26.170568 133.61346,24.627742 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z M 146.41346,21.386759 C 146.41346,21.144218 146.86346,20.667661 147.41346,20.327742 C 147.96346,19.987823 148.41346,20.186266 148.41346,20.768725 C 148.41346,21.351184 147.96346,21.827742 147.41346,21.827742 C 146.86346,21.827742 146.41346,21.6293 146.41346,21.386759 z M 140.94468,19.534614 C 140.51662,18.548393 140.44698,17.460893 140.78992,17.117947 C 141.80541,16.102456 142.62401,17.528894 142.15662,19.499473 C 141.74227,21.246417 141.68836,21.24798 140.94468,19.534614 z M 154.47707,8.3277427 C 154.47707,7.7777428 155.13776,6.4542344 155.94526,5.3866132 C 156.75277,4.3189919 157.41346,3.8954835 157.41346,4.4454834 C 157.41346,4.9954834 156.75277,6.3189919 155.94526,7.3866132 C 155.13776,8.4542344 154.47707,8.8777427 154.47707,8.3277427 z"
+ style="fill:#8f0016" />
+ <path
+ id="path2459"
+ d="M 141.86221,30.577742 C 142.23731,29.340242 142.81662,27.447147 143.14957,26.370865 C 143.71868,24.531158 143.58693,24.546127 140.94933,26.620865 C 137.46289,29.363298 134.02363,29.437912 131.41346,26.827742 C 129.03078,24.445063 128.85323,20.811782 130.92381,16.807726 C 133.81839,11.210236 140.799,9.9598263 144.30074,14.411568 C 145.41858,15.832673 146.7359,16.746495 147.22813,16.442284 C 147.72035,16.138073 149.08168,13.260119 150.2533,10.046831 C 153.48213,1.1914844 159.07928,-2.8126386 161.05002,2.323022 C 161.66914,3.9364055 159.88069,9.1474094 158.00686,11.1899 C 157.40549,11.8454 155.92219,13.78514 154.71063,15.500434 C 152.56312,18.540838 152.55684,18.631974 154.46063,19.129827 C 157.41459,19.902305 156.82531,23.360465 153.26489,26.146911 C 148.67621,29.738098 149.90617,31.637123 157.11234,32.087228 L 162.91346,32.449573 L 156.23301,32.638658 C 150.01381,32.814687 149.52678,32.672391 149.17908,30.577742 C 148.93548,29.110171 149.84382,27.202776 151.79118,25.092722 C 155.35433,21.231872 154.53227,19.445677 150.78531,22.907132 L 148.16504,25.327742 L 148.88763,22.827742 C 149.28505,21.452742 151.53316,17.402742 153.88342,13.827742 C 158.76234,6.406367 159.98008,3.2959656 158.39112,2.3139383 C 156.66931,1.2498006 153.81593,4.4702786 151.91193,9.6267013 C 150.0258,14.734717 146.36331,20.809977 145.16346,20.820909 C 144.75096,20.824667 144.41346,19.868025 144.41346,18.695037 C 144.41346,16.632482 141.03971,12.827742 139.21079,12.827742 C 136.47745,12.827742 132.46217,16.150117 131.43536,19.261382 C 129.12205,26.270785 134.61968,29.978727 140.41346,25.316771 C 141.79327,24.206513 146.41346,22.649101 146.41346,23.294243 C 146.41346,23.447838 145.4924,25.655709 144.36667,28.200624 C 142.23901,33.010532 140.67475,34.495262 141.86221,30.577742 z M 145.51373,30.577742 C 147.23549,27.268463 147.41346,27.22943 147.41346,30.161075 C 147.41346,31.891941 146.87473,32.827742 145.87828,32.827742 C 144.60604,32.827742 144.5436,32.442353 145.51373,30.577742 z M 106.29498,30.577742 C 106.22981,29.890242 106.26357,28.704143 106.36999,27.941967 C 106.50527,26.973157 106.01436,26.781627 104.73848,27.30542 C 100.87303,28.892314 99.731524,28.915903 98.501903,27.434301 C 97.359816,26.05817 96.988827,26.059871 94.865736,27.450974 C 90.346022,30.412404 88.78214,26.708923 92.913467,22.827742 C 94.288467,21.535997 95.413467,20.045976 95.413467,19.516586 C 95.413467,18.987196 93.241715,20.585478 90.587352,23.068323 C 84.718886,28.557587 81.948929,29.622304 79.441081,27.352732 C 78.414185,26.423404 77.35568,26.112226 77.027522,26.643197 C 76.100522,28.143115 71.553389,28.658534 70.008157,27.438845 C 69.233941,26.827738 68.338925,24.977742 68.019232,23.327742 C 67.539658,20.852568 68.050479,19.67171 70.939177,16.577742 C 76.446994,10.678542 79.385651,12.113279 75.839731,18.970332 C 73.335037,23.813876 74.843848,23.362089 79.461464,17.885869 C 81.807256,15.103899 84.331099,12.827742 85.070004,12.827742 C 86.847989,12.827742 86.731149,16.823634 84.881664,19.268872 C 81.552823,23.669992 83.79156,22.771543 89.33923,17.479962 C 92.598399,14.371241 95.678655,11.827742 96.184242,11.827742 C 96.68983,11.827742 97.884848,12.691131 98.839838,13.746383 C 100.54442,15.629929 100.61086,15.630344 102.47214,13.769064 C 104.40817,11.833032 107.41346,12.102344 107.41346,14.21187 C 107.41346,14.855452 106.06346,16.86008 104.41346,18.666599 C 100.76956,22.656164 100.58785,23.598722 103.87828,21.442752 C 106.96735,19.418711 109.41346,19.367886 109.41346,21.327742 C 109.41346,22.161075 110.30235,22.827742 111.41346,22.827742 C 112.84015,22.827742 113.41346,23.494409 113.41346,25.153428 C 113.41346,28.951867 106.63076,34.120311 106.29498,30.577742 z M 110.83376,27.638074 C 111.67729,26.433757 112.15557,25.236516 111.89659,24.977538 C 111.29924,24.380185 107.41346,27.851705 107.41346,28.98273 C 107.41346,30.571255 109.29829,29.830251 110.83376,27.638074 z M 76.827891,25.291857 C 78.935839,23.910676 79.231314,23.910676 79.761323,25.291857 C 80.882927,28.214711 84.548946,26.840138 90.324494,21.331198 C 93.493897,18.308099 96.385491,16.133099 96.750256,16.497865 C 98.2753,18.022909 97.206989,21.043772 94.163467,23.812525 C 92.257613,25.546318 91.501276,26.781239 92.334726,26.798429 C 93.116419,26.814551 94.615814,26.049608 95.666715,25.098556 C 97.477696,23.45964 97.627963,23.45964 98.545146,25.098556 C 99.077382,26.049608 100.27799,26.825507 101.21315,26.822775 C 103.35739,26.816511 109.15298,22.248703 108.21612,21.303374 C 107.83259,20.916372 106.3094,21.551035 104.83126,22.713738 C 103.35313,23.87644 101.75443,24.827742 101.27861,24.827742 C 99.593163,24.827742 100.44877,21.648014 103.05291,18.233802 C 106.21831,14.083741 105.29806,12.185505 102.07831,16.223461 L 99.831673,19.04102 L 98.644009,16.434381 C 97.990794,15.00073 96.868825,13.827742 96.150746,13.827742 C 95.432666,13.827742 92.400891,16.302742 89.413467,19.327742 C 81.867146,26.968981 79.374901,26.743984 83.433791,18.787904 C 84.544969,16.609815 85.176211,14.827742 84.836552,14.827742 C 84.496892,14.827742 82.196045,17.077742 79.723558,19.827742 C 73.139273,27.151052 70.463362,26.570588 74.483228,18.690999 C 75.621597,16.459612 76.335622,14.416564 76.06995,14.150892 C 75.804279,13.88522 74.001677,15.391328 72.064168,17.497797 C 69.86311,19.8908 68.892608,21.684169 69.477446,22.277742 C 69.992258,22.800242 70.413467,24.037742 70.413467,25.027742 C 70.413467,27.277605 73.597187,27.408695 76.827891,25.291857 z M 56.809154,28.416503 C 56.511306,27.640322 57.403502,25.277822 58.791814,23.166503 C 61.416289,19.175248 66.00227,8.0795033 65.309967,7.3958807 C 65.091892,7.1805402 63.675967,7.2420749 62.163467,7.5326246 C 60.080432,7.9327737 59.413467,8.6389549 59.413467,10.444319 C 59.413467,12.403363 58.901105,12.827742 56.535912,12.827742 C 53.08945,12.827742 51.139791,10.783392 51.586703,7.6381579 C 51.853355,5.7615425 52.925262,5.0907919 57.413467,3.9920359 C 60.438467,3.2514866 65.116741,1.9809143 67.809632,1.1685419 C 72.078331,-0.11920944 72.890929,-0.12336651 74.1504,1.1361039 C 75.40987,2.3955742 75.339714,2.8208065 73.602969,4.4542246 C 72.507351,5.4846596 70.224888,9.9277423 68.530828,14.327742 C 63.722573,26.81628 58.571096,33.008051 56.809154,28.416503 z M 63.44885,21.757649 C 65.093694,18.499231 67.363937,13.362409 68.493834,10.342489 C 69.62373,7.3225706 71.256057,4.4555857 72.121227,3.9714125 C 72.999737,3.4797736 73.372207,2.5700003 72.964837,1.9108617 C 72.500024,1.1587778 71.814248,1.0683293 71.074439,1.6615331 C 70.435905,2.173532 66.15833,3.3946892 61.568718,4.3752159 C 56.418336,5.4755457 53.006642,6.7243371 52.656238,7.6374747 C 52.026387,9.27884 54.926256,11.845481 57.354597,11.795939 C 58.674923,11.769002 58.645676,11.560853 57.163467,10.435696 C 54.185474,8.1750782 54.690452,7.875128 65.598851,5.4251893 L 68.284236,4.8220736 L 66.286817,10.736755 C 65.188236,13.98983 62.790993,19.139785 60.959609,22.181099 C 59.128225,25.222413 57.868906,27.949848 58.161123,28.242065 C 59.170943,29.251885 60.469847,27.65902 63.44885,21.757649 z M 133.41346,21.450187 C 133.41346,18.071733 134.4085,16.673899 137.62958,15.527361 C 139.06364,15.016913 139.25253,15.382373 138.77884,17.750846 C 138.44914,19.399356 138.69282,20.882359 139.36127,21.295489 C 141.12388,22.384842 138.6547,24.827742 135.79102,24.827742 C 133.75689,24.827742 133.41346,24.33986 133.41346,21.450187 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z M 140.85961,19.74061 C 140.49007,19.142687 140.68852,18.152687 141.30059,17.54061 C 142.11775,16.723453 142.41346,17.012325 142.41346,18.627742 C 142.41346,21.042253 141.894,21.41429 140.85961,19.74061 z M 155.49375,6.8277428 C 156.95156,3.7667106 157.41346,3.1994034 157.41346,4.4699465 C 157.41346,5.0064919 156.71364,6.3189919 155.85829,7.3866132 C 154.39192,9.2169184 154.3711,9.185011 155.49375,6.8277428 z"
+ style="fill:#6d0010" />
+ <path
+ id="path2457"
+ d="M 141.83119,30.827742 C 142.22335,29.452742 142.81662,27.447147 143.14957,26.370865 C 143.71868,24.531158 143.58693,24.546127 140.94933,26.620865 C 137.46289,29.363298 134.02363,29.437912 131.41346,26.827742 C 129.03078,24.445063 128.85323,20.811782 130.92381,16.807726 C 133.81839,11.210236 140.799,9.9598263 144.30074,14.411568 C 145.41858,15.832673 146.7359,16.746495 147.22813,16.442284 C 147.72035,16.138073 149.08168,13.260119 150.2533,10.046831 C 153.48213,1.1914844 159.07928,-2.8126386 161.05002,2.323022 C 161.66914,3.9364055 159.88069,9.1474094 158.00686,11.1899 C 157.40549,11.8454 155.92219,13.78514 154.71063,15.500434 C 152.56312,18.540838 152.55684,18.631974 154.46063,19.129827 C 157.41459,19.902305 156.82531,23.360465 153.26489,26.146911 C 148.67621,29.738098 149.90617,31.637123 157.11234,32.087228 L 162.91346,32.449573 L 156.16346,32.638658 L 149.41346,32.827742 L 149.41346,30.050426 C 149.41346,28.17343 150.46701,26.341164 152.66346,24.398232 C 154.83808,22.474609 155.4762,21.372811 154.59198,21.068387 C 153.86516,20.818155 152.17766,21.640084 150.84198,22.894895 C 149.50629,24.149706 148.41346,24.647929 148.41346,24.002056 C 148.41346,23.356183 148.89002,22.827742 149.47248,22.827742 C 150.05494,22.827742 150.28066,22.421885 149.97409,21.925839 C 149.66751,21.429792 151.03695,18.617292 153.01728,15.675839 C 159.80652,5.5915382 161.00594,1.8277428 157.43031,1.8277428 C 156.05678,1.8277428 154.67346,3.3545478 152.93031,6.7944991 C 151.54604,9.5262153 150.41346,12.45531 150.41346,13.3036 C 150.41346,14.15189 148.98998,16.30435 147.25018,18.086844 C 145.51037,19.869338 144.36023,20.568963 144.6943,19.641566 C 145.53743,17.30101 141.7832,12.827742 138.97574,12.827742 C 133.12873,12.827742 128.71708,20.589801 131.84813,25.368382 C 133.77744,28.312885 137.18894,28.560314 140.5286,25.997959 C 141.84027,24.991578 143.67457,23.890827 144.60482,23.551844 C 146.12118,22.999284 146.08881,23.419298 144.29198,27.611135 C 142.01649,32.919654 140.76976,34.549304 141.83119,30.827742 z M 145.80633,31.356686 C 146.1484,29.026029 146.97999,28.723361 147.14174,30.870648 C 147.22282,31.94705 146.90695,32.827742 146.43979,32.827742 C 145.97264,32.827742 145.68759,32.165767 145.80633,31.356686 z M 106.29498,30.577742 C 106.22981,29.890242 106.26357,28.704143 106.36999,27.941967 C 106.50527,26.973157 106.01436,26.781627 104.73848,27.30542 C 100.87303,28.892314 99.731524,28.915903 98.501903,27.434301 C 97.359816,26.05817 96.988827,26.059871 94.865736,27.450974 C 90.346022,30.412404 88.78214,26.708923 92.913467,22.827742 C 94.288467,21.535997 95.413467,20.045976 95.413467,19.516586 C 95.413467,18.987196 93.241715,20.585478 90.587352,23.068323 C 84.784363,28.496341 81.943316,29.617224 79.52815,27.431528 C 78.262356,26.286001 77.485775,26.155434 76.687313,26.953896 C 76.082948,27.558261 75.1093,27.889617 74.523652,27.690242 C 73.938004,27.490867 74.819739,26.549056 76.483064,25.597329 C 78.146388,24.645601 79.266135,24.257113 78.971389,24.734022 C 78.111976,26.124582 81.143803,28.048105 83.177577,27.402611 C 84.200624,27.077908 87.552988,24.296917 90.627275,21.222629 C 95.970681,15.879224 96.249106,15.734525 96.948317,17.937545 C 97.532657,19.778638 97.049679,20.768076 94.546606,22.857734 C 92.82338,24.296347 91.413467,26.003122 91.413467,26.650568 C 91.413467,28.314598 92.21935,28.125595 95.233514,25.754653 L 97.869019,23.681564 L 98.794057,25.754653 C 99.302828,26.894852 100.03378,27.827742 100.4184,27.827742 C 101.70784,27.827742 107.75451,23.342263 108.1697,22.077742 C 108.81647,20.10794 105.91161,20.61981 103.91346,22.827742 C 102.91797,23.927742 101.72323,24.827742 101.25848,24.827742 C 99.421143,24.827742 100.57533,21.40742 103.55963,18.008481 C 106.92011,14.181106 105.89945,12.172963 102.26528,15.461845 C 100.3419,17.202481 100.16468,17.207988 98.962906,15.564467 C 96.946006,12.806192 95.348282,13.454853 89.218616,19.52056 C 83.150541,25.525317 81.152917,25.868927 83.294422,20.539577 C 86.465755,12.647394 85.582388,11.489823 81.212044,17.810811 C 78.449261,21.806726 73.789555,25.537163 72.798701,24.54631 C 72.494909,24.242517 73.189411,21.862019 74.342038,19.256313 C 75.494666,16.650608 76.207279,14.28822 75.925622,14.006564 C 75.36997,13.450911 68.523346,20.848022 68.455094,22.077742 C 68.432199,22.490242 68.863467,22.827742 69.413467,22.827742 C 69.963467,22.827742 70.413467,23.637742 70.413467,24.627742 C 70.413467,25.617742 70.975967,27.022825 71.663467,27.750149 C 72.692518,28.838808 72.539109,28.880438 70.79557,27.985665 C 69.615868,27.380249 68.397413,25.497472 68.045009,23.735452 C 67.519773,21.109274 67.964301,19.928993 70.662906,16.784583 C 75.958794,10.613822 79.407966,12.070126 75.839731,18.970332 C 73.335037,23.813876 74.843848,23.362089 79.461464,17.885869 C 81.807256,15.103899 84.331099,12.827742 85.070004,12.827742 C 86.847989,12.827742 86.731149,16.823634 84.881664,19.268872 C 81.552823,23.669992 83.79156,22.771543 89.33923,17.479962 C 92.598399,14.371241 95.678655,11.827742 96.184242,11.827742 C 96.68983,11.827742 97.884848,12.691131 98.839838,13.746383 C 100.54442,15.629929 100.61086,15.630344 102.47214,13.769064 C 104.40817,11.833032 107.41346,12.102344 107.41346,14.21187 C 107.41346,14.855452 106.06346,16.86008 104.41346,18.666599 C 100.76956,22.656164 100.58785,23.598722 103.87828,21.442752 C 106.96735,19.418711 109.41346,19.367886 109.41346,21.327742 C 109.41346,22.161075 110.30235,22.827742 111.41346,22.827742 C 112.84015,22.827742 113.41346,23.494409 113.41346,25.153428 C 113.41346,28.951867 106.63076,34.120311 106.29498,30.577742 z M 111.19954,27.591834 C 112.095,26.116049 112.47867,24.559621 112.05216,24.133106 C 111.16082,23.241764 107.46903,27.662487 107.4357,29.661075 C 107.40194,31.685368 109.37336,30.601545 111.19954,27.591834 z M 56.809154,28.416503 C 56.511306,27.640322 57.403502,25.277822 58.791814,23.166503 C 61.416289,19.175248 66.00227,8.0795033 65.309967,7.3958807 C 65.091892,7.1805402 63.675967,7.2420749 62.163467,7.5326246 C 60.080432,7.9327737 59.413467,8.6389549 59.413467,10.444319 C 59.413467,12.403363 58.901105,12.827742 56.535912,12.827742 C 53.08945,12.827742 51.139791,10.783392 51.586703,7.6381579 C 51.853355,5.7615425 52.925262,5.0907919 57.413467,3.9920359 C 60.438467,3.2514866 65.116741,1.9809143 67.809632,1.1685419 C 72.078331,-0.11920944 72.890929,-0.12336651 74.1504,1.1361039 C 75.40987,2.3955742 75.339714,2.8208065 73.602969,4.4542246 C 72.507351,5.4846596 70.224888,9.9277423 68.530828,14.327742 C 63.722573,26.81628 58.571096,33.008051 56.809154,28.416503 z M 62.845785,23.526058 C 64.196612,21.216984 66.643453,16.026846 68.28321,11.992417 C 69.922967,7.9579882 72.085585,4.0526272 73.089027,3.3138374 C 74.818895,2.0402123 74.822093,1.9351635 73.150732,1.2872872 C 72.181228,0.9114745 70.831228,1.0284619 70.150732,1.5472591 C 69.470236,2.0660564 65.200967,3.3150101 60.663467,4.3227118 C 53.2306,5.9734252 52.413467,6.384424 52.413467,8.4722676 C 52.413467,10.121441 53.147752,10.973932 54.960037,11.428786 C 58.237365,12.251343 59.292618,11.191078 56.921923,9.457584 C 55.245887,8.2320366 55.546733,7.9952541 60.197456,6.8795629 C 63.014048,6.203873 65.765812,5.9274699 66.312487,6.2653337 C 67.607839,7.0659051 65.354253,13.4501 60.944176,21.47325 C 59.080746,24.863347 57.811789,27.892731 58.124274,28.205215 C 59.058784,29.139726 60.255626,27.953621 62.845785,23.526058 z M 133.41346,21.98273 C 133.41346,20.417699 134.30389,18.331891 135.39261,17.34661 C 137.29756,15.622651 137.39402,15.626213 137.96561,17.441623 C 138.29222,18.478988 138.94436,20.057493 139.41479,20.949412 C 140.50302,23.012643 138.77076,24.827742 135.71346,24.827742 C 133.85241,24.827742 133.41346,24.284772 133.41346,21.98273 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z"
+ style="fill:#50000c" />
+ <path
+ id="path2455"
+ d="M 150.41346,32.070536 C 150.41346,31.654073 152.55096,31.451031 155.16346,31.619333 C 162.76244,32.10887 163.4181,32.586373 156.66346,32.711741 C 153.22596,32.775541 150.41346,32.486999 150.41346,32.070536 z M 106.68429,31.223575 C 107.01659,30.891284 107.87909,30.855757 108.60096,31.144628 C 109.39869,31.463854 109.16174,31.700811 107.99679,31.748795 C 106.94263,31.792216 106.352,31.555867 106.68429,31.223575 z M 56.920546,28.839196 C 56.569138,28.270606 56.974297,28.105722 57.874264,28.451072 C 58.734834,28.781304 60.220706,28.438649 61.176202,27.689618 C 62.747929,26.45751 62.782691,26.494494 61.541022,28.077742 C 60.024611,30.011313 57.864923,30.367229 56.920546,28.839196 z M 149.41346,28.810502 C 149.41346,28.344888 150.76346,27.002646 152.41346,25.827742 C 154.06346,24.652838 155.41346,22.822196 155.41346,21.759648 C 155.41346,19.618034 153.43871,19.20249 151.66941,20.971792 C 149.41362,23.227582 151.48168,18.408833 154.09166,15.327742 C 155.48937,13.677742 156.29012,13.002742 155.8711,13.827742 C 155.45208,14.652742 154.48471,16.058054 153.72138,16.950656 C 152.51233,18.364468 152.59635,18.642305 154.37348,19.107037 C 157.46004,19.914189 156.83917,23.082849 152.91346,26.558409 C 150.98846,28.262674 149.41346,29.276116 149.41346,28.810502 z M 80.6843,28.223575 C 81.016592,27.891284 81.879092,27.855757 82.600967,28.144628 C 83.3987,28.463854 83.161743,28.700811 81.9968,28.748795 C 80.942634,28.792216 80.352009,28.555867 80.6843,28.223575 z M 99.6843,28.223575 C 100.01659,27.891284 100.87909,27.855757 101.60096,28.144628 C 102.39869,28.463854 102.16174,28.700811 100.9968,28.748795 C 99.942634,28.792216 99.352009,28.555867 99.6843,28.223575 z M 134.14443,28.171805 C 134.82146,27.897882 136.17146,27.881208 137.14443,28.134751 C 138.1174,28.388295 137.56346,28.612414 135.91346,28.632793 C 134.26346,28.653173 133.4674,28.445728 134.14443,28.171805 z M 68.758544,26.284614 C 68.432859,25.435893 68.389831,24.518045 68.662925,24.244951 C 68.936019,23.971856 69.399483,24.666264 69.692844,25.788079 C 70.315994,28.171008 69.623621,28.53897 68.758544,26.284614 z M 106.08013,27.097421 C 105.46006,26.094121 109.04903,22.129977 109.8512,22.932147 C 110.08521,23.166159 109.47184,24.424614 108.48816,25.728715 C 107.48409,27.059837 106.42792,27.660157 106.08013,27.097421 z M 90.371675,22.577742 C 92.823689,19.965242 95.186189,17.827742 95.621675,17.827742 C 97.077929,17.827742 96.434512,20.566928 94.663467,21.907069 C 93.174693,23.033618 93.100057,23.022041 94.163467,21.829514 C 94.850967,21.058539 95.413467,19.974048 95.413467,19.419534 C 95.413467,18.86502 93.275967,20.41752 90.663467,22.869534 L 85.913467,27.327742 L 90.371675,22.577742 z M 129.64546,21.827742 C 129.64546,19.902742 129.85126,19.115242 130.10279,20.077742 C 130.35431,21.040242 130.35431,22.615242 130.10279,23.577742 C 129.85126,24.540242 129.64546,23.752742 129.64546,21.827742 z M 134.45702,23.380224 C 133.65051,22.408438 133.67398,21.350069 134.54442,19.439665 C 135.79138,16.702883 137.40377,15.94111 137.42711,18.077742 C 137.43462,18.765242 137.69588,20.278184 138.00768,21.439836 C 138.68665,23.969393 136.11317,25.375763 134.45702,23.380224 z M 137.39815,22.077742 C 137.3786,21.120369 135.44928,18.101254 135.42877,18.995955 C 135.42035,19.363471 135.14032,20.375971 134.80647,21.245955 C 134.40816,22.283938 134.75195,22.827742 135.80647,22.827742 C 136.69032,22.827742 137.40657,22.490242 137.39815,22.077742 z M 73.413467,22.661075 C 73.413467,22.019409 73.719767,21.800709 74.094134,22.175076 C 74.468502,22.549443 76.156002,21.611943 77.844134,20.091743 L 80.913467,17.327742 L 77.976376,20.577742 C 74.91785,23.962113 73.413467,24.648985 73.413467,22.661075 z M 82.413467,22.661075 C 82.413467,22.019409 82.725069,21.806011 83.105916,22.186857 C 83.486762,22.567704 86.299262,20.505204 89.355916,17.603524 L 94.913467,12.327742 L 89.447627,18.077742 C 83.980251,23.829358 82.413467,24.850247 82.413467,22.661075 z M 67.492414,21.752056 C 67.448993,20.885429 68.650967,19.085429 70.163467,17.752056 L 72.913467,15.327742 L 70.790748,17.827742 C 69.623252,19.202742 68.421279,21.002742 68.119695,21.827742 C 67.650155,23.112198 67.560017,23.101322 67.492414,21.752056 z M 145.41346,17.934731 C 145.41346,17.443575 146.15211,16.758273 147.0549,16.411839 C 148.42738,15.885172 148.48924,16.031503 147.43246,17.30485 C 145.99233,19.040095 145.41346,19.22069 145.41346,17.934731 z M 106.49241,14.411075 C 106.44899,13.356909 106.68533,12.766284 107.01763,13.098575 C 107.34992,13.430867 107.38544,14.293367 107.09657,15.015242 C 106.77735,15.812975 106.54039,15.576018 106.49241,14.411075 z M 131.41346,15.450187 C 131.41346,15.242531 132.20096,14.455031 133.16346,13.700187 C 134.74952,12.456316 134.78489,12.491686 133.54102,14.077742 C 132.23465,15.74349 131.41346,16.273221 131.41346,15.450187 z M 143.45979,14.38357 C 142.80059,13.589275 140.60799,12.764921 138.58735,12.551673 L 134.91346,12.163948 L 138.50847,11.995845 C 140.98746,11.879927 142.66537,12.448613 143.91346,13.827742 C 144.90895,14.927742 145.48379,15.827742 145.19089,15.827742 C 144.89799,15.827742 144.119,15.177864 143.45979,14.38357 z M 83.6843,13.223575 C 84.016592,12.891284 84.879092,12.855757 85.600967,13.144628 C 86.3987,13.463854 86.161743,13.700811 84.9968,13.748795 C 83.942634,13.792216 83.352009,13.555867 83.6843,13.223575 z M 158.39671,8.5777427 C 160.83358,4.4438045 160.44837,1.2987809 157.51888,1.4106829 C 156.12272,1.4640137 155.69234,1.1488638 156.3133,0.5279003 C 157.55962,-0.71842069 160.28617,0.33245238 161.06377,2.3588377 C 161.71864,4.0654161 158.62937,11.827742 157.29531,11.827742 C 156.84739,11.827742 157.34302,10.365242 158.39671,8.5777427 z M 57.913467,8.8277427 C 57.573548,8.2777428 57.771991,7.8277427 58.35445,7.8277427 C 58.936909,7.8277427 59.413467,8.2777428 59.413467,8.8277427 C 59.413467,9.3777427 59.215025,9.8277423 58.972484,9.8277423 C 58.729943,9.8277423 58.253386,9.3777427 57.913467,8.8277427 z M 70.6843,0.22357608 C 71.016592,-0.10871558 71.879092,-0.1442419 72.600967,0.14462871 C 73.3987,0.46385508 73.161743,0.7008115 71.9968,0.7487954 C 70.942634,0.7922164 70.352009,0.5558678 70.6843,0.22357608 z"
+ style="fill:#300006" />
+ <path
+ id="path2453"
+ d="M 150.41346,32.070536 C 150.41346,31.654073 152.55096,31.451031 155.16346,31.619333 C 162.76244,32.10887 163.4181,32.586373 156.66346,32.711741 C 153.22596,32.775541 150.41346,32.486999 150.41346,32.070536 z M 106.00934,26.982884 C 105.44489,26.069586 109.10236,22.181134 109.83351,22.917206 C 110.0578,23.143001 109.41257,24.349915 108.39968,25.599237 C 107.38679,26.848559 106.31114,27.471201 106.00934,26.982884 z M 68.492414,25.411075 C 68.448993,24.356909 68.685342,23.766284 69.017634,24.098575 C 69.349925,24.430867 69.385452,25.293367 69.096581,26.015242 C 68.777355,26.812975 68.540398,26.576018 68.492414,25.411075 z M 153.91346,24.827742 C 154.90895,23.727742 155.94844,22.827742 156.22344,22.827742 C 156.49844,22.827742 155.90895,23.727742 154.91346,24.827742 C 153.91797,25.927742 152.87848,26.827742 152.60348,26.827742 C 152.32848,26.827742 152.91797,25.927742 153.91346,24.827742 z M 134.41346,23.444373 C 134.41346,23.233521 135.31346,22.825649 136.41346,22.537993 C 137.51346,22.250337 138.41346,22.422852 138.41346,22.921362 C 138.41346,23.419871 137.51346,23.827742 136.41346,23.827742 C 135.31346,23.827742 134.41346,23.655226 134.41346,23.444373 z M 75.413467,22.450187 C 75.413467,22.242531 76.200967,21.455031 77.163467,20.700187 C 78.749523,19.456316 78.784893,19.491686 77.541022,21.077742 C 76.234653,22.74349 75.413467,23.273221 75.413467,22.450187 z M 86.913467,19.827742 C 88.494267,18.177742 90.012649,16.827742 90.287649,16.827742 C 90.562649,16.827742 89.494267,18.177742 87.913467,19.827742 C 86.332667,21.477742 84.814285,22.827742 84.539285,22.827742 C 84.264285,22.827742 85.332667,21.477742 86.913467,19.827742 z M 94.97776,20.534614 C 95.353291,19.548393 95.912452,18.993393 96.220339,19.301281 C 96.528226,19.609168 96.220973,20.416075 95.537555,21.094409 C 94.549939,22.074676 94.435075,21.959812 94.97776,20.534614 z M 134.49241,20.200187 C 134.44899,19.580031 135.08846,18.512431 135.91346,17.827742 C 137.17546,16.780378 137.41103,16.959287 137.39815,18.955297 C 137.38704,20.675667 137.14546,20.953074 136.5192,19.964589 C 135.79006,18.813719 135.57114,18.813719 135.11346,19.964589 C 134.8153,20.714323 134.53583,20.820342 134.49241,20.200187 z M 151.41346,19.577742 C 151.41346,19.165242 152.2869,18.827742 153.35444,18.827742 C 154.42198,18.827742 155.50401,19.165242 155.75895,19.577742 C 156.01389,19.990242 155.14045,20.327742 153.81797,20.327742 C 152.49549,20.327742 151.41346,19.990242 151.41346,19.577742 z M 152.41346,17.450187 C 152.41346,17.242531 153.20096,16.455031 154.16346,15.700187 C 155.74952,14.456316 155.78489,14.491686 154.54102,16.077742 C 153.23465,17.74349 152.41346,18.273221 152.41346,17.450187 z M 131.41346,15.450187 C 131.41346,15.242531 132.20096,14.455031 133.16346,13.700187 C 134.74952,12.456316 134.78489,12.491686 133.54102,14.077742 C 132.23465,15.74349 131.41346,16.273221 131.41346,15.450187 z M 157.41346,10.886759 C 157.41346,10.369218 157.85831,9.6708473 158.40201,9.3348219 C 158.96887,8.9844831 159.13651,9.3858798 158.79502,10.275804 C 158.13023,12.008221 157.41346,12.325191 157.41346,10.886759 z M 160.52946,4.0455185 C 160.46016,2.6820858 159.50764,1.3991999 158.16346,0.8589049 C 156.64084,0.24688827 156.43962,-0.0659763 157.54102,-0.10887095 C 159.74405,-0.19466965 161.68406,2.3253035 161.11204,4.5297035 C 160.75051,5.9229144 160.61935,5.8139003 160.52946,4.0455185 z"
+ style="fill:#120002" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#ffffff;fill-opacity:1"
+ id="path2654"
+ sodipodi:cx="41.065228"
+ sodipodi:cy="90.293983"
+ sodipodi:rx="0.85965854"
+ sodipodi:ry="2.6451032"
+ d="M 41.924886,90.293983 A 0.85965854,2.6451032 0 1 1 40.205569,90.293983 A 0.85965854,2.6451032 0 1 1 41.924886,90.293983 z" />
+ <rect
+ style="fill:#101025;fill-opacity:1"
+ id="rect2658"
+ width="44.702244"
+ height="1.1902964"
+ x="-0.2645103"
+ y="71.778259" />
+ <path
+ style="fill:#cd0020;fill-opacity:1;stroke:#272454;stroke-width:0.13225515;stroke-opacity:1"
+ d="M 142.42626,38.386552 L 141.23934,36.766426 L 141.68344,35.047109 C 141.92769,34.101485 142.16041,33.223641 142.2006,33.096346 C 142.26095,32.905204 142.43334,32.864899 143.19054,32.864899 C 143.69482,32.864899 144.10742,32.912899 144.10742,32.971566 C 144.10742,33.030233 143.86936,33.689092 143.5784,34.435698 C 143.28743,35.182303 143.04938,35.879699 143.04938,35.985462 C 143.04938,36.264473 144.10331,37.890595 144.28414,37.890595 C 144.3683,37.890595 144.8987,37.736887 145.46281,37.549021 C 146.26256,37.28268 146.50191,37.144315 146.54951,36.920809 C 146.61306,36.622435 147.14929,33.059449 147.14929,32.935559 C 147.14929,32.896696 147.61717,32.864899 148.18902,32.864899 L 149.22876,32.864899 L 148.78446,35.080173 C 148.5401,36.298574 148.27683,37.605358 148.19941,37.984139 L 148.05866,38.672829 L 145.96399,39.339756 C 144.81192,39.706562 143.81169,40.006678 143.74126,40.006678 C 143.67083,40.006678 143.07908,39.277621 142.42627,38.386552 L 142.42626,38.386552 z"
+ id="path2411" />
+ <rect
+ style="fill:#101025;fill-opacity:1;stroke:#101025;stroke-opacity:1"
+ id="rect2413"
+ width="10.051392"
+ height="0.2645103"
+ x="45.363518"
+ y="34.217796" />
+ <rect
+ style="fill:#101025;fill-opacity:1;stroke:#101025;stroke-opacity:1"
+ id="rect2429"
+ width="10.712667"
+ height="0.16531895"
+ x="68.012215"
+ y="33.325073" />
+ <rect
+ style="fill:#101025;fill-opacity:1;stroke:#101025;stroke-opacity:1"
+ id="rect2431"
+ width="10.778795"
+ height="0.49595684"
+ x="68.111404"
+ y="33.358135" />
+ <rect
+ style="fill:#101025;fill-opacity:1;stroke:#101025;stroke-opacity:1"
+ id="rect2441"
+ width="13.456963"
+ height="0.56208444"
+ x="86.494873"
+ y="33.292007" />
+</svg>
diff --git a/data/images/tux/Makefile.am b/data/images/tux/Makefile.am
new file mode 100644
index 0000000..9f33619
--- /dev/null
+++ b/data/images/tux/Makefile.am
@@ -0,0 +1,36 @@
+## Makefile.am for tuxmath data/images/tux:
+## Process with AutoMake:
+
+tuxdir = $(pkgdatadir)/images/tux
+
+dist_tux_DATA = bigtux0.png \
+ bigtux1.png \
+ bigtux2.png \
+ bigtux3.png \
+ bigtux4.png \
+ bigtux5.png \
+ bigtux6.png \
+ bigtux.svg \
+ console_led.png \
+ console_bash.png \
+ tux-console1.png \
+ tux-console2.png \
+ tux-console3.png \
+ tux-console4.png \
+ tux-drat.png \
+ tux-egypt1.png \
+ tux-egypt2.png \
+ tux-egypt3.png \
+ tux-egypt4.png \
+ tux-fist1.png \
+ tux-fist2.png \
+ tux-kiss1.png \
+ tux-kiss2.png \
+ tux-relax1.png \
+ tux-relax2.png \
+ tux-sit.png \
+ tux-yay1.png \
+ tux-yay2.png \
+ tux-yes1.png \
+ tux-yes2.png \
+ tux-yipe.png
diff --git a/data/images/tux/Roos_bigtux0.png b/data/images/tux/Roos_bigtux0.png
new file mode 100644
index 0000000..88f8c4e
Binary files /dev/null and b/data/images/tux/Roos_bigtux0.png differ
diff --git a/data/images/tux/Roos_bigtux1.png b/data/images/tux/Roos_bigtux1.png
new file mode 100644
index 0000000..e8fe9f7
Binary files /dev/null and b/data/images/tux/Roos_bigtux1.png differ
diff --git a/data/images/tux/Roos_bigtux2.png b/data/images/tux/Roos_bigtux2.png
new file mode 100644
index 0000000..7174f32
Binary files /dev/null and b/data/images/tux/Roos_bigtux2.png differ
diff --git a/data/images/tux/Roos_bigtux3.png b/data/images/tux/Roos_bigtux3.png
new file mode 100644
index 0000000..9a9bb83
Binary files /dev/null and b/data/images/tux/Roos_bigtux3.png differ
diff --git a/data/images/tux/bigtux.svg b/data/images/tux/bigtux.svg
new file mode 100644
index 0000000..4db3f8e
--- /dev/null
+++ b/data/images/tux/bigtux.svg
@@ -0,0 +1,3711 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg:svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="578.12531"
+ height="688.40863"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="bigtux.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ version="1.0"
+ style="display:inline">
+ <desc>7 frames</desc>
+ <svg:metadata
+ id="metadata94">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </svg:metadata>
+ <sodipodi:namedview
+ inkscape:window-height="726"
+ inkscape:window-width="1280"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ showgrid="false"
+ inkscape:zoom="0.52164325"
+ inkscape:cx="-83.928959"
+ inkscape:cy="347.37808"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:current-layer="svg2" />
+ <svg:defs
+ id="defs4">
+ <svg:linearGradient
+ inkscape:collect="always"
+ id="linearGradient3401">
+ <svg:stop
+ style="stop-color:#cf0000;stop-opacity:1;"
+ offset="0"
+ id="stop3403" />
+ <svg:stop
+ style="stop-color:#cf0000;stop-opacity:0;"
+ offset="1"
+ id="stop3405" />
+ </svg:linearGradient>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 375 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="625 : 375 : 1"
+ inkscape:persp3d-origin="312.5 : 250 : 1"
+ id="perspective96" />
+ <svg:linearGradient
+ id="linearGradient172">
+ <svg:stop
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0.6;"
+ offset="0"
+ id="stop173" />
+ <svg:stop
+ style="stop-color: rgb(63, 38, 0); stop-opacity: 0;"
+ offset="1"
+ id="stop174" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient167">
+ <svg:stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.65;"
+ offset="0"
+ id="stop168" />
+ <svg:stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+ offset="1"
+ id="stop169" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient162">
+ <svg:stop
+ style="stop-color: rgb(255, 166, 63); stop-opacity: 1;"
+ offset="0"
+ id="stop163" />
+ <svg:stop
+ style="stop-color: rgb(255, 255, 0); stop-opacity: 1;"
+ offset="1"
+ id="stop164" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient153">
+ <svg:stop
+ style="stop-color: rgb(255, 238, 215); stop-opacity: 1;"
+ offset="0"
+ id="stop154" />
+ <svg:stop
+ style="stop-color: rgb(189, 191, 194); stop-opacity: 1;"
+ offset="1"
+ id="stop155" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ id="linearGradient138">
+ <svg:stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0.8;"
+ offset="0"
+ id="stop139" />
+ <svg:stop
+ style="stop-color: rgb(255, 255, 255); stop-opacity: 0;"
+ offset="1"
+ id="stop140" />
+ </svg:linearGradient>
+ <svg:linearGradient
+ xlink:href="#linearGradient138"
+ id="linearGradient141"
+ x1="0.47424799"
+ y1="0.020191999"
+ x2="0.417539"
+ y2="0.90125799"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient142"
+ x1="0.55880702"
+ y1="0.031192999"
+ x2="0.553922"
+ y2="0.94531101"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient143"
+ x1="0.46557701"
+ y1="0.028819799"
+ x2="0.41365999"
+ y2="0.93366498"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient144"
+ x1="0.70346397"
+ y1="0.059404202"
+ x2="0.64553201"
+ y2="0.94063401"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient145"
+ x1="0.46741399"
+ y1="-0.036155298"
+ x2="0.86741799"
+ y2="0.75857902"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient146"
+ x1="0.57152498"
+ y1="0.023441499"
+ x2="0.57143003"
+ y2="0.71875"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient147"
+ x1="0.5"
+ y1="0.0234362"
+ x2="0.5"
+ y2="0.8125"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient148"
+ x1="0.50799799"
+ y1="0.37435901"
+ x2="0.51599997"
+ y2="0.92820501"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient138"
+ id="linearGradient149"
+ x1="0.5"
+ y1="0.131707"
+ x2="0.50400001"
+ y2="0.94634098"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient150"
+ x1="-0.30509499"
+ y1="0.099496603"
+ x2="0.156323"
+ y2="0.94191301"
+ gradientUnits="objectBoundingBox"
+ gradientTransform="matrix(-0.928523,0.283938,0.435332,0.943857,-1.91327e-7,5.49908e-8)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient151"
+ x1="0.433979"
+ y1="0.022184599"
+ x2="0.487055"
+ y2="1.02569"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient152"
+ x1="0.5"
+ y1="0.89842999"
+ x2="0.5"
+ y2="0.40625"
+ gradientUnits="objectBoundingBox"
+ spreadMethod="reflect" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient156"
+ x1="0.43568701"
+ y1="0.98882002"
+ x2="0.453989"
+ y2="0.23093501"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient157"
+ x1="0.49180499"
+ y1="1.15284"
+ x2="0.49482101"
+ y2="0.41252401"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient158"
+ x1="0.51730198"
+ y1="0.85418499"
+ x2="0.49843901"
+ y2="0.136172"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient159"
+ x1="0.46201"
+ y1="0.87917101"
+ x2="0.49215299"
+ y2="0.096282303"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient161"
+ x1="0.50086302"
+ y1="0.34872901"
+ x2="0.41209599"
+ y2="0.98558098"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient165"
+ x1="0.60399801"
+ y1="0.51020199"
+ x2="0.46399999"
+ y2="0.98367399"
+ gradientUnits="objectBoundingBox" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient166"
+ x1="0.50000501"
+ y1="0.191616"
+ x2="0.50800002"
+ y2="0.97005898"
+ gradientUnits="objectBoundingBox" />
+ <svg:radialGradient
+ xlink:href="#linearGradient172"
+ id="radialGradient171"
+ cx="0.5"
+ cy="0.5"
+ fx="0.5"
+ fy="0.5"
+ r="0.5"
+ gradientUnits="objectBoundingBox" />
+ <svg:radialGradient
+ xlink:href="#linearGradient172"
+ id="radialGradient176" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient178"
+ x1="0.94027299"
+ y1="1.2934099"
+ x2="0.19452"
+ y2="-0.675295"
+ gradientUnits="objectBoundingBox" />
+ <svg:radialGradient
+ xlink:href="#linearGradient172"
+ id="radialGradient1399"
+ gradientTransform="matrix(-1.04523,0,0,0.956725,933.97302,0)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1401"
+ gradientUnits="userSpaceOnUse"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886"
+ gradientTransform="matrix(-0.5750409,-1.7558053e-2,-4.3773889e-2,1.7376718,656.04524,10.013777)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient138"
+ id="linearGradient1403"
+ gradientUnits="userSpaceOnUse"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561"
+ gradientTransform="matrix(-1.120918,-0.1335127,6.5211182e-2,0.8998931,666.56767,39.783511)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.8110831,-9.1567187e-2,-0.1443444,1.2166192,731.20321,41.137281)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1407"
+ gradientUnits="userSpaceOnUse"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338"
+ gradientTransform="matrix(-0.8155854,5.2020847e-2,4.2900171e-2,1.2233726,644.88077,-20.554871)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.8043937,-0.1242372,-0.2368619,1.2065851,786.27753,60.266189)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1411"
+ gradientUnits="userSpaceOnUse"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513"
+ gradientTransform="matrix(-0.7973585,-0.1653001,-0.2802781,1.1960324,963.15637,98.651849)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1413"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361"
+ gradientTransform="matrix(-0.812855,0,0,1.23023,700.4774,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1415"
+ gradientUnits="userSpaceOnUse"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815"
+ gradientTransform="matrix(-0.6416796,-0.1101633,-0.2250226,1.5197753,736.49555,62.823895)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient138"
+ id="linearGradient1417"
+ gradientUnits="userSpaceOnUse"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439"
+ gradientTransform="matrix(-1.0748,0,0,0.930408,696.12757,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1419"
+ gradientUnits="userSpaceOnUse"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251"
+ gradientTransform="matrix(-1.077,0,0,0.928504,695.36464,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1421"
+ gradientUnits="userSpaceOnUse"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858"
+ gradientTransform="matrix(-0.571707,0,0,1.74915,700.4774,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1423"
+ gradientUnits="userSpaceOnUse"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911"
+ gradientTransform="matrix(-0.572667,0,0,1.74621,700.4774,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient1425"
+ gradientUnits="userSpaceOnUse"
+ x1="236.25362"
+ y1="657.11133"
+ x2="212.5099"
+ y2="737.41229"
+ gradientTransform="matrix(-1.01151,0,0,0.988617,700.4774,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient153"
+ id="linearGradient1427"
+ gradientUnits="userSpaceOnUse"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583"
+ gradientTransform="matrix(-0.7491824,0.7896701,0.6402826,0.6599041,-220.12211,95.787478)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient1429"
+ gradientUnits="userSpaceOnUse"
+ x1="218.11714"
+ y1="630.30475"
+ x2="203.12654"
+ y2="737.8537"
+ gradientTransform="matrix(-0.7498322,0.639263,0.7018488,0.7352751,156.71574,-56.932196)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1431"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.7277358,0.6239729,0.7668312,0.7166254,165.95866,-59.669455)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1433"
+ gradientUnits="userSpaceOnUse"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723"
+ gradientTransform="matrix(-1.0012371,-0.1000342,3.4698038e-2,1.0022349,755.52373,37.775103)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1435"
+ gradientUnits="userSpaceOnUse"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507"
+ gradientTransform="matrix(-0.7721298,0.7996578,0.5938314,0.680117,-497.26848,216.38995)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient162"
+ id="linearGradient1437"
+ gradientUnits="userSpaceOnUse"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934"
+ gradientTransform="matrix(-1.21868,0,0,0.820557,700.4774,0)" />
+ <svg:linearGradient
+ xlink:href="#linearGradient167"
+ id="linearGradient1439"
+ gradientUnits="userSpaceOnUse"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939"
+ gradientTransform="matrix(-1.22194,0,0,0.81837,735.4416,0)" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2490"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2494"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2497"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2501"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2504"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2507"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2510"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2513"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2516"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2519"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2522"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2525"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2529"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2532"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2535"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2538"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2543"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2546"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient2557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient3401"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-349.5464,157.9413)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3403"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,862.828,-357.2697)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3405"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-108.609,-190.0137)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3407"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-165.99499,-241.8697)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3409"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,896.708,-349.0297)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3411"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,502.744,22.7597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3413"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,138.582,50.7383)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3415"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-125.298,-232.4827)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3417"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-202.339,-230.1907)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3419"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-140.71,-217.8097)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3421"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-100.129,-164.3307)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3423"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-125.298,-231.7577)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3425"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-125.298,-231.7577)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3427"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-125.298,-231.7577)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3429"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,389.816,76.2113)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3431"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,417.591,-278.0737)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3433"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,403.576,-128.5947)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3435"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-66.561,-92.718)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3437"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,413.77,254.0383)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3439"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-125.298,-231.7577)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3441"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,81.614001,-12.4354)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2508"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,58.176291,-43.23107)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2512"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-148.73571,-262.55337)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2515"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2520"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2523"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2526"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2530"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2533"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2536"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2539"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2542"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2545"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2550"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2554"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.14429,19.94263)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2560"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.30629,-8.03597)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2565"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.27029,-379.82537)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2568"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.4327,-272.66537)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2571"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2575"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient2579"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2623"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2625"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2627"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2642"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2644"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2646"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041831)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2648"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2663"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2665"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2667"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041822)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2669"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574418)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient2561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.98411,127.14563)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2583"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2585"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2587"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2589"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2591"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2593"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2595"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2597"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2599"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2601"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2603"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2606"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2608"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2610"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2631"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2633"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2635"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2637"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2639"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2641"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2643"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2645"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2647"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2649"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2651"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2653"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2655"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2657"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:filter
+ inkscape:collect="always"
+ id="filter3563">
+ <svg:feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="14.901949"
+ id="feGaussianBlur3565" />
+ </svg:filter>
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient172"
+ id="radialGradient3570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4818226,0,0,0.3967969,-372.9841,127.14563)"
+ cx="446.77762"
+ cy="1219.4125"
+ fx="446.77762"
+ fy="1219.4125"
+ r="195.07191" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2616"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2618"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.60904,-43.417186)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3410"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ gradientUnits="userSpaceOnUse" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3416"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3418"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.5957,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55698,-121.56098)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60305,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.09992,-271.96871)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.60304,-379.12871)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3401"
+ id="radialGradient3455"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3676132,-1.9364236e-7,2.2735825e-7,1.6057341,-110.55723,-121.56135)"
+ cx="300.10394"
+ cy="200.60478"
+ fx="300.10394"
+ fy="200.60478"
+ r="22.86916" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3469"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3471"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3473"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041802)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3475"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.57442)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2724"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2726"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2728"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2730"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2732"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2734"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient2736"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2738"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2740"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2742"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2744"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2746"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2748"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2750"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2752"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2754"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2756"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0650795,-6.1672143e-2,9.4458175e-2,1.6442991,-189.10727,-272.03359)"
+ x1="378.93771"
+ y1="278.60202"
+ x2="380.27319"
+ y2="243.91606" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient2758"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.4785291,4.0425338e-2,3.8863939e-2,1.9024254,873.59572,-379.19359)"
+ x1="381.38742"
+ y1="277.495"
+ x2="380.5517"
+ y2="245.68338" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2760"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.3921823,-2.976459e-2,-5.7309879e-2,0.5824937,479.63172,-7.4041877)"
+ x1="379.09573"
+ y1="240.92712"
+ x2="376.79556"
+ y2="281.01636" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2762"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.291416,-3.3330312e-2,5.0610171e-2,0.4881128,115.46972,20.574413)"
+ x1="389.63535"
+ y1="242.28218"
+ x2="387.06866"
+ y2="281.32513" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient2864"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient2866"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3038"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3040"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3042"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3044"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3046"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3048"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3050"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3052"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3054"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3056"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3058"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3060"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3062"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3064"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3128"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3130"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3132"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3134"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3136"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3138"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3140"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3142"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3144"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3146"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3148"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3150"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3152"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3154"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3166"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3230"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3234"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3238"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3242"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3246"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3250"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3254"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3266"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.52335,0,0,1.0256962,-149.30296,-262.7395)"
+ x1="284.68652"
+ y1="410.46326"
+ x2="285.45923"
+ y2="485.69934" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7672378,0,0,0.4874752,57.609043,-43.417197)"
+ x1="288.82358"
+ y1="398.85422"
+ x2="288.37628"
+ y2="482.55939" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3314"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3316"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3318"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3320"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3322"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3324"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3326"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3328"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3332"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3334"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3336"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3338"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3382"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3384"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3388"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3392"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3394"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3396"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3398"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3400"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3402"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3404"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3406"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3408"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3454"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9649387,-1.2915552e-2,-3.672e-2,2.5569242,839.39029,-388.06537)"
+ x1="400.57785"
+ y1="369.53015"
+ x2="400.84448"
+ y2="304.07886" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4132348,-7.9650257e-2,-4.1197677e-2,1.0713843,-132.04671,-220.80937)"
+ x1="303.01761"
+ y1="237.93179"
+ x2="297.0856"
+ y2="330.09561" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3458"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0160687,0,0,1.5377875,-148.73571,-263.27837)"
+ spreadMethod="reflect"
+ x1="437.57941"
+ y1="528.87177"
+ x2="437.57941"
+ y2="394.10361" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3460"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9027839,-7.217412e-2,0.1572996,2.0039544,-225.77671,-260.98637)"
+ x1="375.17325"
+ y1="419.78485"
+ x2="377.48541"
+ y2="324.03815" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient138"
+ id="linearGradient3462"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.3994863,0,0,1.1399824,-164.14771,-248.60537)"
+ x1="320.75104"
+ y1="498.17776"
+ x2="321.32224"
+ y2="614.50439" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3464"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2781836,0,0,0.990788,-123.56671,-195.12637)"
+ x1="322.48257"
+ y1="435.26761"
+ x2="323.2514"
+ y2="488.48251" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3466"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7146337,0,0,2.1864375,-148.73571,-262.55337)"
+ x1="411.2215"
+ y1="242.94365"
+ x2="411.2215"
+ y2="331.44858" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3468"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7158338,0,0,2.1827625,-148.73571,-262.55337)"
+ x1="867.34546"
+ y1="234.73897"
+ x2="867.33453"
+ y2="314.83911" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3470"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.2643875,0,0,1.2357712,-148.73571,-262.55337)"
+ x1="440.54126"
+ y1="602.05945"
+ x2="540.23102"
+ y2="819.25677" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient153"
+ id="linearGradient3472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.6373885,0.2861762,-0.2248927,0.5792711,366.37829,45.41563)"
+ x1="381.56607"
+ y1="655.73102"
+ x2="279.64313"
+ y2="386.66583" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient162"
+ id="linearGradient3474"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.1800098,0.427313,0.4706466,1.1534175,394.15329,-308.86937)"
+ x1="418.28036"
+ y1="560.19635"
+ x2="558.62012"
+ y2="643.92542" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3476"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9523921,0.3463987,0.4208255,0.9487298,380.13829,-159.39037)"
+ x1="117.88966"
+ y1="587.23602"
+ x2="182.24524"
+ y2="704.73077" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3478"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0038118,-5.2260082e-2,-1.7408699e-2,1.0462729,-89.99871,-123.51367)"
+ x1="223.10072"
+ y1="570.41809"
+ x2="230.53499"
+ y2="710.97723" />
+ <svg:linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient167"
+ id="linearGradient3480"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3742366,0.1592528,-0.1209348,0.3223549,390.33229,223.24263)"
+ x1="316.93988"
+ y1="474.01779"
+ x2="371.60889"
+ y2="582.63507" />
+ </svg:defs>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame0"
+ inkscape:label="frame0"
+ style="display:inline">
+ <svg:g
+ id="g2687"
+ transform="translate(0,-0.2213731)">
+ <svg:g
+ id="g2644"
+ style="display:inline">
+ <svg:path
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ id="path2662" />
+ <svg:g
+ id="g2563"
+ transform="translate(-0.4498367,-0.2213987)">
+ <svg:path
+ id="path106"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ style="fill:#000000;stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path113"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ style="fill:url(#linearGradient2728);stroke:none;stroke-width:0.99464899" />
+ <svg:path
+ id="path111"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006" />
+ <svg:path
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z"
+ id="path114"
+ style="fill:url(#linearGradient2730);stroke:none;stroke-width:1.26498997" />
+ <svg:path
+ id="path128"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ style="fill:url(#linearGradient2732);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path112"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ style="fill:url(#linearGradient2734);stroke:none;stroke-width:1.15804005" />
+ <svg:path
+ id="path109"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625" />
+ <svg:path
+ id="path125"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ style="font-size:12px;fill:url(#linearGradient2736);stroke:none;stroke-width:1.23705006;stroke-dasharray:none" />
+ <svg:path
+ id="path127"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ style="font-size:12px;fill:url(#linearGradient2738);stroke:none;stroke-width:1.38846004;stroke-dasharray:none" />
+ <svg:path
+ id="path129"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ style="fill:url(#linearGradient2740);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path131"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ style="fill:url(#linearGradient2742);stroke:none;stroke-width:1.25" />
+ <svg:path
+ id="path132"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ style="fill:url(#linearGradient2744);stroke:#e68c3f;stroke-width:7.8125" />
+ <svg:path
+ id="path177"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ style="font-size:12px;fill:url(#linearGradient2746);stroke:none;stroke-width:2.85509992;stroke-dasharray:none" />
+ <svg:path
+ id="path133"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ style="fill:url(#linearGradient2748);stroke:#e68c3f;stroke-width:7.81249762" />
+ <svg:path
+ id="path134"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ style="fill:url(#linearGradient2750);stroke:none;stroke-width:1.52532005" />
+ <svg:path
+ id="path135"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ style="fill:url(#linearGradient2752);stroke:none;stroke-width:1.52532005" />
+ <svg:path
+ id="path136"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992" />
+ <svg:path
+ id="path137"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ style="font-size:12px;fill:url(#linearGradient2754);stroke:none;stroke-width:2.85509992" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305374 339.85502,98.550854 C 326.82429,97.796323 315.32396,113.49292 314.16831,133.61019 z"
+ id="path2609"
+ style="fill:url(#linearGradient2756);stroke:none;stroke-width:1.17873001" />
+ <svg:path
+ sodipodi:nodetypes="csssssc"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761862 258.62565,92.111513 C 269.05643,92.396707 278.22021,98.924634 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ id="path2611"
+ style="fill:url(#linearGradient2758);stroke:none;stroke-width:0.93138498" />
+ <svg:path
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z"
+ id="path2613"
+ style="fill:#000000;stroke:none;stroke-width:1.86495996" />
+ <svg:path
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z"
+ id="path2615"
+ style="fill:#000000;stroke:none;stroke-width:2.39814997" />
+ <svg:path
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z"
+ id="path2617"
+ style="fill:url(#linearGradient2760);stroke:none;stroke-width:3.1916101" />
+ <svg:path
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z"
+ id="path2619"
+ style="fill:url(#linearGradient2762);stroke:none;stroke-width:4.12025976" />
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g2716"
+ transform="translate(-1.8627146e-6,-0.2213689)">
+ <svg:path
+ id="path2718"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2724);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2720"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2722"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient2726);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame1"
+ inkscape:label="frame1"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g2766"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path2768"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g2770">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path2772" />
+ <svg:path
+ style="fill:url(#linearGradient3038);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path2774" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path2776" />
+ <svg:path
+ style="fill:url(#linearGradient3040);stroke:none;stroke-width:1.26498997"
+ id="path2778"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3042);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path2780" />
+ <svg:path
+ style="fill:url(#linearGradient3044);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path2782" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path2784" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3046);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path2786" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3048);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path2788" />
+ <svg:path
+ style="fill:url(#linearGradient3050);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path2790" />
+ <svg:path
+ style="fill:url(#linearGradient3052);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path2792" />
+ <svg:path
+ style="fill:url(#linearGradient3054);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path2794" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3056);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path2796" />
+ <svg:path
+ style="fill:url(#linearGradient3058);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path2798" />
+ <svg:path
+ style="fill:url(#linearGradient3060);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path2800" />
+ <svg:path
+ style="fill:url(#linearGradient3062);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path2802" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path2804" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3064);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path2806" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ style="fill:url(#linearGradient2642);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path2630"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 361.85468,127.67443 359.00739,118.24128 357.00895,114.86192 C 355.89587,112.9797 347.27105,112.19826 339.85502,111.76885 C 331.55177,111.28806 321.52642,113.19669 319.72949,114.88767 C 317.92276,116.58787 314.73576,126.38584 314.16831,133.61019 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:url(#linearGradient2644);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path2632"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 228.91667,114.09809 230.38619,112.5739 C 232.54915,110.33047 249.46451,107.81662 256.9201,107.46145 C 265.42816,107.05613 281.71312,107.50204 283.80551,109.29 C 285.65087,110.86686 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path2634"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path2636"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient2646);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path2638"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient2648);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path2640"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ <svg:g
+ style="display:inline"
+ id="g2820"
+ transform="translate(-9.9125613e-7,-0.2213631)">
+ <svg:path
+ id="path2822"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient2864);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path2824"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path2826"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient2866);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame2"
+ inkscape:label="frame2"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g3066"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path3068"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3070">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3072" />
+ <svg:path
+ style="fill:url(#linearGradient3128);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3074" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3076" />
+ <svg:path
+ style="fill:url(#linearGradient3130);stroke:none;stroke-width:1.26498997"
+ id="path3078"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3132);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3080" />
+ <svg:path
+ style="fill:url(#linearGradient3134);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3082" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3084" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3136);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3086" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3138);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3088" />
+ <svg:path
+ style="fill:url(#linearGradient3140);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3090" />
+ <svg:path
+ style="fill:url(#linearGradient3142);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3092" />
+ <svg:path
+ style="fill:url(#linearGradient3144);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3094" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3146);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3096" />
+ <svg:path
+ style="fill:url(#linearGradient3148);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3098" />
+ <svg:path
+ style="fill:url(#linearGradient3150);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3100" />
+ <svg:path
+ style="fill:url(#linearGradient3152);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3102" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3104" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3154);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3106" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ style="fill:url(#linearGradient2663);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path2651"
+ d="M 314.16831,133.61019 C 314.29181,154.36704 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 361.90297,156.48561 361.35673,136.34258 C 359.1013,136.26549 352.88574,136.61422 339.85502,135.8597 C 326.82429,135.10517 314.0448,131.82755 314.16831,133.61019 z"
+ sodipodi:nodetypes="cccsc" />
+ <svg:path
+ style="fill:url(#linearGradient2665);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path2653"
+ d="M 290.51788,135.15074 C 290.89516,158.85246 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.88427,156.82455 225.01154,133.35969 C 225.01964,131.86711 249.46169,133.54777 262.24994,133.89742 C 272.68072,134.18262 290.71918,133.18492 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path2655"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path2657"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient2667);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path2659"
+ d="M 272.10899,134.17243 C 271.95738,141.29898 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.11387,141.57602 254.73332,134.42518 C 254.67174,133.26805 272.4738,133.65486 272.10899,134.17243 z"
+ sodipodi:nodetypes="cssc" />
+ <svg:path
+ style="fill:url(#linearGradient2669);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path2661"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.82508,142.37083 345.59316,136.4163 C 345.78597,134.92152 333.72754,134.51079 332.68196,134.9396 z"
+ sodipodi:nodetypes="cssc" />
+ <svg:g
+ style="display:inline"
+ id="g3120"
+ transform="translate(-1.8627147e-6,4.206359e-6)">
+ <svg:path
+ id="path3122"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3164);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path3124"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path3126"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient3166);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame3"
+ inkscape:label="frame3"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g3168"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path3170"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3172">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3174" />
+ <svg:path
+ style="fill:url(#linearGradient3230);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3176" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3178" />
+ <svg:path
+ style="fill:url(#linearGradient3232);stroke:none;stroke-width:1.26498997"
+ id="path3180"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3234);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3182" />
+ <svg:path
+ style="fill:url(#linearGradient3236);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3184" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3186" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3238);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3188" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3240);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3190" />
+ <svg:path
+ style="fill:url(#linearGradient3242);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3192" />
+ <svg:path
+ style="fill:url(#linearGradient3244);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3194" />
+ <svg:path
+ style="fill:url(#linearGradient3246);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3196" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3248);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3198" />
+ <svg:path
+ style="fill:url(#linearGradient3250);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3200" />
+ <svg:path
+ style="fill:url(#linearGradient3252);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3202" />
+ <svg:path
+ style="fill:url(#linearGradient3254);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3204" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3206" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3256);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3208" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ style="display:inline"
+ id="g3222"
+ transform="translate(-1.9912561e-6,4.8775266e-6)">
+ <svg:path
+ id="path3224"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ style="fill:url(#linearGradient3266);stroke:#e68c3f;stroke-width:4.6875" />
+ <svg:path
+ id="path3226"
+ d="M 237.23004,184.31675 C 249.58379,185.043 276.47129,211.9305 304.81254,211.9305 C 333.15379,211.9305 349.86754,185.76925 354.22754,185.76925"
+ style="fill:none;stroke:#e68c3f;stroke-width:3.125" />
+ <svg:path
+ id="path3228"
+ d="M 324.76632,158.35215 C 320.27883,154.31949 306.12379,143.25321 287.35191,154.58277 C 283.39686,156.82605 279.31247,159.26769 273.23831,162.60282 C 261.20678,169.60071 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40066 C 329.56462,162.01788 325.18324,158.72682 324.76632,158.35215 z"
+ style="fill:url(#linearGradient3268);stroke:none" />
+ </svg:g>
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame4"
+ inkscape:label="frame4"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g3270"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path3272"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3274">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3276" />
+ <svg:path
+ style="fill:url(#linearGradient3312);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3278" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3280" />
+ <svg:path
+ style="fill:url(#linearGradient3314);stroke:none;stroke-width:1.26498997"
+ id="path3282"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3316);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3284" />
+ <svg:path
+ style="fill:url(#linearGradient3318);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3286" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3288" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3320);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3290" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3322);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3292" />
+ <svg:path
+ style="fill:url(#linearGradient3324);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3294" />
+ <svg:path
+ style="fill:url(#linearGradient3326);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3296" />
+ <svg:path
+ style="fill:url(#linearGradient3328);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3298" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3330);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3300" />
+ <svg:path
+ style="fill:url(#linearGradient3332);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3302" />
+ <svg:path
+ style="fill:url(#linearGradient3334);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3304" />
+ <svg:path
+ style="fill:url(#linearGradient3336);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3306" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3308" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3338);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3310" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ style="fill:url(#linearGradient2616);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67176 C 329.91754,152.20926 307.83754,126.83926 266.40004,153.47801 C 258.69754,158.49051 252.44754,158.94926 237.62379,165.29676 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.78301 339.68129,161.45801 338.85129,160.67176 z"
+ id="path2610" />
+ <svg:path
+ style="fill:url(#linearGradient2618);stroke:none;display:inline"
+ d="M 324.76632,158.35216 C 320.27883,154.3195 306.12379,143.25322 287.35191,154.58278 C 283.39686,156.82606 279.31247,159.2677 273.23831,162.60283 C 261.20678,169.60072 267.16604,179.68533 281.58039,186.0661 C 288.1217,188.74362 298.90562,194.65263 307.1171,194.23924 C 316.24216,193.40054 322.14553,187.44924 328.19332,183.57324 C 339.28805,176.24476 338.61433,170.32742 333.46065,165.40067 C 329.56462,162.01789 325.18324,158.72683 324.76632,158.35216 z"
+ id="path2614" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 265.875,171.875 C 256.47389,171.95554 246.74579,182.59415 239.84375,184.34375 L 237.21875,184.3125 C 237.70756,184.34124 238.24774,184.42388 238.78125,184.53125 C 238.61143,184.55093 238.44706,184.58754 238.28125,184.59375 L 239.03125,184.59375 C 252.0621,187.46313 277.76657,211.9375 304.8125,211.9375 C 333.15376,211.9375 349.85875,185.78125 354.21875,185.78125 L 353.5625,185.78125 L 353.46875,185.78125 C 350.74993,185.51397 339.47792,172.52285 332.65625,172.34375 C 324.28987,172.1241 306.641,181.90625 300.09375,181.90625 C 291.30804,181.90625 278.12176,171.77225 265.875,171.875 z"
+ id="path2612" />
+ <svg:path
+ style="fill:url(#linearGradient3438);stroke:none;stroke-width:1.17873001;display:inline"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ id="path3412" />
+ <svg:path
+ style="fill:url(#linearGradient3440);stroke:none;stroke-width:0.93138498;display:inline"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ id="path3414" />
+ <svg:path
+ style="fill:url(#radialGradient3410);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ id="path3397"
+ sodipodi:nodetypes="cszzzzczc" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame5"
+ inkscape:label="frame5"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g3340"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path3342"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3344">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3346" />
+ <svg:path
+ style="fill:url(#linearGradient3382);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3348" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3350" />
+ <svg:path
+ style="fill:url(#linearGradient3384);stroke:none;stroke-width:1.26498997"
+ id="path3352"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3386);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3354" />
+ <svg:path
+ style="fill:url(#linearGradient3388);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3356" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3358" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3390);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3360" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3392);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3362" />
+ <svg:path
+ style="fill:url(#linearGradient3394);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3364" />
+ <svg:path
+ style="fill:url(#linearGradient3396);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3366" />
+ <svg:path
+ style="fill:url(#linearGradient3398);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3368" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3400);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3370" />
+ <svg:path
+ style="fill:url(#linearGradient3402);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3372" />
+ <svg:path
+ style="fill:url(#linearGradient3404);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3374" />
+ <svg:path
+ style="fill:url(#linearGradient3406);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3376" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3378" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3408);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3380" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ style="fill:url(#linearGradient2602);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path2596" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 301.375,150.5 C 273.91941,150.5 244.17136,182.32401 238.375,184.3125 L 238.3125,184.3125 L 237.21875,184.3125 C 237.45623,184.32646 237.72063,184.37333 237.96875,184.40625 C 250.62831,186.08577 277.01605,211.9375 304.8125,211.9375 C 332.20521,211.9375 348.73745,187.51092 353.75,185.875 L 354.875,185.875 C 354.65566,185.86175 354.43846,185.81549 354.21875,185.78125 L 354.1875,185.78125 C 342.04133,183.83524 329.18955,150.5 301.375,150.5 z"
+ id="path2598" />
+ <svg:path
+ style="fill:url(#radialGradient3432);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 277,203.10176 C 277.42264,203.10176 278.46511,199.56435 281.21389,196.39485 C 284.0115,193.16904 284.81059,192.03281 287.78951,191.19375 C 290.76843,190.35469 295.86773,192.58739 299.94953,192.66129 C 304.03133,192.73519 312.9627,188.48527 315.34703,192.29054 C 318.60722,195.37863 318.37999,196.78615 319.49575,198.91166 C 320.61151,201.03718 322.73832,206.43271 322.73832,206.43271 C 322.73832,206.43271 314.52167,210.94514 301.2723,210.3555 C 287.85883,209.75856 277,203.10176 277,203.10176 z"
+ id="path3430"
+ sodipodi:nodetypes="cszzzzczc" />
+ <svg:path
+ style="fill:url(#linearGradient3446);stroke:none;stroke-width:1.17873001;display:inline"
+ d="M 338.63235,98.59613 C 330.90457,98.75271 323.84231,104.64458 319.2886,113.72113 C 324.33942,105.93254 331.55918,101.20467 339.25735,101.62738 C 349.65943,102.19856 358.00091,112.02939 360.9136,125.50238 C 358.7781,110.50171 350.43856,99.240427 339.8511,98.62738 C 339.44389,98.603801 339.0363,98.587945 338.63235,98.59613 z"
+ id="path3442" />
+ <svg:path
+ style="fill:url(#linearGradient3448);stroke:none;stroke-width:0.93138498;display:inline"
+ d="M 257.44485,92.15863 C 245.15207,92.38898 234.41072,101.38661 228.9136,114.56488 C 226.56149,120.20358 225.14669,126.61926 225.00735,133.43988 C 224.98,134.77885 225.03288,136.09898 225.1011,137.40863 C 225.24546,130.58803 226.69558,124.17233 229.13235,118.53363 C 235.01102,104.93025 246.66511,95.808979 259.9136,96.15863 C 270.38878,96.435091 279.63535,102.57299 285.6636,112.00238 C 285.15455,110.94667 284.6166,109.93061 284.0386,108.93988 C 278.2401,99.000908 269.06314,92.475072 258.63235,92.18988 C 258.23272,92.178953 257.84139,92.151199 257.44485,92.15863 z"
+ id="path3444" />
+ </svg:g>
+ <svg:g
+ inkscape:groupmode="layer"
+ id="frame6"
+ inkscape:label="frame6"
+ style="display:inline">
+ <svg:g
+ style="display:inline"
+ id="g3410"
+ transform="translate(0,-0.2213731)">
+ <svg:path
+ id="path3413"
+ d="M 292.60975,28.90364 C 185.69571,27.235015 191.67096,138.43626 192.3285,198.15364 C 192.89226,250.20364 154.106,279.71114 127.5785,320.27864 C 97.674303,365.67663 87.543573,431.01619 96.422253,490.87239 C 89.780803,491.32987 83.215603,493.12305 76.891003,498.65364 C 62.623213,510.75687 66.136003,539.40507 54.391005,552.62239 C -1.1201651,614.27398 81.187343,605.06418 118.266,650.02864 C 153.61899,692.07677 205.14942,697.39381 225.17225,657.18489 C 226.35983,654.92945 227.2262,652.51682 227.85975,649.96614 C 257.41198,652.75379 283.01502,643.38461 303.29725,645.02864 C 334.40096,646.7313 352.71477,654.75318 370.17225,653.30989 C 384.1406,681.83793 426.88102,684.5535 469.0785,662.49739 C 519.63097,635.72741 593.141,667.64114 566.4535,594.90364 C 561.10847,578.35611 574.42975,553.64489 565.73475,537.49739 C 555.56098,517.8749 533.7535,522.23489 520.67225,509.15364 C 509.68977,497.56123 502.10654,478.87063 485.29725,475.80989 C 487.03625,421.30654 473.49303,353.80369 433.8285,304.87239 C 401.471,266.22489 393.2235,239.28239 390.67225,203.12239 C 388.93601,161.89864 419.80725,38.81239 303.29725,29.43489 C 299.60952,29.140671 296.05859,28.957467 292.60975,28.90364 z"
+ style="opacity:0.8;fill:#000000;stroke:none;stroke-width:1.25;display:inline;filter:url(#filter3563)" />
+ <svg:g
+ transform="translate(-0.4498367,-0.2213987)"
+ id="g3415">
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.25"
+ d="M 447.32729,527.74663 C 475.31229,487.46788 480.76979,356.51663 415.46854,275.95913 C 383.11104,237.31163 374.85604,210.37788 372.30479,174.21788 C 370.56854,132.99413 401.46104,9.91538 284.95104,0.53788 C 166.94354,-8.87712 173.28104,107.61288 173.95979,169.25663 C 174.52354,221.30663 135.74229,250.80788 109.21479,291.37538 C 60.11604,365.91288 64.26854,494.25038 118.46354,563.71538 C 187.10979,650.67538 245.90479,612.96288 284.95104,616.12788 C 358.06729,620.13038 360.48479,659.11663 447.32729,527.74663 z"
+ id="path3417" />
+ <svg:path
+ style="fill:url(#linearGradient3454);stroke:none;stroke-width:0.99464899"
+ d="M 162.27711,298.99257 C 142.0115,317.64773 89.26718,401.61676 172.66991,453.85728 C 202.07135,472.0492 146.45604,541.73617 119.752,507.98128 C 72.627231,447.38436 102.67999,350.88004 130.94945,316.30107 C 150.14614,291.78873 179.50057,282.29068 162.27711,298.99257 z"
+ id="path3419" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625006"
+ d="M 168.00842,287.54166 C 134.60001,314.53776 73.770374,409.57952 162.49264,471.31385 C 191.63168,490.56173 136.67011,551.25382 105.80822,520.20914 C -1.492906,412.29787 108.60806,288.21363 146.50894,245.555 C 180.38203,208.45651 210.38669,254.31956 168.00842,287.54166 z"
+ id="path3421" />
+ <svg:path
+ style="fill:url(#linearGradient3456);stroke:none;stroke-width:1.26498997"
+ id="path3423"
+ d="M 216.08402,59.364009 C 217.27405,90.31183 251.33194,117.26514 292.15444,119.5659 C 332.97694,121.86667 365.10542,98.64364 363.91539,67.695819 C 362.72536,36.747999 328.66747,9.794692 287.84497,7.493926 C 247.02247,5.193161 214.89399,28.416189 216.08402,59.364009 z" />
+ <svg:path
+ style="fill:url(#linearGradient3458);stroke:none;stroke-width:1.25"
+ d="M 403.48354,356.00288 C 387.43854,319.62413 353.34104,255.72038 352.61479,206.30538 C 352.61479,167.00288 234.89104,157.61663 225.44354,196.85788 C 215.99604,236.09913 192.01729,294.96163 176.75604,323.30288 C 161.49604,351.64288 116.99479,441.67163 164.40104,520.23538 C 207.09729,589.79038 336.55729,644.81788 405.66354,510.78913 C 428.91729,464.28038 424.76979,406.64538 403.48354,356.00288 z"
+ id="path3425" />
+ <svg:path
+ style="fill:url(#linearGradient3460);stroke:none;stroke-width:1.15804005"
+ d="M 417.99044,329.00666 C 431.70017,354.95538 460.22858,423.19981 390.69746,460.53804 C 315.84902,500.17924 316.20892,581.76441 406.04872,542.94566 C 488.18159,507.85838 451.87107,366.0769 428.9001,332.15355 C 413.83858,308.39374 391.24959,279.31108 417.99044,329.00666 z"
+ id="path3427" />
+ <svg:path
+ style="fill:#000000;stroke:#000000;stroke-width:1.5625"
+ d="M 406.21979,299.59663 C 428.05104,335.23163 480.44104,419.36288 410.32979,463.00038 C 315.86854,520.94413 342.61354,578.88913 428.82854,526.71788 C 550.21479,453.88788 443.60979,307.19788 394.91479,251.29538 C 339.35979,188.54538 384.22229,262.65413 406.21979,299.59663 z"
+ id="path3429" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3462);stroke:none;stroke-width:1.23705006;stroke-dasharray:none"
+ d="M 193.46684,369.81139 C 193.46684,409.52419 231.58162,461.11212 297.01946,460.64897 C 364.50418,461.20646 393.30771,409.52419 393.30771,369.81139 C 393.30771,330.09858 348.54316,297.86838 293.38663,297.86838 C 238.2314,297.86838 193.46684,330.09858 193.46684,369.81139 z"
+ id="path3431" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3464);stroke:none;stroke-width:1.38846004;stroke-dasharray:none"
+ d="M 229.07624,244.82218 C 229.80256,285.98159 256.58626,295.69095 290.48127,295.69095 C 324.37746,295.69095 348.98101,289.61499 351.88749,244.82218 C 351.88749,216.74303 324.37746,200.49354 290.48127,200.49354 C 256.58626,200.49354 229.07624,216.74303 229.07624,244.82218 z"
+ id="path3433" />
+ <svg:path
+ style="fill:url(#linearGradient3466);stroke:none;stroke-width:1.25"
+ d="M 434.00479,308.04038 C 411.85979,274.29538 365.23604,222.58538 425.28354,315.30663 C 473.97229,391.61038 443.28729,440.64788 427.46354,454.10538 C 381.80479,494.80788 383.75604,522.04163 419.46979,500.61288 C 496.50104,454.83038 480.51354,377.80288 434.00479,308.04038 z"
+ id="path3435" />
+ <svg:path
+ style="fill:url(#linearGradient3468);stroke:none;stroke-width:1.25"
+ d="M 113.53354,321.84663 C 132.68229,282.22038 193.70104,181.96913 110.62604,298.59288 C 35.04979,403.96413 88.09854,477.35913 97.54604,484.62663 C 106.99229,491.89288 138.96729,506.42663 129.51979,480.99288 C 120.07354,455.55913 72.97729,407.27663 113.53354,321.84663 z"
+ id="path3437" />
+ <svg:path
+ style="fill:url(#linearGradient3470);stroke:#e68c3f;stroke-width:7.8125"
+ d="M 450.71729,633.59788 C 501.26979,606.82788 574.78229,638.75288 548.09479,566.01538 C 542.74979,549.46788 556.06354,524.75538 547.36854,508.60788 C 537.19479,488.98538 515.39354,493.34663 502.31229,480.26538 C 489.41479,466.65163 481.23854,443.20413 457.25729,446.83788 C 433.27729,450.47163 417.32604,479.91413 400.57729,515.87413 C 388.22354,541.67163 344.40104,577.95413 347.26479,606.82163 C 350.63479,651.19663 401.04854,659.55913 450.71729,633.59788 z"
+ id="path3439" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3472);stroke:none;stroke-width:2.85509992;stroke-dasharray:none"
+ d="M 82.24494,462.88931 C 90.01179,477.45399 122.03008,500.5657 143.36844,494.54174 C 165.14161,488.6335 174.9469,455.67689 170.68307,430.73455 C 166.72483,402.64565 143.36911,401.24959 114.0802,415.10503 C 82.59156,430.44169 73.069174,443.58645 82.24494,462.88931 z"
+ id="path3441" />
+ <svg:path
+ style="fill:url(#linearGradient3474);stroke:#e68c3f;stroke-width:7.81249762"
+ d="M 99.91795,621.11875 C 62.839278,576.15428 -19.472149,585.3777 36.039018,523.72611 C 47.784032,510.50878 44.278287,481.85435 58.546079,469.75112 C 75.517493,454.91038 94.23872,467.08152 111.44091,459.32031 C 128.6738,451.0007 146.68545,434.82678 167.72147,446.33083 C 188.75633,457.83446 191.01961,487.76222 193.0034,526.94033 C 194.7428,555.161 220.45875,602.35161 206.80553,628.28161 C 186.78271,668.4905 135.27094,663.16688 99.91795,621.11875 z"
+ id="path3443" />
+ <svg:path
+ style="fill:url(#linearGradient3476);stroke:none;stroke-width:1.52532005"
+ d="M 116.04364,561.0135 C 58.649181,476.2927 101.42547,476.90974 115.75386,470.50188 C 130.12397,463.63622 145.36533,450.33015 162.26421,459.70416 C 179.16214,469.07782 180.12915,493.60411 180.59268,525.71383 C 181.18098,548.84218 200.54356,587.28393 188.89777,608.74832 C 174.9287,633.76781 141.02669,597.42913 116.04364,561.0135 z"
+ id="path3445" />
+ <svg:path
+ style="fill:url(#linearGradient3478);stroke:none;stroke-width:1.52532005"
+ d="M 462.46593,573.2131 C 548.36933,517.60369 508.18451,498.7241 495.14397,489.98944 C 479.50561,478.78744 479.38418,456.95537 460.16707,458.99225 C 440.95097,461.0292 429.76391,484.68716 416.80772,514.07072 C 407.24123,535.13616 374.41331,562.97528 376.76041,587.28248 C 379.8594,615.76955 425.25368,596.99356 462.46593,573.2131 z"
+ id="path3447" />
+ <svg:path
+ style="font-size:12px;fill:#000000;stroke:none;stroke-width:2.85509992"
+ d="M 87.39871,462.09819 C 94.09281,473.77116 121.68879,492.2942 140.07997,487.46624 C 158.8459,482.73103 167.29697,456.31769 163.62209,436.32747 C 160.21059,413.8154 140.0807,412.69653 114.83706,423.80109 C 87.69751,436.0928 79.49031,446.62777 87.39871,462.09819 z"
+ id="path3449" />
+ <svg:path
+ style="font-size:12px;fill:url(#linearGradient3480);stroke:none;stroke-width:2.85509992"
+ d="M 105.88905,455.5601 C 110.15449,463.66511 128.34154,476.52638 140.81207,473.17413 C 153.53282,469.88628 159.75622,451.54645 157.69133,437.66645 C 155.85502,422.03542 142.33597,421.25855 125.12775,428.9689 C 106.61991,437.50352 100.88409,444.81837 105.88905,455.5601 z"
+ id="path3452" />
+ </svg:g>
+ </svg:g>
+ <svg:path
+ style="fill:url(#linearGradient3469);stroke:none;stroke-width:1.17873001;display:inline"
+ id="path3457"
+ d="M 314.16831,133.61019 C 313.01265,153.72746 322.6393,170.64739 335.67002,171.40192 C 348.70075,172.15644 360.20108,156.45985 361.35673,136.34258 C 362.51239,116.22531 352.88574,99.305384 339.85502,98.550864 C 326.82429,97.796334 315.32396,113.49292 314.16831,133.61019 z" />
+ <svg:path
+ style="fill:url(#linearGradient3471);stroke:none;stroke-width:0.93138498;display:inline"
+ id="path3459"
+ d="M 290.51788,135.15074 C 290.04239,158.42607 274.99285,176.8935 256.90377,176.39892 C 238.81469,175.90433 224.53605,156.63502 225.01154,133.35969 C 225.15088,126.53908 226.54172,120.13134 228.89383,114.49264 C 234.56828,100.88926 245.8374,91.761874 258.62565,92.111524 C 269.05643,92.396714 278.22021,98.924644 284.01871,108.86361 C 288.27598,116.16082 290.71918,125.29676 290.51788,135.15074 z"
+ sodipodi:nodetypes="csssssc" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:1.86495996;display:inline"
+ id="path3461"
+ d="M 275.53134,140.41284 C 275.80453,153.18925 269.35973,163.56084 261.13646,163.57844 C 252.91319,163.59603 246.02545,153.25297 245.75226,140.47655 C 245.47907,127.70013 251.92387,117.32854 260.14714,117.31095 C 268.37041,117.29336 275.25815,127.63642 275.53134,140.41284 z" />
+ <svg:path
+ style="fill:#000000;stroke:none;stroke-width:2.39814997;display:inline"
+ id="path3463"
+ d="M 327.65696,140.54751 C 326.62578,151.12389 330.60317,160.2832 336.54069,161.00539 C 342.47821,161.72759 348.12746,153.73919 349.15863,143.16281 C 350.1898,132.58643 346.21242,123.42712 340.2749,122.70493 C 334.33738,121.98273 328.68813,129.97113 327.65696,140.54751 z" />
+ <svg:path
+ style="fill:url(#linearGradient3473);stroke:none;stroke-width:3.1916101;display:inline"
+ id="path3465"
+ d="M 272.10899,133.10646 C 272.81015,140.23301 269.48888,146.30542 264.69072,146.66958 C 259.89256,147.03373 255.43448,141.55173 254.73332,134.42518 C 254.03216,127.29863 257.35343,121.22621 262.15159,120.86205 C 266.94975,120.4979 271.40783,125.9799 272.10899,133.10646 z" />
+ <svg:path
+ style="fill:url(#linearGradient3475);stroke:none;stroke-width:4.12025976;display:inline"
+ id="path3467"
+ d="M 332.68196,134.9396 C 332.06276,140.91144 334.45108,146.08315 338.01641,146.49093 C 341.58174,146.89871 344.97397,142.38815 345.59316,136.4163 C 346.21236,130.44446 343.82404,125.27275 340.25871,124.86497 C 336.69338,124.45719 333.30115,128.96776 332.68196,134.9396 z" />
+ <svg:path
+ style="fill:url(#linearGradient3479);stroke:#e68c3f;stroke-width:4.6875;display:inline"
+ d="M 338.85129,160.67175 C 329.91754,152.20925 307.83754,126.83925 266.40004,153.478 C 258.69754,158.4905 252.44754,158.94925 237.62379,165.29675 C 207.96629,177.483 222.14629,206.8705 253.55379,216.68175 C 267.00129,221.043 279.22379,237.37675 303.71504,235.9805 C 324.63254,234.75925 330.11379,221.138 342.96254,213.598 C 365.79879,200.70925 369.16879,183.2805 356.83754,174.03175 C 344.50504,164.783 339.68129,161.458 338.85129,160.67175 z"
+ id="path3477" />
+ <svg:path
+ style="fill:#000000;fill-opacity:1;stroke:#e68c3f;stroke-width:3.125;display:inline"
+ d="M 265.87475,171.87463 C 256.47364,171.95517 246.74554,182.59378 239.8435,184.34338 L 237.2185,184.31213 C 237.70731,184.34087 238.24749,184.42351 238.781,184.53088 C 238.61118,184.55056 238.44681,184.58717 238.281,184.59338 L 239.031,184.59338 C 252.06185,187.46276 277.76632,211.93713 304.81225,211.93713 C 333.15351,211.93713 349.8585,185.78088 354.2185,185.78088 L 353.56225,185.78088 L 353.4685,185.78088 C 350.74968,185.5136 339.47767,172.52248 332.656,172.34338 C 324.28962,172.12373 306.64075,181.90588 300.0935,181.90588 C 291.30779,181.90588 278.12151,171.77188 265.87475,171.87463 z"
+ id="path3451" />
+ <svg:path
+ style="fill:url(#radialGradient3455);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline"
+ d="M 276.99975,203.10139 C 277.42239,203.10139 278.46486,199.56398 281.21364,196.39448 C 284.01125,193.16867 284.81034,192.03244 287.78926,191.19338 C 290.76818,190.35432 295.86748,192.58702 299.94928,192.66092 C 304.03108,192.73482 312.96245,188.4849 315.34678,192.29017 C 318.60697,195.37826 318.37974,196.78578 319.4955,198.91129 C 320.61126,201.03681 322.73807,206.43234 322.73807,206.43234 C 322.73807,206.43234 314.52142,210.94477 301.27205,210.35513 C 287.85858,209.75819 276.99975,203.10139 276.99975,203.10139 z"
+ id="path3453"
+ sodipodi:nodetypes="cszzzzczc" />
+ </svg:g>
+</svg:svg>
diff --git a/data/images/tux/bigtux0.png b/data/images/tux/bigtux0.png
new file mode 100644
index 0000000..b6ed3d2
Binary files /dev/null and b/data/images/tux/bigtux0.png differ
diff --git a/data/images/tux/bigtux1.png b/data/images/tux/bigtux1.png
new file mode 100644
index 0000000..6760ec2
Binary files /dev/null and b/data/images/tux/bigtux1.png differ
diff --git a/data/images/tux/bigtux2.png b/data/images/tux/bigtux2.png
new file mode 100644
index 0000000..8d3c22d
Binary files /dev/null and b/data/images/tux/bigtux2.png differ
diff --git a/data/images/tux/bigtux3.png b/data/images/tux/bigtux3.png
new file mode 100644
index 0000000..1d80e65
Binary files /dev/null and b/data/images/tux/bigtux3.png differ
diff --git a/data/images/tux/bigtux4.png b/data/images/tux/bigtux4.png
new file mode 100644
index 0000000..e988b4a
Binary files /dev/null and b/data/images/tux/bigtux4.png differ
diff --git a/data/images/tux/bigtux5.png b/data/images/tux/bigtux5.png
new file mode 100644
index 0000000..adb12ff
Binary files /dev/null and b/data/images/tux/bigtux5.png differ
diff --git a/data/images/tux/bigtux6.png b/data/images/tux/bigtux6.png
new file mode 100644
index 0000000..0c22fc3
Binary files /dev/null and b/data/images/tux/bigtux6.png differ
diff --git a/data/images/tux/console.png b/data/images/tux/console.png
new file mode 100644
index 0000000..5215fe8
Binary files /dev/null and b/data/images/tux/console.png differ
diff --git a/data/images/tux/console_bash.png b/data/images/tux/console_bash.png
new file mode 100644
index 0000000..c44fcc2
Binary files /dev/null and b/data/images/tux/console_bash.png differ
diff --git a/data/images/tux/console_led.png b/data/images/tux/console_led.png
new file mode 100644
index 0000000..077d811
Binary files /dev/null and b/data/images/tux/console_led.png differ
diff --git a/data/images/tux/tux-console1.png b/data/images/tux/tux-console1.png
new file mode 100644
index 0000000..053e9a4
Binary files /dev/null and b/data/images/tux/tux-console1.png differ
diff --git a/data/images/tux/tux-console2.png b/data/images/tux/tux-console2.png
new file mode 100644
index 0000000..5ff8b8c
Binary files /dev/null and b/data/images/tux/tux-console2.png differ
diff --git a/data/images/tux/tux-console3.png b/data/images/tux/tux-console3.png
new file mode 100644
index 0000000..3c18213
Binary files /dev/null and b/data/images/tux/tux-console3.png differ
diff --git a/data/images/tux/tux-console4.png b/data/images/tux/tux-console4.png
new file mode 100644
index 0000000..2ec663a
Binary files /dev/null and b/data/images/tux/tux-console4.png differ
diff --git a/data/images/tux/tux-drat.png b/data/images/tux/tux-drat.png
new file mode 100644
index 0000000..64753d5
Binary files /dev/null and b/data/images/tux/tux-drat.png differ
diff --git a/data/images/tux/tux-egypt1.png b/data/images/tux/tux-egypt1.png
new file mode 100644
index 0000000..15c7e8a
Binary files /dev/null and b/data/images/tux/tux-egypt1.png differ
diff --git a/data/images/tux/tux-egypt2.png b/data/images/tux/tux-egypt2.png
new file mode 100644
index 0000000..8d85109
Binary files /dev/null and b/data/images/tux/tux-egypt2.png differ
diff --git a/data/images/tux/tux-egypt3.png b/data/images/tux/tux-egypt3.png
new file mode 100644
index 0000000..7bfa7dc
Binary files /dev/null and b/data/images/tux/tux-egypt3.png differ
diff --git a/data/images/tux/tux-egypt4.png b/data/images/tux/tux-egypt4.png
new file mode 100644
index 0000000..07824c6
Binary files /dev/null and b/data/images/tux/tux-egypt4.png differ
diff --git a/data/images/tux/tux-fist1.png b/data/images/tux/tux-fist1.png
new file mode 100644
index 0000000..6f957ed
Binary files /dev/null and b/data/images/tux/tux-fist1.png differ
diff --git a/data/images/tux/tux-fist2.png b/data/images/tux/tux-fist2.png
new file mode 100644
index 0000000..454e456
Binary files /dev/null and b/data/images/tux/tux-fist2.png differ
diff --git a/data/images/tux/tux-kiss1.png b/data/images/tux/tux-kiss1.png
new file mode 100644
index 0000000..6c6de07
Binary files /dev/null and b/data/images/tux/tux-kiss1.png differ
diff --git a/data/images/tux/tux-kiss2.png b/data/images/tux/tux-kiss2.png
new file mode 100644
index 0000000..088d7b3
Binary files /dev/null and b/data/images/tux/tux-kiss2.png differ
diff --git a/data/images/tux/tux-relax1.png b/data/images/tux/tux-relax1.png
new file mode 100644
index 0000000..11e0a3d
Binary files /dev/null and b/data/images/tux/tux-relax1.png differ
diff --git a/data/images/tux/tux-relax2.png b/data/images/tux/tux-relax2.png
new file mode 100644
index 0000000..9a9287a
Binary files /dev/null and b/data/images/tux/tux-relax2.png differ
diff --git a/data/images/tux/tux-sit.png b/data/images/tux/tux-sit.png
new file mode 100644
index 0000000..5b964c1
Binary files /dev/null and b/data/images/tux/tux-sit.png differ
diff --git a/data/images/tux/tux-yay1.png b/data/images/tux/tux-yay1.png
new file mode 100644
index 0000000..d388b22
Binary files /dev/null and b/data/images/tux/tux-yay1.png differ
diff --git a/data/images/tux/tux-yay2.png b/data/images/tux/tux-yay2.png
new file mode 100644
index 0000000..d8af709
Binary files /dev/null and b/data/images/tux/tux-yay2.png differ
diff --git a/data/images/tux/tux-yes1.png b/data/images/tux/tux-yes1.png
new file mode 100644
index 0000000..103870e
Binary files /dev/null and b/data/images/tux/tux-yes1.png differ
diff --git a/data/images/tux/tux-yes2.png b/data/images/tux/tux-yes2.png
new file mode 100644
index 0000000..1070ef9
Binary files /dev/null and b/data/images/tux/tux-yes2.png differ
diff --git a/data/images/tux/tux-yipe.png b/data/images/tux/tux-yipe.png
new file mode 100644
index 0000000..a8ec0cf
Binary files /dev/null and b/data/images/tux/tux-yipe.png differ
diff --git a/data/menus/Makefile.am b/data/menus/Makefile.am
new file mode 100644
index 0000000..11faa0d
--- /dev/null
+++ b/data/menus/Makefile.am
@@ -0,0 +1,16 @@
+## Makefile.am for tuxmath - data/menus:
+## Process with Automake to create Makefile.in
+
+menusdir = $(pkgdatadir)/menus
+
+dist_menus_DATA = main_menu.xml
+
+EXTRA_DIST = menu_strings \
+ update-po.sh
+
+
+all: menu_strings
+
+# Create a 'source' file holding all the descriptions for the missions.
+menu_strings: $(dist_menus_DATA)
+ cd $(srcdir); ./update-po.sh
\ No newline at end of file
diff --git a/data/menus/main_menu.xml b/data/menus/main_menu.xml
new file mode 100644
index 0000000..2188d84
--- /dev/null
+++ b/data/menus/main_menu.xml
@@ -0,0 +1,54 @@
+<menu title="Main Menu" entries="7">
+ <menu title="Play Alone" sprite="alone" entries="5">
+ <item title="Math Command Training Academy" sprite="lesson" run="RUN_ACADEMY">
+ <item title="Math Command Fleet Missions" sprite="fleet" run="RUN_CAMPAIGN">
+ <menu title="Play Arcade Game" sprite="comet" entries="7">
+ <item title="Space Cadet" sprite="tux_helmet_yellow" run="RUN_ARCADE" param="0">
+ <item title="Scout" sprite="tux_helmet_green" run="RUN_ARCADE" param="1">
+ <item title="Ranger" sprite="tux_helmet_blue" run="RUN_ARCADE" param="2">
+ <item title="Ace" sprite="tux_helmet_red" run="RUN_ARCADE" param="3">
+ <item title="Commando" sprite="tux_helmet_black" run="RUN_ARCADE" param="4">
+ <item title="Hall Of Fame" sprite="trophy" run="RUN_HALL_OF_FAME">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <item title="Play Custom Game" sprite="tux_config_brown" run="RUN_CUSTOM">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <menu title="Network Game" sprite="lan" entries="3">
+ <item title="Run Server" sprite="lan" run="RUN_LAN_HOST">
+ <item title="Join Game" sprite="lan" run="RUN_LAN_JOIN">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <menu title="Play With Friends" sprite="friends" entries="3">
+ <menu title="Score Sweep" sprite="nums" entries="6">
+ <item title="Space Cadet" sprite="tux_helmet_yellow" run="RUN_SCORE_SWEEP" param="0">
+ <item title="Scout" sprite="tux_helmet_green" run="RUN_SCORE_SWEEP" param="1">
+ <item title="Ranger" sprite="tux_helmet_blue" run="RUN_SCORE_SWEEP" param="2">
+ <item title="Ace" sprite="tux_helmet_red" run="RUN_SCORE_SWEEP" param="3">
+ <item title="Commando" sprite="tux_helmet_black" run="RUN_SCORE_SWEEP" param="4">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <menu title="Elimination" sprite="exclamation" entries="6">
+ <item title="Space Cadet" sprite="tux_helmet_yellow" run="RUN_ELIMINATION" param="0">
+ <item title="Scout" sprite="tux_helmet_green" run="RUN_ELIMINATION" param="1">
+ <item title="Ranger" sprite="tux_helmet_blue" run="RUN_ELIMINATION" param="2">
+ <item title="Ace" sprite="tux_helmet_red" run="RUN_ELIMINATION" param="3">
+ <item title="Commando" sprite="tux_helmet_black" run="RUN_ELIMINATION" param="4">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <menu title="Factoroids!" sprite="factoroids" entries="3">
+ <item title="Factors" sprite="factors" run="RUN_FACTORS">
+ <item title="Fractions" sprite="fractions" run="RUN_FRACTIONS">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <item title="Help" sprite="help" run="RUN_HELP">
+ <menu title="More Options" sprite="tux_config" entries="4">
+ <item title="Demo" sprite="comet" run="RUN_DEMO">
+ <item title="Project Info" sprite="help" run="RUN_INFO">
+ <item title="Credits" sprite="credits" run="RUN_CREDITS">
+ <item title="Main Menu" sprite="main" run="RUN_MAIN_MENU">
+ </menu>
+ <item title="Quit" sprite="quit" run="RUN_QUIT">
+</menu>
diff --git a/data/menus/update-po.sh b/data/menus/update-po.sh
new file mode 100755
index 0000000..5569d7c
--- /dev/null
+++ b/data/menus/update-po.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Create a 'source' file holding all the strings from the menus.
+# That file (menu_strings) is listed in po/POTFILES.in so the strings will go into
+# tuxmath.pot and subsequently into the individual po files for translation.
+# NOTE this script needs to be kept in the same dir as the menu files
+
+rm -f ./menu_strings
+sed -n 's/^.*title=\("[^"]*"\).*$/_(\1)/p' main_menu.xml | sort | uniq > menu_strings
diff --git a/data/missions/Makefile.am b/data/missions/Makefile.am
new file mode 100644
index 0000000..89abec7
--- /dev/null
+++ b/data/missions/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions:
+## Process with Automake to create Makefile.in
+
+SUBDIRS = arcade campaign lessons multiplay
+
+missionsdir = $(pkgdatadir)/missions
+
+dist_missions_DATA = demo options
+
+
diff --git a/data/missions/arcade/Makefile.am b/data/missions/arcade/Makefile.am
new file mode 100644
index 0000000..ea1c88e
--- /dev/null
+++ b/data/missions/arcade/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions/arcade:
+## Process with Automake to create Makefile.in
+
+arcadedir = $(pkgdatadir)/missions/arcade
+
+dist_arcade_DATA = ace \
+ commando \
+ ranger \
+ scout \
+ space_cadet
diff --git a/data/missions/arcade/ace b/data/missions/arcade/ace
new file mode 100644
index 0000000..91c8bc9
--- /dev/null
+++ b/data/missions/arcade/ace
@@ -0,0 +1,64 @@
+# arcade_ace lesson file
+
+play_through_list = 0
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 1
+min_augend = -20
+max_augend = 20
+min_addend = -20
+max_addend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = -20
+max_subtrahend = 20
+min_multiplier = -20
+max_multiplier = 20
+min_multiplicand = -20
+max_multiplicand = 20
+min_divisor = -20
+max_divisor = 20
+min_quotient = -20
+max_quotient = 20
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 250
+vary_list_length = 0
+max_answer = 400
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.25
+slow_after_wrong = 0
+max_questions = 25000
+bonus_comet_interval = 20
+allow_pause = 0
+bonus_speed_ratio = 2.0
+keep_score = 1
+
diff --git a/data/missions/arcade/commando b/data/missions/arcade/commando
new file mode 100644
index 0000000..398e13c
--- /dev/null
+++ b/data/missions/arcade/commando
@@ -0,0 +1,63 @@
+# arcade commando lesson file
+
+play_through_list = 0
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 1
+min_augend = -20
+max_augend = 20
+min_addend = -20
+max_addend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+min_multiplier = -20
+max_multiplier = 20
+min_multiplicand = -10
+max_multiplicand = 10
+min_divisor = -20
+max_divisor = 20
+min_quotient = -10
+max_quotient = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+randomize = 1
+comprehensive = 0
+min_formula_nums = 3
+max_formula_nums = 4
+avg_list_length = 250
+vary_list_length = 0
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 0.25
+max_speed = 40.00
+speedup_factor = 1.125
+slow_after_wrong = 1
+max_questions = 25000
+bonus_comet_interval = 20
+allow_pause = 0
+bonus_speed_ratio = 2.0
+keep_score = 1
+
diff --git a/data/missions/arcade/ranger b/data/missions/arcade/ranger
new file mode 100644
index 0000000..ad70e09
--- /dev/null
+++ b/data/missions/arcade/ranger
@@ -0,0 +1,64 @@
+# arcade_ranger lesson file
+
+play_through_list = 0
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 0
+min_augend = 0
+max_augend = 20
+min_addend = 0
+max_addend = 20
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+min_multiplier = 0
+max_multiplier = 20
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+max_answer = 100
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 250
+vary_list_length = 0
+
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.2
+slow_after_wrong = 0
+max_questions = 25000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.8
+keep_score = 1
diff --git a/data/missions/arcade/scout b/data/missions/arcade/scout
new file mode 100644
index 0000000..c1da932
--- /dev/null
+++ b/data/missions/arcade/scout
@@ -0,0 +1,51 @@
+# arcade_scout lesson file
+
+play_through_list = 0
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 0
+max_formula_nums = 2
+min_formula_nums = 2
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 250
+vary_list_length = 0
+max_answer = 20
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.15
+slow_after_wrong = 0
+max_questions = 5000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.5
+keep_score = 1
diff --git a/data/missions/arcade/space_cadet b/data/missions/arcade/space_cadet
new file mode 100644
index 0000000..9f7f297
--- /dev/null
+++ b/data/missions/arcade/space_cadet
@@ -0,0 +1,42 @@
+# arcade_space_ cadet lesson file
+
+play_through_list = 0
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 121
+vary_list_length = 0
+max_answer = 10
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.1
+slow_after_wrong = 0
+max_questions = 5000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.2
+keep_score = 1
diff --git a/data/missions/campaign/Makefile.am b/data/missions/campaign/Makefile.am
new file mode 100644
index 0000000..ae51f09
--- /dev/null
+++ b/data/missions/campaign/Makefile.am
@@ -0,0 +1,8 @@
+## Makefile.am for tuxmath - data/missions/campaign:
+## Process with Automake to create Makefile.in
+
+SUBDIRS = ace cadet commando ranger scout
+
+campaigndir = $(pkgdatadir)/missions/campaign
+
+dist_campaign_DATA = campaign
diff --git a/data/missions/campaign/ace/Makefile.am b/data/missions/campaign/ace/Makefile.am
new file mode 100644
index 0000000..61b744d
--- /dev/null
+++ b/data/missions/campaign/ace/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions/campaign/ace:
+## Process with Automake to create Makefile.in
+
+campaignacedir = $(pkgdatadir)/missions/campaign/ace
+
+dist_campaignace_DATA = ace \
+ bonus \
+ round1 \
+ round2 \
+ round3
diff --git a/data/missions/campaign/ace/ace b/data/missions/campaign/ace/ace
new file mode 100755
index 0000000..c4771fa
--- /dev/null
+++ b/data/missions/campaign/ace/ace
@@ -0,0 +1,23 @@
+# campaign ace stage lesson file
+
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 1
+max_formula_nums = 2
+min_formula_nums = 2
+comprehensive = 1
+question_copies = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+max_answer = 200
+starting_comets = 3
+extra_comets_per_wave = 3
+max_comets = 12
+speed = 1.2
+max_speed = 10
+speedup_factor = 1.1
+bonus_comet_interval = 20
+vary_list_length = 0
+
diff --git a/data/missions/campaign/ace/bonus b/data/missions/campaign/ace/bonus
new file mode 100755
index 0000000..baa79e8
--- /dev/null
+++ b/data/missions/campaign/ace/bonus
@@ -0,0 +1,25 @@
+#ace bonus round
+
+subtraction_allowed = 1
+addition_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+min_formula_nums = 2
+max_formula_nums = 5
+min_addend = -20
+max_addend = 20
+min_augend = -20
+max_augend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = -20
+max_subtrahend = 20
+min_multiplier = -10
+max_multiplier = 10
+min_multiplicand = -10
+max_multiplicand = 10
+min_divisor = -10
+max_divisor = 10
+min_quotient = -10
+max_quotient = 10
+avg_list_length = 20
diff --git a/data/missions/campaign/ace/round1 b/data/missions/campaign/ace/round1
new file mode 100644
index 0000000..6c5f8c3
--- /dev/null
+++ b/data/missions/campaign/ace/round1
@@ -0,0 +1,11 @@
+#ace round 1
+
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+allow_negatives = 0
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+avg_list_length = 40
diff --git a/data/missions/campaign/ace/round2 b/data/missions/campaign/ace/round2
new file mode 100644
index 0000000..ab37a0a
--- /dev/null
+++ b/data/missions/campaign/ace/round2
@@ -0,0 +1,15 @@
+#ace round 2
+
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+allow_negatives = 1
+min_divisor = -12
+max_divisor = 12
+min_quotient = -12
+max_quotient = 12
+min_multiplier = -10
+max_multiplier = 10
+min_multiplicand = -10
+max_multiplicand = 10
+avg_list_length = 70
diff --git a/data/missions/campaign/ace/round3 b/data/missions/campaign/ace/round3
new file mode 100644
index 0000000..3f333ef
--- /dev/null
+++ b/data/missions/campaign/ace/round3
@@ -0,0 +1,23 @@
+#ace round 3
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+allow_negatives = 1
+min_divisor = -12
+max_divisor = 12
+min_quotient = -12
+max_quotient = 12
+min_multiplier = -12
+max_multiplier = 12
+min_multiplicand = -12
+max_multiplicand = 12
+min_addend = -10
+max_addend = 10
+min_augend = -10
+max_augend = 10
+min_minuend = -10
+max_minuend = 10
+min_subtrahend = -10
+max_subtrahend = 10
+avg_list_length = 100
\ No newline at end of file
diff --git a/data/missions/campaign/cadet/Makefile.am b/data/missions/campaign/cadet/Makefile.am
new file mode 100644
index 0000000..1461445
--- /dev/null
+++ b/data/missions/campaign/cadet/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions/campaign/ace:
+## Process with Automake to create Makefile.in
+
+campaigncadetdir = $(pkgdatadir)/missions/campaign/cadet
+
+dist_campaigncadet_DATA = cadet \
+ bonus \
+ round1 \
+ round2 \
+ round3
diff --git a/data/missions/campaign/cadet/bonus b/data/missions/campaign/cadet/bonus
new file mode 100755
index 0000000..8a24de6
--- /dev/null
+++ b/data/missions/campaign/cadet/bonus
@@ -0,0 +1,10 @@
+#cadet bonus round
+
+typing_practice_allowed = 0
+addition_allowed = 0
+multiplication_allowed = 1
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+avg_list_length = 0
diff --git a/data/missions/campaign/cadet/cadet b/data/missions/campaign/cadet/cadet
new file mode 100755
index 0000000..0c00923
--- /dev/null
+++ b/data/missions/campaign/cadet/cadet
@@ -0,0 +1,26 @@
+# campaign cadet stage lesson file
+
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+typing_practice_allowed = 1
+allow_negatives = 0
+max_formula_nums = 2
+min_formula_nums = 2
+comprehensive = 1
+question_copies = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 50
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 6
+speed = 1.00
+max_speed = 10.00
+speedup_factor = 1.1
+bonus_comet_interval = 10
+vary_list_length = 0
+
diff --git a/data/missions/campaign/cadet/round1 b/data/missions/campaign/cadet/round1
new file mode 100755
index 0000000..483af1a
--- /dev/null
+++ b/data/missions/campaign/cadet/round1
@@ -0,0 +1,7 @@
+#cadet round 1
+
+typing_practice_allowed = 1
+addition_allowed = 0
+min_typing_num = 0
+max_typing_num = 20
+avg_list_length = 10
diff --git a/data/missions/campaign/cadet/round2 b/data/missions/campaign/cadet/round2
new file mode 100755
index 0000000..b7d8a67
--- /dev/null
+++ b/data/missions/campaign/cadet/round2
@@ -0,0 +1,9 @@
+#cadet round 2
+
+typing_practice_allowed = 0
+addition_allowed = 1
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+avg_list_length = 30
diff --git a/data/missions/campaign/cadet/round3 b/data/missions/campaign/cadet/round3
new file mode 100755
index 0000000..b07a9b2
--- /dev/null
+++ b/data/missions/campaign/cadet/round3
@@ -0,0 +1,8 @@
+#cadet round 3
+
+typing_practice_allowed = 0
+min_augend = 0
+max_augend = 20
+min_addend = 0
+max_addend = 20
+avg_list_length = 50
diff --git a/data/missions/campaign/campaign b/data/missions/campaign/campaign
new file mode 100755
index 0000000..330a463
--- /dev/null
+++ b/data/missions/campaign/campaign
@@ -0,0 +1,17 @@
+# campaign master lesson file
+
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 0
+use_bkgd = 1
+demo_mode = 0
+repeat_wrongs = 1
+slow_after_wrong = 0
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+allow_pause = 1
+bonus_speed_ratio = 1.8
+max_speed = 10.00
+keep_score = 0
+
diff --git a/data/missions/campaign/commando/Makefile.am b/data/missions/campaign/commando/Makefile.am
new file mode 100644
index 0000000..d4b113c
--- /dev/null
+++ b/data/missions/campaign/commando/Makefile.am
@@ -0,0 +1,9 @@
+## Makefile.am for tuxmath - data/missions/campaign/commando:
+## Process with Automake to create Makefile.in
+
+campaigncommandodir = $(pkgdatadir)/missions/campaign/commando
+
+dist_campaigncommando_DATA = commando \
+ round1 \
+ round2 \
+ round3
diff --git a/data/missions/campaign/commando/commando b/data/missions/campaign/commando/commando
new file mode 100755
index 0000000..e99b126
--- /dev/null
+++ b/data/missions/campaign/commando/commando
@@ -0,0 +1,26 @@
+# campaign commando stage lesson file
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 1
+max_formula_nums = 5
+min_formula_nums = 2
+comprehensive = 0
+question_copies = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+max_answer = 250
+starting_comets = 3
+extra_comets_per_wave = 3
+max_comets = 12
+speed = 1.1
+max_speed = 10.00
+speedup_factor = 1.05
+bonus_comet_interval = 20
+vary_list_length = 0
+
diff --git a/data/missions/campaign/commando/round1 b/data/missions/campaign/commando/round1
new file mode 100644
index 0000000..8658498
--- /dev/null
+++ b/data/missions/campaign/commando/round1
@@ -0,0 +1,21 @@
+#commando round 1
+
+allow_negatives = 1
+max_formula_nums = 2
+min_multiplier = -20
+max_multiplier = 20
+min_multiplicand = -20
+max_multiplicand = 20
+min_divisor = -20
+max_divisor = 20
+min_quotient = -20
+max_quotient = 20
+min_addend = -20
+max_addend = 20
+min_augend = -20
+max_augend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = -20
+max_subtrahend = 20
+avg_list_length = 40
diff --git a/data/missions/campaign/commando/round2 b/data/missions/campaign/commando/round2
new file mode 100644
index 0000000..c2188d0
--- /dev/null
+++ b/data/missions/campaign/commando/round2
@@ -0,0 +1,21 @@
+#commando round 2
+
+max_formula_nums = 3
+allow_negatives = 1
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+min_addend = 0
+max_addend = 10
+min_augend = 0
+max_augend = 10
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+avg_list_length = 70
diff --git a/data/missions/campaign/commando/round3 b/data/missions/campaign/commando/round3
new file mode 100644
index 0000000..14dd7dd
--- /dev/null
+++ b/data/missions/campaign/commando/round3
@@ -0,0 +1,22 @@
+#commando round 3
+
+max_formula_nums = 3
+allow_negatives = 1
+typing_practice_allowed = 1
+min_multiplier = -12
+max_multiplier = 12
+min_multiplicand = -12
+max_multiplicand = 12
+min_divisor = -12
+max_divisor = 12
+min_quotient = -12
+max_quotient = 12
+min_addend = -20
+max_addend = 20
+min_augend = -20
+max_augend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = -20
+max_subtrahend = 20
+avg_list_length = 100
diff --git a/data/missions/campaign/ranger/Makefile.am b/data/missions/campaign/ranger/Makefile.am
new file mode 100644
index 0000000..bf281ec
--- /dev/null
+++ b/data/missions/campaign/ranger/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions/campaign/ranger:
+## Process with Automake to create Makefile.in
+
+campaignrangerdir = $(pkgdatadir)/missions/campaign/ranger
+
+dist_campaignranger_DATA = ranger \
+ bonus \
+ round1 \
+ round2 \
+ round3
diff --git a/data/missions/campaign/ranger/bonus b/data/missions/campaign/ranger/bonus
new file mode 100755
index 0000000..159622d
--- /dev/null
+++ b/data/missions/campaign/ranger/bonus
@@ -0,0 +1,25 @@
+#ranger bonus round
+
+subtraction_allowed = 1
+addition_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+min_formula_nums = 3
+max_formula_nums = 4
+min_addend = 0
+max_addend = 10
+min_augend = 0
+max_augend = 10
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+avg_list_length = 20
diff --git a/data/missions/campaign/ranger/ranger b/data/missions/campaign/ranger/ranger
new file mode 100755
index 0000000..650d890
--- /dev/null
+++ b/data/missions/campaign/ranger/ranger
@@ -0,0 +1,26 @@
+# campaign ranger stage lesson file
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 0
+typing_practice_allowed = 0
+allow_negatives = 1
+max_formula_nums = 2
+min_formula_nums = 2
+comprehensive = 1
+question_copies = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+max_answer = 150
+starting_comets = 3
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.0
+max_speed = 10.00
+speedup_factor = 1.2
+bonus_comet_interval = 20
+vary_list_length = 0
+
diff --git a/data/missions/campaign/ranger/round1 b/data/missions/campaign/ranger/round1
new file mode 100644
index 0000000..10cee76
--- /dev/null
+++ b/data/missions/campaign/ranger/round1
@@ -0,0 +1,10 @@
+#ranger round 1
+
+addition_allowed = 0
+subtraction_allowed = 0
+allow_negatives = 0
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+avg_list_length = 40
diff --git a/data/missions/campaign/ranger/round2 b/data/missions/campaign/ranger/round2
new file mode 100644
index 0000000..7880c70
--- /dev/null
+++ b/data/missions/campaign/ranger/round2
@@ -0,0 +1,14 @@
+#ranger round 2
+
+addition_allowed = 1
+subtraction_allowed = 0
+allow_negatives = 0
+min_multiplier = 0
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+min_addend = 0
+max_addend = 10
+min_augend = 0
+max_augend = 10
+avg_list_length = 70
diff --git a/data/missions/campaign/ranger/round3 b/data/missions/campaign/ranger/round3
new file mode 100644
index 0000000..d661f23
--- /dev/null
+++ b/data/missions/campaign/ranger/round3
@@ -0,0 +1,18 @@
+#ranger round 3
+
+addition_allowed = 1
+subtraction_allowed = 1
+allow_negatives = 1
+min_multiplier = -12
+max_multiplier = 12
+min_multiplicand = -12
+max_multiplicand = 12
+min_addend = -20
+max_addend = 20
+min_augend = -20
+max_augend = 20
+min_minuend = -10
+max_minuend = 10
+min_subtrahend = -10
+max_subtrahend = 10
+avg_list_length = 100
\ No newline at end of file
diff --git a/data/missions/campaign/scout/Makefile.am b/data/missions/campaign/scout/Makefile.am
new file mode 100644
index 0000000..70e9b84
--- /dev/null
+++ b/data/missions/campaign/scout/Makefile.am
@@ -0,0 +1,10 @@
+## Makefile.am for tuxmath - data/missions/campaign/scout:
+## Process with Automake to create Makefile.in
+
+campaignscoutdir = $(pkgdatadir)/missions/campaign/scout
+
+dist_campaignscout_DATA = scout \
+ bonus \
+ round1 \
+ round2 \
+ round3
diff --git a/data/missions/campaign/scout/bonus b/data/missions/campaign/scout/bonus
new file mode 100755
index 0000000..adafc57
--- /dev/null
+++ b/data/missions/campaign/scout/bonus
@@ -0,0 +1,16 @@
+#scout bonus round
+
+subtraction_allowed = 0
+addition_allowed = 1
+multiplication_allowed = 1
+min_formula_nums = 2
+max_formula_nums = 3
+min_addend = 0
+max_addend = 10
+min_augend = 0
+max_augend = 10
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+avg_list_length = 20
diff --git a/data/missions/campaign/scout/round1 b/data/missions/campaign/scout/round1
new file mode 100644
index 0000000..8c415cf
--- /dev/null
+++ b/data/missions/campaign/scout/round1
@@ -0,0 +1,8 @@
+#scout round 1
+
+addition_allowed = 0
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+avg_list_length = 40
\ No newline at end of file
diff --git a/data/missions/campaign/scout/round2 b/data/missions/campaign/scout/round2
new file mode 100644
index 0000000..ec6480e
--- /dev/null
+++ b/data/missions/campaign/scout/round2
@@ -0,0 +1,8 @@
+#scout round 2
+
+addition_allowed = 0
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+avg_list_length = 70
\ No newline at end of file
diff --git a/data/missions/campaign/scout/round3 b/data/missions/campaign/scout/round3
new file mode 100644
index 0000000..81413d9
--- /dev/null
+++ b/data/missions/campaign/scout/round3
@@ -0,0 +1,12 @@
+#scout round 3
+
+addition_allowed = 1
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+min_addend = 0
+max_addend = 10
+min_augend = 0
+max_augend = 10
+avg_list_length = 100
\ No newline at end of file
diff --git a/data/missions/campaign/scout/scout b/data/missions/campaign/scout/scout
new file mode 100755
index 0000000..46c17e8
--- /dev/null
+++ b/data/missions/campaign/scout/scout
@@ -0,0 +1,26 @@
+# campaign scout stage lesson file
+
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+typing_practice_allowed = 0
+allow_negatives = 0
+max_formula_nums = 2
+min_formula_nums = 2
+comprehensive = 1
+question_copies = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 100
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 8
+max_speed = 10
+speed = 1.00
+speedup_factor = 1.1
+bonus_comet_interval = 15
+vary_list_length = 0
+
diff --git a/data/missions/demo b/data/missions/demo
new file mode 100644
index 0000000..09dcf52
--- /dev/null
+++ b/data/missions/demo
@@ -0,0 +1,504 @@
+############################################################
+# #
+# Tuxmath configuration file for the "demo" mode #
+# selected on the "More options" menu item. #
+# #
+############################################################
+############################################################
+# #
+# Tuxmath Configuration File #
+# #
+# The behavior of Tuxmath can be controlled to a great #
+# extent by editing this file with any and saving it in #
+# the default options location ($HOME/.tuxmath/options). #
+# The file consists of 'NAME = VALUE' pairs, one pair per #
+# line. Each option is one of the following types: #
+# #
+# boolean: 1 (synonyms 'true', 'T', 'yes', 'Y', 'on') #
+# or #
+# 0 (synonyms 'false, 'F', 'no', 'N', 'off') #
+# integer (i.e. non-fractional numbers) #
+# float (i.e decimal fractions) #
+# #
+# Lines beginning with '#' or ';' are ignored as comments. #
+# The synonyms for boolean '0' and '1' are accepted as #
+# input, but always written as '0' or '1' when Tuxmath #
+# writes a config file to disk. #
+# The file is organized with the more important options #
+# first. #
+############################################################
+
+############################################################
+# #
+# Game Mode #
+# #
+# Parameter: play_through_list (Boolean) #
+# Default: 1 #
+# #
+# Tuxmath generates a list of math questions based on #
+# parameters set below. By default, (play_through_list = #
+# 1) the questions are asked in a random order. #
+# Correctly answered questions are removed from the list. #
+# If the player fails to correctly answer a question #
+# before it hits a city, the question will be reinserted #
+# into the list in a random location. #
+# The player wins if all questions are answered correctly #
+# before the cities are destroyed. #
+# #
+# Alternatively, Tuxmath can be played in 'Arcade Mode' #
+# by setting play_through_list = 0 (i.e. 'false'). If this #
+# is done, all questions will be randomly reinserted into #
+# the list whether or not they are answered correctly, and #
+# the game continues as long as there is a surviving city. #
+############################################################
+
+play_through_list = 0
+
+############################################################
+# #
+# Speed and Number of Comets #
+# #
+# Parameter: allow_speedup (boolean) #
+# Default: 1 #
+# Parameter: use_feedback (boolean) #
+# Default: 0 #
+# #
+# By default, the comets become faster and more numerous #
+# with each succeeding. The increase can be prevented #
+# by setting 'allow_speedup' to 0. #
+# #
+# If 'allow_speedup' is enabled, it is also possible to #
+# dynamically adjust the speed to the player's performance #
+# by setting 'use_feedback' to 1. This feature attempts #
+# to speed the game up if it is too easy for the player, #
+# and to slow it down if the player is having trouble. #
+# #
+# Many additional parameters under 'Advanced Options' can #
+# be used to fine-tune these behaviors. #
+############################################################
+
+allow_speedup = 1
+use_feedback = 0
+
+############################################################
+# #
+# Selecting Math Operations #
+# #
+# Parameter: addition_allowed (boolean) #
+# Default: 1 #
+# Parameter: subtraction_allowed (boolean) #
+# Default: 1 #
+# Parameter: multiplication_allowed (boolean) #
+# Default: 1 #
+# Parameter: division_allowed (boolean) #
+# Default: 1 #
+# #
+# These options enable questions for each of the four math #
+# operations. All are 1 (yes) by default. #
+############################################################
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+
+############################################################
+# #
+# Typing Practice #
+# #
+# Parameter: typing_practice_allowed (boolean) #
+# Default: 0 #
+# #
+# This option simply displays numbers for the youngest #
+# players to type in to learn the keyboard. #
+############################################################
+
+typing_practice_allowed = 0
+
+############################################################
+# #
+# Negative Number Support #
+# #
+# Parameter: allow_negatives (boolean) #
+# Default: 0 #
+# #
+# 'allow_negatives' allows or disallows use of negative #
+# numbers as both operands and answers. Default is 0 #
+# (no), which disallows questions like: #
+# 2 - 4 = ? #
+# Note: this option must be enabled in order to set the #
+# operand ranges to include negatives. If it is changed #
+# from 1 (yes) to 0 (no), any negative operand limits will #
+# be reset to 0. #
+############################################################
+
+allow_negatives = 0
+
+############################################################
+# #
+# Minimum and Maximum Values for Operand Ranges #
+# #
+# Parameters: (multiple - all integer type) #
+# #
+# Operand limits can be set to any integer up to the #
+# value of 'max_answer'. Tuxmath will generate questions #
+# for every value in the specified range. The maximum must #
+# be greater than or equal to the corresponding minimum #
+# for any questions to be generated for that operation. #
+# Defaults are 0 for minima and 12 for maxima. #
+# #
+# Note: 'allow_negatives' must be set to 1 for negative #
+# values to be accepted (see 'Advanced Options'). #
+############################################################
+
+# Addition operands:
+# augend + addend = sum
+
+min_augend = 0
+max_augend = 20
+min_addend = 0
+max_addend = 20
+
+# Subtraction operands:
+# minuend - subtrahend = difference
+
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+
+# Multiplication operands:
+# multiplier * multiplicand = product
+
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+
+# Division operands:
+# dividend/divisor = quotient
+
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+
+# Typing practice:
+
+min_typing_num = 0
+max_typing_num = 10
+
+
+############################################################
+# #
+# General Game Options #
+# #
+# Parameter: use_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_music (boolean) #
+# Default: 1 #
+# Parameter: fullscreen (boolean) #
+# Default: 1 #
+# Parameter: demo_mode (boolean) #
+# Default: 0 #
+# Parameter: use_keypad (boolean) #
+# Default: 0 #
+# Parameter: allow_pause (boolean) #
+# Default: 0 #
+# Parameter: use_igloos (boolean) #
+# Default: 1 #
+# Parameter: save_game_summary (boolean) #
+# Default: 1 #
+# #
+# These parameters control various aspects of Tuxmath's #
+# not directly related to the math question to be asked. #
+############################################################
+
+# Use game sounds and background music if possible:
+#use_sound = 1
+#menu_sound = 1
+#menu_music = 1
+
+# Use fullscreen at 640x480 resolution instead of
+# 640x480 window. Change to 0 if SDL has trouble with
+# fullscreen on your system:
+#fullscreen = 1
+
+# Display jpg images for background:
+use_bkgd = 1
+
+# Run Tuxmath as demo (i.e. without user input):
+demo_mode = 1
+
+# Display onscreen numeric keypad - allows mouse-only
+# gameplay or use with touchscreens:
+use_keypad = 0
+
+# Allow 'Pause' feature - should disable this
+# when competing for high scores!
+allow_pause = 1
+
+# Use newer graphics where Tux defends igloo-
+# dwelling penguins (for those who find the older
+# images of exploding cities to be distasteful)
+use_igloos = 1
+
+# By default, Tuxmath saves summaries of the last
+# ten games in the user's .tuxmath directory. Set
+# this parameter to '0' to turn off.
+save_summary = 1
+
+
+
+############################################################
+# #
+# Advanced Options #
+# #
+# The remaining settings further customize Tuxmath's #
+# behavior. Most users will probably not change them. #
+############################################################
+
+
+############################################################
+# #
+# Advanced Math Question List Options #
+# #
+# Parameter: question_copies (integer) #
+# Default: 1 #
+# Parameter: repeat_wrongs (boolean) #
+# Default: 1 #
+# Parameter: copies_repeated_wrongs (integer) #
+# Default: 1 #
+# #
+# These settings offer further control over the question #
+# list and are generally only useful if 'play_through_list'#
+# is enabled (as it is by default). #
+# #
+# 'question_copies' is the number of times each question #
+# is put into the initial list. It can be 1 to 10. #
+# #
+# 'repeat_wrongs' determines whether questions the player #
+# failed to answer correctly will be asked again. #
+# #
+# 'copies_repeated_wrongs' gives the number of times a #
+# missed question will reappear. This can be set anywhere #
+# from 1 to 10. #
+# #
+# The defaults for these values result in a 'mission' #
+# for Tux that is accomplished by answering all #
+# questions correctly with at least one surviving city. #
+############################################################
+
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+
+############################################################
+# #
+# Math Question Formats #
+# #
+# The 'format_<op>_answer_<place> options control #
+# generation of questions with the answer in different #
+# places in the equation. i.e.: #
+# #
+# format_add_answer_last: 2 + 2 = ? #
+# format_add_answer_first: ? + 2 = 4 #
+# format_add_answer_middle: 2 + ? = 4 #
+# #
+# By default, 'format_answer_first' is enabled and the #
+# other two formats are disabled. Note that the options #
+# are not mutually exclusive - the question list may #
+# contain questions with different formats. #
+# #
+# The formats are set independently for each of the four #
+# math operations. All parameters are type 'boolean'. #
+############################################################
+
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+
+############################################################
+# #
+# Parameter: max_answer (integer) #
+# Default: 999 #
+# #
+# 'max_answer' is the largest absolute value allowed in #
+# any value in a question (not only the answer). Default #
+# is 999, which is as high as it can be set. It can be set #
+# lower to fine-tune the list for certain 'lessons'. #
+############################################################
+
+max_answer = 100
+
+############################################################
+# #
+# Parameter: max_questions (integer) #
+# Default: 5000 #
+# #
+# 'max_questions' is limit of the length of the question #
+# list. Default is 5000 - only severe taskmasters will #
+# need to raise it! #
+############################################################
+
+max_questions = 25000
+
+############################################################
+# #
+# Parameter: randomize (boolean) #
+# Default: 1 #
+# #
+# If 'randomize' selected, the list will be shuffled #
+# at the start of the game. Otherwise, the questions #
+# appear in the order the program generates them. #
+############################################################
+
+randomize = 1
+
+############################################################
+# #
+# Advanced Comet Speed Options #
+# #
+# Parameter: starting_comets (integer) #
+# Default: 2 #
+# Parameter: extra_comets_per_wave (integer) #
+# Default: 2 #
+# Parameter: max_comets (integer) #
+# Default: 10 #
+# Parameter: speed (float) #
+# Default: 1.00 #
+# Parameter: max_speed (float) #
+# Default: 10.00 #
+# Parameter: speedup_factor (float) #
+# Default: 1.20 #
+# Parameter: bonus_comet_interval (integer) #
+# Default: 10 #
+# Parameter: bonus_speed_ratio (float) #
+# Default: 1.50 #
+# Parameter: slow_after_wrong (bool) #
+# Default: 0 #
+# #
+# (for 'feedback' speed control system): #
+# Parameter: danger_level (float) #
+# Default: 0.35 #
+# Parameter: danger_level_speedup (float) #
+# Default: 1.1 #
+# Parameter: danger_level_max (float) #
+# Default: 0.9 #
+# Parameter: city_explode_handicap (float) #
+# Default: 0 #
+# #
+# The comet number parameters and initial/max speed apply #
+# whether or not the feedback system is activated. #
+# #
+# 'speedup_factor' and 'slow_after_wrong' only apply if #
+# feedback is not activated. #
+# #
+# The 'danger_level_*' and 'city_explode_handicap' #
+# parameters are only used if feedback is activated. #
+############################################################
+
+
+# Number of comets for first wave. Default is 2.
+starting_comets = 2
+
+# Comets to add for each successive wave. Default is 2.
+extra_comets_per_wave = 2
+
+# Maximum number of comets. Default is 10.
+max_comets = 10
+
+# Starting comet speed. Default is 1.
+speed = 1.00
+
+# Maximum speed. Default is 10.
+max_speed = 10.00
+
+# 'speedup_factor': If feedback is not used but
+# 'allow_speedup' is enabled, the comet speed will be
+# multiplied by this factor with each new wave.
+# Values from 0.5 to 2 are accepted (note that a
+# value less than 1 causes the comets to be
+# slower with each wave!).
+# Default is 1.2 (i.e. 20 percent increase per wave)
+
+speedup_factor = 1.20
+
+# 'bonus_comet_interval' controls how frequently
+# special comets appear that cause a igloo to be
+# rebuilt if answered correctly. The bonus comet
+# appears after this number of regular comets (a
+# value of 0 disables bonus comets). Default is 10.
+bonus_comet_interval = 10
+
+# 'bonus_speed_ratio' determines how fast the
+# bonus comets fall relative to the regular comets.
+# Range 1.0 - 3.0, default 1.5:
+bonus_speed_ratio = 1.80
+
+# 'slow_after_wrong' tells Tuxmath to go back to
+# starting speed and number of comets if the player misses
+# a question. Useful for smaller kids. Default is 0.
+
+slow_after_wrong = 0
+
+# (Feedback) Set the desired danger level.
+# 0 = too safe, comets typically exploded at the very top
+# 1 = too dangerous, comets typically exploded as they
+# hit cities. Set it somewhere between these extremes. As
+# a guideline, early elementary kids might prefer
+# 0.2-0.3, older kids at around 0.4-0.6. Default 0.35.
+
+danger_level = 0.35
+
+# (Feedback) Set danger level speedup.
+# The margin of safety will decrease by this factor each
+# wave. Default 1.1. Note 1 = no increase in danger level.
+
+danger_level_speedup = 1.00
+
+# (Feedback) Set the maximum danger level.
+# Default 0.9.
+danger_level_max = 0.90
+
+# (Feedback) Set the handicap for hitting cities.
+# When bigger than 0, this causes the game to slow down
+# by an extra amount after a wave in which one or more
+# cities get hit. Note that this is similar to
+# 'slow_after_wrong', but allows for more gradual
+# changes. Default 0 (no extra handicap).
+
+city_explode_handicap = 0.00
+
+
+############################################################
+# #
+# Restricting User Settings #
+# #
+# Parameter: per_user_config (boolean) #
+# Default: 1 #
+# #
+# 'per_user_config' determines whether Tuxmath will look #
+# in the user's home directory for settings. Default is 1 #
+# (yes). If set to 0, the program will ignore the user's #
+# .tuxmath file and use the the global settings in the #
+# installation-wide config file. #
+# #
+# This setting cannot be changed by an ordinary user, i.e. #
+# it is ignored unless the config file is Tuxmath's global #
+# config file. Thus, users cannot 'lock themselves out' #
+# by accidentally setting this to 0. #
+############################################################
+
+per_user_config = 1
diff --git a/data/missions/lessons/Makefile.am b/data/missions/lessons/Makefile.am
new file mode 100644
index 0000000..c8799fe
--- /dev/null
+++ b/data/missions/lessons/Makefile.am
@@ -0,0 +1,72 @@
+## Makefile.am for tuxmath - data/missions/lessons:
+## Process with Automake to create Makefile.in
+
+lessonsdir = $(pkgdatadir)/missions/lessons
+
+dist_lessons_DATA = lesson00 \
+ lesson01 \
+ lesson02 \
+ lesson03 \
+ lesson04 \
+ lesson05 \
+ lesson06 \
+ lesson07 \
+ lesson08 \
+ lesson09 \
+ lesson10 \
+ lesson11 \
+ lesson12 \
+ lesson13 \
+ lesson14 \
+ lesson15 \
+ lesson16 \
+ lesson17 \
+ lesson18 \
+ lesson19 \
+ lesson20 \
+ lesson21 \
+ lesson22 \
+ lesson23 \
+ lesson24 \
+ lesson25 \
+ lesson26 \
+ lesson27 \
+ lesson28 \
+ lesson29 \
+ lesson30 \
+ lesson31 \
+ lesson32 \
+ lesson33 \
+ lesson34 \
+ lesson35 \
+ lesson36 \
+ lesson37 \
+ lesson38 \
+ lesson39 \
+ lesson40 \
+ lesson41 \
+ lesson42 \
+ lesson43 \
+ lesson44 \
+ lesson45 \
+ lesson46 \
+ lesson47 \
+ lesson48 \
+ lesson49 \
+ lesson50 \
+ lesson51 \
+ lesson52 \
+ lesson53 \
+ lesson54 \
+ lesson55 \
+ lesson56 \
+ lesson57
+
+EXTRA_DIST = descr_lessons \
+ update-po.sh
+
+all: descr_lessons
+
+# Create a 'source' file holding all the descriptions for the missions.
+descr_lessons: $(dist_lessons_DATA)
+ cd $(srcdir); ./update-po.sh
diff --git a/data/missions/lessons/descr_lessons b/data/missions/lessons/descr_lessons
new file mode 100644
index 0000000..ee7eedc
--- /dev/null
+++ b/data/missions/lessons/descr_lessons
@@ -0,0 +1,58 @@
+_("Number Typing")
+_("Addition: 1 to 3")
+_("Addition: 0 to 5")
+_("Addition: Sums to 10")
+_("Addition: Sums to 15")
+_("Addition: Sums to 20")
+_("Addition: Two Digit Numbers")
+_("Addition: Missing Numbers")
+_("Subtraction: 0 to 10")
+_("Subtraction: 0 to 20")
+_("Subtraction: Two Digit Numbers")
+_("Addition and Subtraction Review")
+_("Multiplication: 0 to 3")
+_("Multiples of 2")
+_("Multiples of 3")
+_("Multiples of 4")
+_("Multiples of 5")
+_("Multiplication: 0 to 5")
+_("Multiples of 6")
+_("Multiples of 7")
+_("Multiplication: 0 to 7")
+_("Multiples of 8")
+_("Multiples of 9")
+_("Multiples of 10")
+_("Multiplication: 0 to 10")
+_("Multiples of 11 and 12")
+_("Multiplication: 0 to 12")
+_("Multiples of 13, 14, and 15")
+_("Multiplication: 0 to 15")
+_("Multiplication: Missing Numbers")
+_("Division by 2")
+_("Division by 3")
+_("Division by 4")
+_("Division by 5")
+_("Division: 1 to 5")
+_("Division by 6")
+_("Division by 7")
+_("Division by 8")
+_("Division by 9")
+_("Division by 10")
+_("Division: 1 to 10")
+_("Division by 11 and 12")
+_("Division: 1 to 12")
+_("Division by 13, 14, and 15")
+_("Division: 1 to 15")
+_("Multiplication and Division Review")
+_("Typing Negative Numbers")
+_("Subtraction: Negative Answers")
+_("Adding Negatives to Positives")
+_("Adding Positives to Negatives")
+_("Subtracting Negatives From Positives")
+_("Subtracting Positives From Negatives")
+_("Adding Negatives to Negatives")
+_("Subtracting Negatives From Negatives")
+_("Negative and Positive Numbers Review")
+_("Multiplication and Division of Negatives")
+_("Multiplication of Positives and Negatives")
+_("Division of Positives and Negatives")
diff --git a/data/missions/lessons/lesson00 b/data/missions/lessons/lesson00
new file mode 100644
index 0000000..72c3f84
--- /dev/null
+++ b/data/missions/lessons/lesson00
@@ -0,0 +1,33 @@
+# Number Typing
+# Math options
+play_through_list = 1
+typing_practice_allowed = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_typing_num = 0
+max_typing_num = 10
+max_answer = 400;
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 22
+vary_list_length = 0
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson01 b/data/missions/lessons/lesson01
new file mode 100644
index 0000000..0b62020
--- /dev/null
+++ b/data/missions/lessons/lesson01
@@ -0,0 +1,41 @@
+# Addition: 1 to 3
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 1
+max_augend = 3
+min_addend = 1
+max_addend = 3
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 20
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson02 b/data/missions/lessons/lesson02
new file mode 100644
index 0000000..7e44463
--- /dev/null
+++ b/data/missions/lessons/lesson02
@@ -0,0 +1,41 @@
+# Addition: 0 to 5
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 0
+max_augend = 5
+min_addend = 0
+max_addend = 5
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 400;
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 30
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson03 b/data/missions/lessons/lesson03
new file mode 100644
index 0000000..8732b4c
--- /dev/null
+++ b/data/missions/lessons/lesson03
@@ -0,0 +1,41 @@
+# Addition: Sums to 10
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+max_answer = 10;
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 30
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson04 b/data/missions/lessons/lesson04
new file mode 100644
index 0000000..b9ec460
--- /dev/null
+++ b/data/missions/lessons/lesson04
@@ -0,0 +1,41 @@
+# Addition: Sums to 15
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 15
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 30
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson05 b/data/missions/lessons/lesson05
new file mode 100644
index 0000000..a675374
--- /dev/null
+++ b/data/missions/lessons/lesson05
@@ -0,0 +1,41 @@
+# Addition: Sums to 20
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 20
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson06 b/data/missions/lessons/lesson06
new file mode 100644
index 0000000..6da7012
--- /dev/null
+++ b/data/missions/lessons/lesson06
@@ -0,0 +1,41 @@
+# Addition: Two Digit Numbers
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 10
+max_augend = 20
+min_addend = 10
+max_addend = 20
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson07 b/data/missions/lessons/lesson07
new file mode 100644
index 0000000..6ac9258
--- /dev/null
+++ b/data/missions/lessons/lesson07
@@ -0,0 +1,43 @@
+# Addition: Missing Numbers
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+format_answer_last = 0
+format_answer_first = 1
+format_answer_middle = 1
+format_add_answer_last = 0
+format_add_answer_first = 1
+format_add_answer_middle = 1
+max_answer = 400;
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson08 b/data/missions/lessons/lesson08
new file mode 100644
index 0000000..665db48
--- /dev/null
+++ b/data/missions/lessons/lesson08
@@ -0,0 +1,41 @@
+# Subtraction: 0 to 10
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+allow_negatives = 0
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson09 b/data/missions/lessons/lesson09
new file mode 100644
index 0000000..dbac57b
--- /dev/null
+++ b/data/missions/lessons/lesson09
@@ -0,0 +1,42 @@
+# Subtraction: 0 to 20
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+allow_negatives = 0
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson10 b/data/missions/lessons/lesson10
new file mode 100644
index 0000000..d7a648a
--- /dev/null
+++ b/data/missions/lessons/lesson10
@@ -0,0 +1,42 @@
+# Subtraction: Two Digit Numbers
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+min_minuend = 20
+max_minuend = 30
+min_subtrahend = 10
+max_subtrahend = 20
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+allow_negatives = 0
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 30
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson11 b/data/missions/lessons/lesson11
new file mode 100644
index 0000000..797f99c
--- /dev/null
+++ b/data/missions/lessons/lesson11
@@ -0,0 +1,49 @@
+# Addition and Subtraction Review
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 10
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+allow_negatives = 0
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson12 b/data/missions/lessons/lesson12
new file mode 100644
index 0000000..25d79bc
--- /dev/null
+++ b/data/missions/lessons/lesson12
@@ -0,0 +1,41 @@
+# Multiplication: 0 to 3
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 3
+min_multiplicand = 0
+max_multiplicand = 3
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson13 b/data/missions/lessons/lesson13
new file mode 100644
index 0000000..3152f73
--- /dev/null
+++ b/data/missions/lessons/lesson13
@@ -0,0 +1,41 @@
+# Multiples of 2
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 2
+max_multiplier = 2
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson14 b/data/missions/lessons/lesson14
new file mode 100644
index 0000000..0debf8c
--- /dev/null
+++ b/data/missions/lessons/lesson14
@@ -0,0 +1,41 @@
+# Multiples of 3
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 3
+max_multiplier = 3
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson15 b/data/missions/lessons/lesson15
new file mode 100644
index 0000000..c380d59
--- /dev/null
+++ b/data/missions/lessons/lesson15
@@ -0,0 +1,41 @@
+# Multiples of 4
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 4
+max_multiplier = 4
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson16 b/data/missions/lessons/lesson16
new file mode 100644
index 0000000..26c7ec1
--- /dev/null
+++ b/data/missions/lessons/lesson16
@@ -0,0 +1,41 @@
+# Multiples of 5
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 5
+max_multiplier = 5
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson17 b/data/missions/lessons/lesson17
new file mode 100644
index 0000000..2efeafc
--- /dev/null
+++ b/data/missions/lessons/lesson17
@@ -0,0 +1,41 @@
+# Multiplication: 0 to 5
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 5
+min_multiplicand = 0
+max_multiplicand = 5
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 108
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson18 b/data/missions/lessons/lesson18
new file mode 100644
index 0000000..5543435
--- /dev/null
+++ b/data/missions/lessons/lesson18
@@ -0,0 +1,41 @@
+# Multiples of 6
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 6
+max_multiplier = 6
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson19 b/data/missions/lessons/lesson19
new file mode 100644
index 0000000..02e74ee
--- /dev/null
+++ b/data/missions/lessons/lesson19
@@ -0,0 +1,41 @@
+# Multiples of 7
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 7
+max_multiplier = 7
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson20 b/data/missions/lessons/lesson20
new file mode 100644
index 0000000..759af07
--- /dev/null
+++ b/data/missions/lessons/lesson20
@@ -0,0 +1,41 @@
+# Multiplication: 0 to 7
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 7
+min_multiplicand = 0
+max_multiplicand = 7
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 64
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson21 b/data/missions/lessons/lesson21
new file mode 100644
index 0000000..51b46c1
--- /dev/null
+++ b/data/missions/lessons/lesson21
@@ -0,0 +1,41 @@
+# Multiples of 8
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 8
+max_multiplier = 8
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson22 b/data/missions/lessons/lesson22
new file mode 100644
index 0000000..34ff278
--- /dev/null
+++ b/data/missions/lessons/lesson22
@@ -0,0 +1,41 @@
+# Multiples of 9
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 9
+max_multiplier = 9
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson23 b/data/missions/lessons/lesson23
new file mode 100644
index 0000000..f3f2e06
--- /dev/null
+++ b/data/missions/lessons/lesson23
@@ -0,0 +1,41 @@
+# Multiples of 10
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 10
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson24 b/data/missions/lessons/lesson24
new file mode 100644
index 0000000..d7357a0
--- /dev/null
+++ b/data/missions/lessons/lesson24
@@ -0,0 +1,41 @@
+# Multiplication: 0 to 10
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 121
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson25 b/data/missions/lessons/lesson25
new file mode 100644
index 0000000..05f66c3
--- /dev/null
+++ b/data/missions/lessons/lesson25
@@ -0,0 +1,41 @@
+# Multiples of 11 and 12
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 11
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 52
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson26 b/data/missions/lessons/lesson26
new file mode 100644
index 0000000..e6e0566
--- /dev/null
+++ b/data/missions/lessons/lesson26
@@ -0,0 +1,42 @@
+# Multiplication: 0 to 12
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 169
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson27 b/data/missions/lessons/lesson27
new file mode 100644
index 0000000..b66aa99
--- /dev/null
+++ b/data/missions/lessons/lesson27
@@ -0,0 +1,41 @@
+# Multiples of 13, 14, and 15
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 13
+max_multiplier = 15
+min_multiplicand = 0
+max_multiplicand = 15
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 96
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson28 b/data/missions/lessons/lesson28
new file mode 100644
index 0000000..6b8cc13
--- /dev/null
+++ b/data/missions/lessons/lesson28
@@ -0,0 +1,42 @@
+# Multiplication: 0 to 15
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+min_multiplier = 0
+max_multiplier = 15
+min_multiplicand = 0
+max_multiplicand = 15
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 256
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson29 b/data/missions/lessons/lesson29
new file mode 100644
index 0000000..686c603
--- /dev/null
+++ b/data/missions/lessons/lesson29
@@ -0,0 +1,44 @@
+# Multiplication: Missing Numbers
+
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+format_answer_last = 0
+format_answer_first = 1
+format_answer_middle = 1
+format_mult_answer_last = 0
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+max_answer = 999
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 50
+vary_list_length = 0
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson30 b/data/missions/lessons/lesson30
new file mode 100644
index 0000000..fd778b6
--- /dev/null
+++ b/data/missions/lessons/lesson30
@@ -0,0 +1,50 @@
+# Division by 2
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 2
+max_multiplier = 2
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 2
+max_divisor = 2
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson31 b/data/missions/lessons/lesson31
new file mode 100644
index 0000000..53a3a8c
--- /dev/null
+++ b/data/missions/lessons/lesson31
@@ -0,0 +1,50 @@
+# Division by 3
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 3
+max_multiplier = 3
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 3
+max_divisor = 3
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson32 b/data/missions/lessons/lesson32
new file mode 100644
index 0000000..33e9460
--- /dev/null
+++ b/data/missions/lessons/lesson32
@@ -0,0 +1,50 @@
+# Division by 4
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 4
+max_multiplier = 4
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 4
+max_divisor = 4
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson33 b/data/missions/lessons/lesson33
new file mode 100644
index 0000000..dc7916e
--- /dev/null
+++ b/data/missions/lessons/lesson33
@@ -0,0 +1,50 @@
+# Division by 5
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 5
+max_multiplier = 5
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 5
+max_divisor = 5
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson34 b/data/missions/lessons/lesson34
new file mode 100644
index 0000000..13886e6
--- /dev/null
+++ b/data/missions/lessons/lesson34
@@ -0,0 +1,41 @@
+# Division: 1 to 5
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 1
+min_divisor = 1
+max_divisor = 5
+min_quotient = 0
+max_quotient = 5
+format_answer_last = 1
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 90
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson35 b/data/missions/lessons/lesson35
new file mode 100644
index 0000000..8976753
--- /dev/null
+++ b/data/missions/lessons/lesson35
@@ -0,0 +1,50 @@
+# Division by 6
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 6
+max_multiplier = 6
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 6
+max_divisor = 6
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson36 b/data/missions/lessons/lesson36
new file mode 100644
index 0000000..43784b7
--- /dev/null
+++ b/data/missions/lessons/lesson36
@@ -0,0 +1,50 @@
+# Division by 7
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 7
+max_multiplier = 7
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 7
+max_divisor = 7
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson37 b/data/missions/lessons/lesson37
new file mode 100644
index 0000000..6546d2a
--- /dev/null
+++ b/data/missions/lessons/lesson37
@@ -0,0 +1,50 @@
+# Division by 8
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 8
+max_multiplier = 8
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 8
+max_divisor = 8
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson38 b/data/missions/lessons/lesson38
new file mode 100644
index 0000000..7e5d193
--- /dev/null
+++ b/data/missions/lessons/lesson38
@@ -0,0 +1,50 @@
+# Division by 9
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 9
+max_multiplier = 9
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 9
+max_divisor = 9
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson39 b/data/missions/lessons/lesson39
new file mode 100644
index 0000000..5175d14
--- /dev/null
+++ b/data/missions/lessons/lesson39
@@ -0,0 +1,50 @@
+# Division by 10
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 10
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 10
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 44
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson40 b/data/missions/lessons/lesson40
new file mode 100644
index 0000000..c50cbf6
--- /dev/null
+++ b/data/missions/lessons/lesson40
@@ -0,0 +1,41 @@
+# Division: 1 to 10
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 1
+min_divisor = 1
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 110
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson41 b/data/missions/lessons/lesson41
new file mode 100644
index 0000000..4cefad6
--- /dev/null
+++ b/data/missions/lessons/lesson41
@@ -0,0 +1,50 @@
+# Division by 11 and 12
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 11
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+min_divisor = 11
+max_divisor = 12
+min_quotient = 0
+max_quotient = 12
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 52
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson42 b/data/missions/lessons/lesson42
new file mode 100644
index 0000000..7cde5cf
--- /dev/null
+++ b/data/missions/lessons/lesson42
@@ -0,0 +1,41 @@
+# Division: 1 to 12
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 1
+min_divisor = 1
+max_divisor = 12
+min_quotient = 0
+max_quotient = 12
+format_answer_last = 1
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 156
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson43 b/data/missions/lessons/lesson43
new file mode 100644
index 0000000..df12800
--- /dev/null
+++ b/data/missions/lessons/lesson43
@@ -0,0 +1,50 @@
+# Division by 13, 14, and 15
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 13
+max_multiplier = 15
+min_multiplicand = 0
+max_multiplicand = 15
+min_divisor = 13
+max_divisor = 15
+min_quotient = 0
+max_quotient = 15
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 96
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson44 b/data/missions/lessons/lesson44
new file mode 100644
index 0000000..dc78241
--- /dev/null
+++ b/data/missions/lessons/lesson44
@@ -0,0 +1,41 @@
+# Division: 1 to 15
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 1
+min_divisor = 1
+max_divisor = 15
+min_quotient = 0
+max_quotient = 15
+format_answer_last = 1
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 240
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson45 b/data/missions/lessons/lesson45
new file mode 100644
index 0000000..f26bafe
--- /dev/null
+++ b/data/missions/lessons/lesson45
@@ -0,0 +1,50 @@
+# Multiplication and Division Review
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 0
+min_multiplier = 0
+max_multiplier = 10
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 1
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+format_answer_last = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 50
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson46 b/data/missions/lessons/lesson46
new file mode 100644
index 0000000..ad17d89
--- /dev/null
+++ b/data/missions/lessons/lesson46
@@ -0,0 +1,37 @@
+# Typing Negative Numbers
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_typing_num = -20
+max_typing_num = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 20
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson47 b/data/missions/lessons/lesson47
new file mode 100644
index 0000000..6246d51
--- /dev/null
+++ b/data/missions/lessons/lesson47
@@ -0,0 +1,42 @@
+# Subtraction: Negative Answers
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+allow_negatives = 1
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson48 b/data/missions/lessons/lesson48
new file mode 100644
index 0000000..f8c1b33
--- /dev/null
+++ b/data/missions/lessons/lesson48
@@ -0,0 +1,42 @@
+# Adding Negatives to Positives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_augend = 0
+max_augend = 10
+min_addend = -10
+max_addend = -1
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 20
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson49 b/data/missions/lessons/lesson49
new file mode 100644
index 0000000..586ad40
--- /dev/null
+++ b/data/missions/lessons/lesson49
@@ -0,0 +1,42 @@
+# Adding Positives to Negatives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_augend = -10
+max_augend = -1
+min_addend = 0
+max_addend = 10
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson50 b/data/missions/lessons/lesson50
new file mode 100644
index 0000000..f4f5571
--- /dev/null
+++ b/data/missions/lessons/lesson50
@@ -0,0 +1,42 @@
+# Subtracting Negatives From Positives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = -10
+max_subtrahend = -1
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson51 b/data/missions/lessons/lesson51
new file mode 100644
index 0000000..5507f7f
--- /dev/null
+++ b/data/missions/lessons/lesson51
@@ -0,0 +1,42 @@
+# Subtracting Positives From Negatives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_minuend = -10
+max_minuend = -1
+min_subtrahend = 0
+max_subtrahend = 10
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson52 b/data/missions/lessons/lesson52
new file mode 100644
index 0000000..9a98e5c
--- /dev/null
+++ b/data/missions/lessons/lesson52
@@ -0,0 +1,42 @@
+# Adding Negatives to Negatives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_augend = -10
+max_augend = 0
+min_addend = -10
+max_addend = 0
+format_answer_last = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+max_answer = 20
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson53 b/data/missions/lessons/lesson53
new file mode 100644
index 0000000..ebc365d
--- /dev/null
+++ b/data/missions/lessons/lesson53
@@ -0,0 +1,42 @@
+# Subtracting Negatives From Negatives
+
+# Math options
+play_through_list = 1
+typing_practice_allowed = 0
+addition_allowed = 0
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 1
+min_minuend = -10
+max_minuend = -0
+min_subtrahend = -10
+max_subtrahend = 0
+format_answer_last = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+max_answer = 400
+save_summary = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+allow_speedup = 1
+use_feedback = 1
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 20.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/lesson54 b/data/missions/lessons/lesson54
new file mode 100644
index 0000000..aad1be7
--- /dev/null
+++ b/data/missions/lessons/lesson54
@@ -0,0 +1,54 @@
+# Negative and Positive Numbers Review
+
+# Math options
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 1
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+typing_practice_allowed = 0
+allow_negatives = 1
+min_augend = -3
+max_augend = 3
+min_addend = -3
+max_addend = 3
+min_minuend = -3
+max_minuend = 3
+min_subtrahend = -3
+max_subtrahend = 3
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+format_answer_last = 1
+format_answer_first = 1
+format_answer_middle = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+max_answer = 999
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson55 b/data/missions/lessons/lesson55
new file mode 100644
index 0000000..d135adc
--- /dev/null
+++ b/data/missions/lessons/lesson55
@@ -0,0 +1,54 @@
+# Multiplication and Division of Negatives
+
+# Math options
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 1
+min_multiplier = -5
+max_multiplier = 0
+min_multiplicand = -5
+max_multiplicand = 0
+min_divisor = -5
+max_divisor = 1
+min_quotient = -5
+max_quotient = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+format_answer_last = 1
+format_answer_first = 0
+format_answer_middle = 0
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 999
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson56 b/data/missions/lessons/lesson56
new file mode 100644
index 0000000..451417f
--- /dev/null
+++ b/data/missions/lessons/lesson56
@@ -0,0 +1,47 @@
+# Multiplication of Positives and Negatives
+
+# Math options
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 1
+division_allowed = 0
+typing_practice_allowed = 0
+allow_negatives = 1
+min_multiplier = -5
+max_multiplier = 5
+min_multiplicand = -5
+max_multiplicand = 5
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+format_answer_last = 1
+format_answer_first = 0
+format_answer_middle = 0
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+max_answer = 999
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+
+keep_score = 1
diff --git a/data/missions/lessons/lesson57 b/data/missions/lessons/lesson57
new file mode 100644
index 0000000..cd51767
--- /dev/null
+++ b/data/missions/lessons/lesson57
@@ -0,0 +1,46 @@
+# Division of Positives and Negatives
+
+# Math options
+play_through_list = 1
+allow_speedup = 1
+use_feedback = 1
+addition_allowed = 0
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 1
+typing_practice_allowed = 0
+allow_negatives = 1
+min_divisor = -5
+max_divisor = 5
+min_quotient = -5
+max_quotient = 5
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 2
+format_answer_last = 1
+format_answer_first = 0
+format_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+max_answer = 999
+max_questions = 5000
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 40
+vary_list_length = 0
+
+# General game options
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 10.00
+danger_level = 0.35
+danger_level_speedup = 1
+danger_level_max = 0.90
+city_explode_handicap = 0.00
+keep_score = 1
diff --git a/data/missions/lessons/update-po.sh b/data/missions/lessons/update-po.sh
new file mode 100755
index 0000000..d03b4d4
--- /dev/null
+++ b/data/missions/lessons/update-po.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Create a 'source' file holding all the descriptions for the missions.
+# That file (descr_lessons) is listed in po/POTFILES.in so the strings will go into
+# tuxmath.pot and subsequently into the individual po files for translation.
+# NOTE this script needs to be kept in the same dir as the lesson files
+rm -f ./descr_lessons
+for i in ./lesson*; do
+ head --lines=1 $i | sed 's/^# \(.*\)$/_("\1")/' >> descr_lessons;
+done;
+
+
+
diff --git a/data/missions/multiplay/Makefile.am b/data/missions/multiplay/Makefile.am
new file mode 100644
index 0000000..4da4347
--- /dev/null
+++ b/data/missions/multiplay/Makefile.am
@@ -0,0 +1,11 @@
+## Makefile.am for tuxmath - data/missions/multiplay:
+## Process with Automake to create Makefile.in
+
+multiplaydir = $(pkgdatadir)/missions/multiplay
+
+dist_multiplay_DATA = ace \
+ commando \
+ ranger \
+ scout \
+ space_cadet \
+ mpoptions
diff --git a/data/missions/multiplay/ace b/data/missions/multiplay/ace
new file mode 100644
index 0000000..ff0fee9
--- /dev/null
+++ b/data/missions/multiplay/ace
@@ -0,0 +1,61 @@
+# multiplay ace lesson file
+
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 1
+min_augend = -20
+max_augend = 20
+min_addend = -20
+max_addend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = -20
+max_subtrahend = 20
+min_multiplier = -20
+max_multiplier = 20
+min_multiplicand = -20
+max_multiplicand = 20
+min_divisor = -20
+max_divisor = 20
+min_quotient = -20
+max_quotient = 20
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 25
+vary_list_length = 0
+max_answer = 400
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.25
+slow_after_wrong = 0
+max_questions = 25000
+bonus_comet_interval = 20
+allow_pause = 0
+bonus_speed_ratio = 2.0
diff --git a/data/missions/multiplay/commando b/data/missions/multiplay/commando
new file mode 100644
index 0000000..a267b0a
--- /dev/null
+++ b/data/missions/multiplay/commando
@@ -0,0 +1,60 @@
+# multiplay commando lesson file
+
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 1
+min_augend = -20
+max_augend = 20
+min_addend = -20
+max_addend = 20
+min_minuend = -20
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+min_multiplier = -20
+max_multiplier = 20
+min_multiplicand = -10
+max_multiplicand = 10
+min_divisor = -20
+max_divisor = 20
+min_quotient = -10
+max_quotient = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+randomize = 1
+comprehensive = 0
+min_formula_nums = 3
+max_formula_nums = 4
+avg_list_length = 25
+vary_list_length = 0
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 0.25
+max_speed = 40.00
+speedup_factor = 1.125
+slow_after_wrong = 1
+max_questions = 25000
+bonus_comet_interval = 20
+allow_pause = 0
+bonus_speed_ratio = 2.0
diff --git a/data/missions/multiplay/mpoptions b/data/missions/multiplay/mpoptions
new file mode 100644
index 0000000..4b9d3fe
--- /dev/null
+++ b/data/missions/multiplay/mpoptions
@@ -0,0 +1,9 @@
+#master option file for multiplay
+
+play_through_list = 1
+avg_list_length = 10
+vary_list_length = 1
+comprehensive = 0
+mp_multiplayer = 1
+
+
diff --git a/data/missions/multiplay/ranger b/data/missions/multiplay/ranger
new file mode 100644
index 0000000..f9ee2c5
--- /dev/null
+++ b/data/missions/multiplay/ranger
@@ -0,0 +1,62 @@
+# multiplay_ranger lesson file
+
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+allow_negatives = 0
+min_augend = 0
+max_augend = 20
+min_addend = 0
+max_addend = 20
+min_minuend = 0
+max_minuend = 20
+min_subtrahend = 0
+max_subtrahend = 20
+min_multiplier = 0
+max_multiplier = 20
+min_multiplicand = 0
+max_multiplicand = 10
+min_divisor = 0
+max_divisor = 10
+min_quotient = 0
+max_quotient = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 1
+format_add_answer_middle = 1
+format_sub_answer_last = 1
+format_sub_answer_first = 1
+format_sub_answer_middle = 1
+format_mult_answer_last = 1
+format_mult_answer_first = 1
+format_mult_answer_middle = 1
+format_div_answer_last = 1
+format_div_answer_first = 1
+format_div_answer_middle = 1
+max_answer = 100
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 25
+vary_list_length = 0
+
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.2
+slow_after_wrong = 0
+max_questions = 25000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.8
diff --git a/data/missions/multiplay/scout b/data/missions/multiplay/scout
new file mode 100644
index 0000000..71ed749
--- /dev/null
+++ b/data/missions/multiplay/scout
@@ -0,0 +1,49 @@
+# multiplay_scout lesson file
+
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 0
+max_formula_nums = 2
+min_formula_nums = 2
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+min_minuend = 0
+max_minuend = 10
+min_subtrahend = 0
+max_subtrahend = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 25
+vary_list_length = 0
+max_answer = 20
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.15
+slow_after_wrong = 0
+max_questions = 5000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.5
diff --git a/data/missions/multiplay/space_cadet b/data/missions/multiplay/space_cadet
new file mode 100644
index 0000000..0c21dea
--- /dev/null
+++ b/data/missions/multiplay/space_cadet
@@ -0,0 +1,40 @@
+# multiplay space cadet lesson file
+
+allow_speedup = 1
+use_feedback = 0
+addition_allowed = 1
+subtraction_allowed = 0
+multiplication_allowed = 0
+division_allowed = 0
+allow_negatives = 0
+min_augend = 0
+max_augend = 10
+min_addend = 0
+max_addend = 10
+use_bkgd = 1
+demo_mode = 0
+save_summary = 1
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+randomize = 1
+comprehensive = 1
+min_formula_nums = 2
+max_formula_nums = 2
+avg_list_length = 12
+vary_list_length = 0
+max_answer = 10
+starting_comets = 2
+extra_comets_per_wave = 2
+max_comets = 10
+speed = 1.00
+max_speed = 40.00
+speedup_factor = 1.1
+slow_after_wrong = 0
+max_questions = 5000
+bonus_comet_interval = 10
+allow_pause = 0
+bonus_speed_ratio = 1.2
diff --git a/data/missions/options b/data/missions/options
new file mode 100644
index 0000000..98669c3
--- /dev/null
+++ b/data/missions/options
@@ -0,0 +1,512 @@
+############################################################
+# #
+# Tuxmath Configuration File #
+# #
+# The behavior of Tuxmath can be controlled to a great #
+# extent by editing this file with any and saving it in #
+# the default options location ($HOME/.tuxmath/options). #
+# The file consists of 'NAME = VALUE' pairs, one pair per #
+# line. Each option is one of the following types: #
+# #
+# boolean: 1 (synonyms 'true', 'T', 'yes', 'Y', 'on') #
+# or #
+# 0 (synonyms 'false, 'F', 'no', 'N', 'off') #
+# integer (i.e. non-fractional numbers) #
+# float (i.e decimal fractions) #
+# #
+# Lines beginning with '#' or ';' are ignored as comments. #
+# The synonyms for boolean '0' and '1' are accepted as #
+# input, but always written as '0' or '1' when Tuxmath #
+# writes a config file to disk. #
+# The file is organized with the more important options #
+# first. #
+############################################################
+
+############################################################
+# #
+# Game Mode #
+# #
+# Parameter: play_through_list (Boolean) #
+# Default: 1 #
+# #
+# Tuxmath generates a list of math questions based on #
+# parameters set below. By default, (play_through_list = #
+# 1) the questions are asked in a random order. #
+# Correctly answered questions are removed from the list. #
+# If the player fails to correctly answer a question #
+# before it hits a city, the question will be reinserted #
+# into the list in a random location. #
+# The player wins if all questions are answered correctly #
+# before the cities are destroyed. #
+# #
+# Alternatively, Tuxmath can be played in 'Arcade Mode' #
+# by setting play_through_list = 0 (i.e. 'false'). If this #
+# is done, all questions will be randomly reinserted into #
+# the list whether or not they are answered correctly, and #
+# the game continues as long as there is a surviving city. #
+############################################################
+
+play_through_list = 1
+
+############################################################
+# #
+# Speed and Number of Comets #
+# #
+# Parameter: allow_speedup (boolean) #
+# Default: 1 #
+# Parameter: use_feedback (boolean) #
+# Default: 0 #
+# #
+# By default, the comets become faster and more numerous #
+# with each succeeding. The increase can be prevented #
+# by setting 'allow_speedup' to 0. #
+# #
+# If 'allow_speedup' is enabled, it is also possible to #
+# dynamically adjust the speed to the player's performance #
+# by setting 'use_feedback' to 1. This feature attempts #
+# to speed the game up if it is too easy for the player, #
+# and to slow it down if the player is having trouble. #
+# #
+# Many additional parameters under 'Advanced Options' can #
+# be used to fine-tune these behaviors. #
+############################################################
+
+allow_speedup = 1
+use_feedback = 0
+
+############################################################
+# #
+# Selecting Math Operations #
+# #
+# Parameter: addition_allowed (boolean) #
+# Default: 1 #
+# Parameter: subtraction_allowed (boolean) #
+# Default: 1 #
+# Parameter: multiplication_allowed (boolean) #
+# Default: 1 #
+# Parameter: division_allowed (boolean) #
+# Default: 1 #
+# #
+# These options enable questions for each of the four math #
+# operations. All are 1 (yes) by default. #
+############################################################
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+
+############################################################
+# #
+# Typing Practice #
+# #
+# Parameter: typing_practice_allowed (boolean) #
+# Default: 0 #
+# #
+# This option simply displays numbers for the youngest #
+# players to type in to learn the keyboard. #
+############################################################
+
+typing_practice_allowed = 0
+
+############################################################
+# #
+# Negative Number Support #
+# #
+# Parameter: allow_negatives (boolean) #
+# Default: 0 #
+# #
+# 'allow_negatives' allows or disallows use of negative #
+# numbers as both operands and answers. Default is 0 #
+# (no), which disallows questions like: #
+# 2 - 4 = ? #
+# Note: this option must be enabled in order to set the #
+# operand ranges to include negatives. If it is changed #
+# from 1 (yes) to 0 (no), any negative operand limits will #
+# be reset to 0. #
+############################################################
+
+allow_negatives = 0
+
+############################################################
+# #
+# Minimum and Maximum Values for Operand Ranges #
+# #
+# Parameters: (multiple - all integer type) #
+# #
+# Operand limits can be set to any integer up to the #
+# value of 'max_answer'. Tuxmath will generate questions #
+# for every value in the specified range. The maximum must #
+# be greater than or equal to the corresponding minimum #
+# for any questions to be generated for that operation. #
+# Defaults are 0 for minima and 12 for maxima. #
+# #
+# Note: 'allow_negatives' must be set to 1 for negative #
+# values to be accepted (see 'Advanced Options'). #
+############################################################
+
+# Addition operands:
+# augend + addend = sum
+
+min_augend = 0
+max_augend = 12
+min_addend = 0
+max_addend = 12
+
+# Subtraction operands:
+# minuend - subtrahend = difference
+
+min_minuend = 0
+max_minuend = 12
+min_subtrahend = 0
+max_subtrahend = 12
+
+# Multiplication operands:
+# multiplier * multiplicand = product
+
+min_multiplier = 0
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+
+# Division operands:
+# dividend/divisor = quotient
+
+min_divisor = 0
+max_divisor = 12
+min_quotient = 0
+max_quotient = 12
+
+# Typing practice:
+
+min_typing_num = 0
+max_typing_num = 12
+
+
+############################################################
+# #
+# General Game Options #
+# #
+# Parameter: use_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_music (boolean) #
+# Default: 1 #
+# Parameter: fullscreen (boolean) #
+# Default: 1 #
+# Parameter: demo_mode (boolean) #
+# Default: 0 #
+# Parameter: use_keypad (boolean) #
+# Default: 0 #
+# Parameter: allow_pause (boolean) #
+# Default: 0 #
+# Parameter: use_igloos (boolean) #
+# Default: 1 #
+# Parameter: save_game_summary (boolean) #
+# Default: 1 #
+# #
+# These parameters control various aspects of Tuxmath's #
+# not directly related to the math question to be asked. #
+############################################################
+
+# Use game sounds and background music if possible:
+use_sound = 1
+menu_sound = 1
+menu_music = 1
+
+# Use fullscreen at 640x480 resolution instead of
+# 640x480 window. Change to 0 if SDL has trouble with
+# fullscreen on your system:
+fullscreen = 1
+
+# Display jpg images for background:
+use_bkgd = 1
+
+# Run Tuxmath as demo (i.e. without user input):
+demo_mode = 0
+
+# Display onscreen numeric keypad - allows mouse-only
+# gameplay or use with touchscreens:
+use_keypad = 0
+
+# Allow 'Pause' feature - should disable this
+# when competing for high scores!
+allow_pause = 1
+
+# Use newer graphics where Tux defends igloo-
+# dwelling penguins (for those who find the older
+# images of exploding cities to be distasteful)
+use_igloos = 1
+
+# By default, Tuxmath saves summaries of the last
+# ten games in the user's .tuxmath directory. Set
+# this parameter to '0' to turn off.
+save_summary = 1
+
+
+
+############################################################
+# #
+# Advanced Options #
+# #
+# The remaining settings further customize Tuxmath's #
+# behavior. Most users will probably not change them. #
+############################################################
+
+
+############################################################
+# #
+# Advanced Math Question List Options #
+# #
+# Parameter: question_copies (integer) #
+# Default: 1 #
+# Parameter: repeat_wrongs (boolean) #
+# Default: 1 #
+# Parameter: copies_repeated_wrongs (integer) #
+# Default: 1 #
+# #
+# These settings offer further control over the question #
+# list and are generally only useful if 'play_through_list'#
+# is enabled (as it is by default). #
+# #
+# 'question_copies' is the number of times each question #
+# is put into the initial list. It can be 1 to 10. #
+# #
+# 'repeat_wrongs' determines whether questions the player #
+# failed to answer correctly will be asked again. #
+# #
+# 'copies_repeated_wrongs' gives the number of times a #
+# missed question will reappear. This can be set anywhere #
+# from 1 to 10. #
+# #
+# The defaults for these values result in a 'mission' #
+# for Tux that is accomplished by answering all #
+# questions correctly with at least one surviving city. #
+############################################################
+
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+
+############################################################
+# #
+# Math Question Formats #
+# #
+# The 'format_<op>_answer_<place> options control #
+# generation of questions with the answer in different #
+# places in the equation. i.e.: #
+# #
+# format_add_answer_last: 2 + 2 = ? #
+# format_add_answer_first: ? + 2 = 4 #
+# format_add_answer_middle: 2 + ? = 4 #
+# #
+# By default, 'format_answer_first' is enabled and the #
+# other two formats are disabled. Note that the options #
+# are not mutually exclusive - the question list may #
+# contain questions with different formats. #
+# #
+# The formats are set independently for each of the four #
+# math operations. All parameters are type 'boolean'. #
+############################################################
+
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+
+############################################################
+# #
+# Parameter: max_answer (integer) #
+# Default: 999 #
+# #
+# 'max_answer' is the largest absolute value allowed in #
+# any value in a question (not only the answer). Default #
+# is 999, which is as high as it can be set. It can be set #
+# lower to fine-tune the list for certain 'lessons'. #
+############################################################
+
+max_answer = 999
+
+############################################################
+# #
+# Parameter: max_questions (integer) #
+# Default: 5000 #
+# #
+# 'max_questions' is limit of the length of the question #
+# list. Default is 5000 - only severe taskmasters will #
+# need to raise it! #
+############################################################
+
+max_questions = 5000
+
+############################################################
+# #
+# Parameter: randomize (boolean) #
+# Default: 1 #
+# #
+# If 'randomize' selected, the list will be shuffled #
+# at the start of the game. Otherwise, the questions #
+# appear in the order the program generates them. #
+############################################################
+
+randomize = 1
+
+############################################################
+# #
+# Advanced Comet Speed Options #
+# #
+# Parameter: starting_comets (integer) #
+# Default: 2 #
+# Parameter: extra_comets_per_wave (integer) #
+# Default: 2 #
+# Parameter: max_comets (integer) #
+# Default: 10 #
+# Parameter: speed (float) #
+# Default: 1.00 #
+# Parameter: max_speed (float) #
+# Default: 10.00 #
+# Parameter: speedup_factor (float) #
+# Default: 1.20 #
+# Parameter: bonus_comet_interval (integer) #
+# Default: 10 #
+# Parameter: bonus_speed_ratio (float) #
+# Default: 1.50 #
+# Parameter: slow_after_wrong (bool) #
+# Default: 0 #
+# #
+# (for 'feedback' speed control system): #
+# Parameter: danger_level (float) #
+# Default: 0.35 #
+# Parameter: danger_level_speedup (float) #
+# Default: 1.1 #
+# Parameter: danger_level_max (float) #
+# Default: 0.9 #
+# Parameter: city_explode_handicap (float) #
+# Default: 0 #
+# #
+# The comet number parameters and initial/max speed apply #
+# whether or not the feedback system is activated. #
+# #
+# 'speedup_factor' and 'slow_after_wrong' only apply if #
+# feedback is not activated. #
+# #
+# The 'danger_level_*' and 'city_explode_handicap' #
+# parameters are only used if feedback is activated. #
+############################################################
+
+
+# Number of comets for first wave. Default is 2.
+starting_comets = 2
+
+# Comets to add for each successive wave. Default is 2.
+extra_comets_per_wave = 2
+
+# Maximum number of comets. Default is 10.
+max_comets = 10
+
+# Starting comet speed. Default is 1.
+speed = 1.00
+
+# Maximum speed. Default is 10.
+max_speed = 10.00
+
+# 'speedup_factor': If feedback is not used but
+# 'allow_speedup' is enabled, the comet speed will be
+# multiplied by this factor with each new wave.
+# Values from 0.5 to 2 are accepted (note that a
+# value less than 1 causes the comets to be
+# slower with each wave!).
+# Default is 1.2 (i.e. 20 percent increase per wave)
+
+speedup_factor = 1.20
+
+# 'bonus_comet_interval' controls how frequently
+# special comets appear that cause a igloo to be
+# rebuilt if answered correctly. The bonus comet
+# appears after this number of regular comets (a
+# value of 0 disables bonus comets). Default is 10.
+bonus_comet_interval = 10
+
+# 'bonus_speed_ratio' determines how fast the
+# bonus comets fall relative to the regular comets.
+# Range 1.0 - 3.0, default 1.5:
+bonus_speed_ratio = 1.50
+
+# 'slow_after_wrong' tells Tuxmath to go back to
+# starting speed and number of comets if the player misses
+# a question. Useful for smaller kids. Default is 0.
+
+slow_after_wrong = 0
+
+# (Feedback) Set the desired danger level.
+# 0 = too safe, comets typically exploded at the very top
+# 1 = too dangerous, comets typically exploded as they
+# hit cities. Set it somewhere between these extremes. As
+# a guideline, early elementary kids might prefer
+# 0.2-0.3, older kids at around 0.4-0.6. Default 0.35.
+
+danger_level = 0.35
+
+# (Feedback) Set danger level speedup.
+# The margin of safety will decrease by this factor each
+# wave. Default 1.1. Note 1 = no increase in danger level.
+
+danger_level_speedup = 1.10
+
+# (Feedback) Set the maximum danger level.
+# Default 0.9.
+danger_level_max = 0.90
+
+# (Feedback) Set the handicap for hitting cities.
+# When bigger than 0, this causes the game to slow down
+# by an extra amount after a wave in which one or more
+# cities get hit. Note that this is similar to
+# 'slow_after_wrong', but allows for more gradual
+# changes. Default 0 (no extra handicap).
+
+city_explode_handicap = 0.00
+
+# if keep_score is false, score will not be displayed in-game
+# default true
+
+keep_score = 1
+
+############################################################
+# #
+# Managing User Settings #
+# #
+# Parameter: per_user_config (boolean) #
+# Default: 1 #
+# Parameter: homedir (string) #
+# Default: <none supplied> #
+# #
+# 'per_user_config' determines whether Tuxmath will look #
+# in the user's home directory for settings. Default is 1 #
+# (yes). If set to 0, the program will ignore the user's #
+# .tuxmath file and use the the global settings in the #
+# installation-wide config file. #
+# #
+# 'homedir' allows you to specify the location to look for #
+# user home directories. You probably do not want to #
+# specify this unless all users share the same login #
+# account. See the README for details on configuration. #
+# To enable this feature, remove the '#' comment mark and #
+# set the path as desired. #
+# #
+# These settings cannot be changed by an ordinary user, as #
+# they are ignored unless the config file is Tuxmath's #
+# global config file. Thus, users cannot 'lock themselves #
+# out' by accidentally setting per_user_config to 0. #
+############################################################
+
+per_user_config = 1
+# homedir = /servervolume/tuxmath_users
diff --git a/data/sounds/Makefile.am b/data/sounds/Makefile.am
new file mode 100644
index 0000000..552eaf4
--- /dev/null
+++ b/data/sounds/Makefile.am
@@ -0,0 +1,20 @@
+## Makefile.am for tuxmath - data/sounds:
+## Process with Automake to create Makefile.in
+
+soundsdir = $(pkgdatadir)/sounds
+
+dist_sounds_DATA = alarm.wav \
+ buzz.wav \
+ cheer.wav \
+ explosion.wav \
+ game2.mod \
+ game3.mod \
+ game.mod \
+ harp.wav \
+ laser.wav\
+ pop.wav \
+ shieldsdown.wav \
+ sizzling.wav \
+ tock.wav \
+ towerclock.wav \
+ tuxi.ogg
diff --git a/data/sounds/alarm.wav b/data/sounds/alarm.wav
new file mode 100644
index 0000000..8b066b5
Binary files /dev/null and b/data/sounds/alarm.wav differ
diff --git a/data/sounds/buzz.wav b/data/sounds/buzz.wav
new file mode 100644
index 0000000..da4dd13
Binary files /dev/null and b/data/sounds/buzz.wav differ
diff --git a/data/sounds/cheer.wav b/data/sounds/cheer.wav
new file mode 100644
index 0000000..8faeaaf
Binary files /dev/null and b/data/sounds/cheer.wav differ
diff --git a/data/sounds/explosion.wav b/data/sounds/explosion.wav
new file mode 100644
index 0000000..a7cdfe0
Binary files /dev/null and b/data/sounds/explosion.wav differ
diff --git a/data/sounds/game.mod b/data/sounds/game.mod
new file mode 100644
index 0000000..e9f39c4
Binary files /dev/null and b/data/sounds/game.mod differ
diff --git a/data/sounds/game2.mod b/data/sounds/game2.mod
new file mode 100644
index 0000000..af34053
Binary files /dev/null and b/data/sounds/game2.mod differ
diff --git a/data/sounds/game3.mod b/data/sounds/game3.mod
new file mode 100644
index 0000000..2e72978
Binary files /dev/null and b/data/sounds/game3.mod differ
diff --git a/data/sounds/harp.wav b/data/sounds/harp.wav
new file mode 100644
index 0000000..06ba8bf
Binary files /dev/null and b/data/sounds/harp.wav differ
diff --git a/data/sounds/laser.wav b/data/sounds/laser.wav
new file mode 100644
index 0000000..13b6718
Binary files /dev/null and b/data/sounds/laser.wav differ
diff --git a/data/sounds/pop.wav b/data/sounds/pop.wav
new file mode 100644
index 0000000..eee9e64
Binary files /dev/null and b/data/sounds/pop.wav differ
diff --git a/data/sounds/shieldsdown.wav b/data/sounds/shieldsdown.wav
new file mode 100644
index 0000000..a309252
Binary files /dev/null and b/data/sounds/shieldsdown.wav differ
diff --git a/data/sounds/sizzling.wav b/data/sounds/sizzling.wav
new file mode 100644
index 0000000..ad04feb
Binary files /dev/null and b/data/sounds/sizzling.wav differ
diff --git a/data/sounds/tock.wav b/data/sounds/tock.wav
new file mode 100644
index 0000000..3dd572d
Binary files /dev/null and b/data/sounds/tock.wav differ
diff --git a/data/sounds/towerclock.wav b/data/sounds/towerclock.wav
new file mode 100644
index 0000000..9243f6b
Binary files /dev/null and b/data/sounds/towerclock.wav differ
diff --git a/data/sounds/tuxi.ogg b/data/sounds/tuxi.ogg
new file mode 100644
index 0000000..27f7506
Binary files /dev/null and b/data/sounds/tuxi.ogg differ
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644
index 0000000..6d24a4b
--- /dev/null
+++ b/doc/CMakeLists.txt
@@ -0,0 +1,18 @@
+# Install the documentation
+
+if (UNIX)
+ if (APPLE)
+ # The MACOSX_PACKAGE_LOCATION source file property doesn't seem to
+ # work, so just do this by an explicit install command.
+ set (DESTDIR "${TuxMath_BINARY_DIR}/src/${TUXMATH_DATA_PREFIX}/doc")
+ else (APPLE)
+ # This sets it relative to the install location (usually /usr/local/)
+ set (DESTDIR "doc/tuxmath")
+ endif (APPLE)
+ install (DIRECTORY .
+ DESTINATION ${DESTDIR}
+ PATTERN Makefile* EXCLUDE
+ PATTERN .svn EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE
+ PATTERN *~ EXCLUDE)
+endif (UNIX)
diff --git a/doc/COPYING_GPL2 b/doc/COPYING_GPL2
new file mode 100644
index 0000000..60549be
--- /dev/null
+++ b/doc/COPYING_GPL2
@@ -0,0 +1,340 @@
+ 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.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <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) 19yy 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.
diff --git a/doc/COPYING_GPL3 b/doc/COPYING_GPL3
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/doc/COPYING_GPL3
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. 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
+them 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 prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. 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.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey 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;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If 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 convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU 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 that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ 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.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+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.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state 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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program 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, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/doc/GPL_VERSIONS b/doc/GPL_VERSIONS
new file mode 100644
index 0000000..ae00a35
--- /dev/null
+++ b/doc/GPL_VERSIONS
@@ -0,0 +1,9 @@
+NOTE concerning GPL versions used in this program:
+
+Tuxmath has historically been understood by the core developers to be licensed under "GPL version 2 or greater", although the actual copyright/license notices in some of the individual source code files are sloppy or missing. Also, a few of the files say "GPL version 3 or greater". It appears that some of the GPL 3 notices are intentional, while others were inadvertant boilerplate introduced by development tools. We are currently discussing whether to move the project as a whole to "GPL v3 or greater". As far as I know, no one has expressed a desire to keep any code "GPL 2 only". Tuxmath has many contributors, and I want to hear from as many authors a possible before I go slapping copyright notices on other people's code.
+
+So, while the sloppiness in the individual file notices is regrettable (and will be addressed in due course), I feel very confident in saying that all of the original code is either GPLv2+ or GPLv3+, which means the program when built as a whole is licensed under GPL version 3.
+
+Hopefully, all these loose ends will be tidied up in the near future and we will have a consensus on this issue.
+
+David Bruce <davidstuartbruce at gmail.com>
diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt
new file mode 100644
index 0000000..04d2899
--- /dev/null
+++ b/doc/INSTALL.txt
@@ -0,0 +1,430 @@
+INSTALL.txt for "Tux, Of Math Command" (aka "Tuxmath")
+Version 1.8.0
+
+March 12, 2009
+
+For users
+---------
+
+This document is mostly about building TuxMath on your own
+computer. If you just want to download a working copy of the program,
+then you might want to consider pre-built versions.
+
+For Linux: your distribution probably already has packages available.
+Your distributor probably has a graphical way to install tuxmath.
+Alternatively, you can use the command line to install it. For
+example, with Debian systems you can say "apt-get install tuxmath" and
+you're done.
+
+The openSUSE Build Service now has extremely up-to-date builds of TuxMath
+for most rpm-based distributions (all recent openSUSE versions, Mandriva 2008
+and 2009, Fedora 9 and 10) that can be found via http://software.opensuse.org/search
+by searching for "tuxmath" (btw, TuxType is available there, too). Preliminary
+developer builds will have "tuxmath_preview" in the package name instead of just
+"tuxmath", but all are available to everyone.
+
+For Windows/Macs: visit http://tux4kids.alioth.debian.org (note that
+http://www.tux4kids.com should also work), click on "Released
+Files," and find the most recent package for your platform. You will
+not need the source code packages. Save the package on your
+harddrive and double-click on the icon.
+
+Also, Mac users interested in free/open source software should strongly consider
+the MacPorts project (http://www.macports.org). MacPorts is a package manager
+for over 5000 free software programs for the Mac. Both TuxMath and TuxType are
+included in MacPorts. Once MacPorts is installed (a simple
+dmg file), it is extremely easy to automatically get the latest version of TuxMath.
+Be aware, however, that MacPorts does require installation of Apple's XCode
+developer tools, which are free but a very big download.
+
+The remainder of this document is for people who want to compile TuxMath
+themselves on their own computers.
+
+
+Requirements
+------------
+
+Operating System
+----------------
+
+"Tux, of Math Command" ("TuxMath" for short) requires a computer and operating
+system supported by libSDL. At the time this document was written, this
+included:
+
+ Linux
+ Windows 32-bit
+ MacOSX
+ FreeBSD
+ BeOS/Haiku
+
+In principle, Tuxmath should build and run on any platform with SDL, including:
+
+ Solaris
+ IRIX
+ Other *BSDs
+
+However, I do not know if anyone has done a current build on these systems.
+(as of Jan 2009, OpenSolaris does not have all the needed SDL libs -DSB)
+
+CPU
+---
+
+Any machine from the last decade should easily handle TuxMath - when first
+written, the minimum suggested CPU was a 90 MHz Pentium. Now that higher
+screen resolutions are supported, the increased drawing is likely a bit more
+demanding, but nothing compared to a modern 3D game. As a test, I have started
+10 instances of TuxMath on a mid-range 2009 desktop machine with no visible
+slowing.
+
+Slower machines will, however, haved a noticeable delay at program startup
+related to scaling of all the SVG images introduced in version 1.8.0.
+
+
+Video Display
+-------------
+
+By default, TuxMath displays fullscreen, as long as a 640x480 or greater
+resolution is supported by your system. Beginning with the 1.7.0 release,
+fullscreen mode runs at the native resolution of the operating system, rather
+than only 640x480. TuxMath can also display the game screen in a 640x480
+window. F10 toggles between these two modes.
+
+TuxMath prefers 32bpp (bits per pixel) color depth. Current builds have not
+been tested on systems that cannot provide this (AFAIK), but I believe SDL will
+make do with lower color depth if necessary.
+
+
+Sound Card
+----------
+
+TuxMath attempts to play stereo 16-bit sound and music at 44.1Khz, if
+possible. This should not be an issue on any computer from the last 15 years.
+
+Sound, however, is optional, and can be disabled at compile-time (see below) or
+run-time (see "README.txt" or the program's "--usage" display).
+
+
+Input Methods
+-------------
+
+The game is typically played using a keyboard. The numeric keypad portion of
+standard PC keyboards is supported (so if there are any stand-alone numeric
+keyboards with no other keys, they SHOULD work, too).
+
+Menus and options can be controlled with either the pointer or the keyboard's
+arrow keys.
+
+The game can also be played with a large, on-screen numeric keypad which can be
+accessed using the pointer (ie, a mouse, trackball, touch-screen monitor,
+touchpad, etc.). (See "README.txt" or the game's "--usage" display).
+
+
+Required Libraries
+------------------
+
+"Tux, of Math Command" uses the Simple DirectMedia Layer library (libSDL) to
+display graphics, receive keyboard and mouse input, and play sounds. (It was
+designed around libSDL version 1.2.5, but later 1.2.x versions should work.
+libSDL 1.3 will require source code adaptations in future versions of TuxMath
+when it is finally released).
+
+It uses the SDL helper library "SDL_image" to load the game's graphics data, as
+they are in PNG (Portable Network Graphic) format.
+
+Also, by default, it uses "SDL_mixer" to load and play the game's sound and
+music. This library is optional, but without it, the program will be
+completely silent.
+
+As of v1.5.8 (Linux), v1.6.0 (Windows), and v1.6.1(MacOSX),
+internationalization is supported using Gnu gettext and libiconv.
+
+TuxMath can use either SDL_Pango or SDL_ttf to display text. SDL_Pango is more
+capable and is required for right-to-left display (e.g. Arabic, Hebrew) and
+proper rendering of Indic and many other non-Western languages. Also,
+SDL_Pango takes care of font selection, so it eliminates the need for any
+bundled fonts. For these reasons, SDL_Pango is the default when available
+(Linux and the MacPorts build for MacOSX). If SDL_Pango is available, SDL_ttf
+is not needed (as of v1.7.2).
+
+As of v1.8.0, the Windows build finally provides SDL_Pango functionality.
+
+SDL_Pango is not yet in the CMake MacOSX build (the ones available for download
+from www.tux4kids.com), so the program still supports SDL_ttf. For testing
+purposes, TuxMath can be built without SDL_Pango by "./configure
+--without-sdlpango".
+
+Also, starting with v1.8.0, TuxMath uses librsvg2 to support Scalable Vector
+Graphics (SVG) images, mostly used so far in the menus. This require the
+librsvg2-dev package on Debian/Ubuntu.
+
+TuxMath v1.8.0 also requires SDL_net if the new LAN multiplayer mode is
+desired. As with SDL_Pango, there are configure-time scripts to build without
+SVG (--without-rsvg) or network (--without-sdlnet) support if these features
+are not desired or if the required libraries are unavailable.
+
+The executable Windows installer contains all needed libraries and the Andika
+font - nothing else should be needed that is not part of Windows. The *tar.gz
+source packages require the "*-dev" versions of SDL, SDL_image, SDL_mixer,
+SDL_ttf (and, optionally, SDL_Pango, SDL_net, and librsvg2) for building and
+installation. These are easily installed in most any GNU-Linux distribution.
+For Debian and its derivatives (including Ubuntu) type "aptitude search SDL" to
+find the exact package names, and install them with "sudo aptitude install".
+For Fedora and Red Hat derivatives, the "yum" tool works very similarly.
+
+The Andika font is also included in the "tuxmath_w_fonts-*" packages. You will
+definitely want this if building for a platform without SDL_Pango. If you have
+SDL_Pango, both the packages with and without fonts should work fine - the
+fonts will just take up a bit of space on your hard drive.
+
+Note: libSDL, SDL_image, SDL_ttf, SDL_mixer, SDL_Pango, and libiconv are all
+free, Open Source libraries, released under the GNU Lesser General Public
+License (LGPL).
+
+Getting SDL
+-----------
+
+On Linux, the easy way to get the required SDL packages is from your
+distribution's package manager (e.g. apt-get, yum, yast). See below, "Using SDL
+Packages".
+
+Alternatively (and by necessity on other platforms), you can download "libSDL,"
+"SDL_image," "SDL_ttf", and "SDL_mixer" from the SDL website and build these
+libs from source:
+
+http://www.libsdl.org/
+
+Specifically, the download pages for each are here:
+
+ libSDL: http://www.libsdl.org/download-1.2.html
+ SDL_image: http://www.libsdl.org/projects/SDL_image/
+ SDL_mixer: http://www.libsdl.org/projects/SDL_mixer/
+ SDL_ttf: http://www.libsdl.org/projects/SDL_ttf/
+ SDL_Pango: http://sourceforge.net/projects/sdlpango/
+ SDL_gfx: http://www.ferzkopp.net/Software/SDL_gfx-2.0/
+
+
+Using SDL Packages
+------------------
+
+When building "TuxMath" from source, if you decide to install the SDL libraries
+using packages (RedHat RPMs or DEBs), you'll need to install not only each
+library's 'binary' package, but ALSO each library's 'development' package.
+
+These contain the text "-devel" or "-dev" in the package name.
+
+Also note: Make sure you download the packages for the appropriate operating
+system and architecture (eg, an RPM for Linux/i386 for RedHat Linux on
+Intel-compatible computers).
+
+For example, on (K)Ubuntu Hardy, you could say:
+
+sudo apt-get install libsdl1.2debian-all libsdl1.2-dev libsdl-ttf2.0-0
+libsdl-ttf2.0-dev libsdl-pango1 libsdl-pango-dev libsdl-mixer1.2
+libsdl-mixer1.2-dev libsdl-image1.2 libsdl-image1.2-dev libsdl-net1.2-dev
+librsvg2-dev
+
+This should work for nearly any Debian variant.
+
+
+
+Compiling and Installing TuxMath
+--------------------------------
+
+Note: there are now two ways to build tuxmath from source. The first
+(and main method) is using autotools ("./configure && make && make
+install"). The second is to use CMake, which was developed to
+better-support Mac OS X.
+
+
+Linux/Unix
+----------
+
+Getting Tuxmath
+---------------
+
+You can build Tuxmath either with the latest Git checkout or using a
+convenient source tar.gz distribution package. The current website is:
+
+ http://tux4kids.alioth.debian.org
+ (http://www.tux4kids.com should point to the same site, although we are
+ certainly not "commercial")
+
+where you generally can find the latest tuxmath*tar.gz package.
+
+The Git repository is located at:
+
+ http://git.debian.org/git/tux4kids/tuxmath.git
+
+ or:
+
+ git://git.debian.org/git/tux4kids/tuxmath.git
+
+Compiling the Program: Automake (Linux)
+--------------------------------------
+
+If you are using a source tar.gz package (e.g., tuxmath_w_fonts-1.8.0-tar.gz),
+all you need to do is unpack the archive in a convient location and do a
+typical configure, make, and install. In other words, the tarball contains a
+complete "GNU Build System". Note, however, that you will need the "-dev"
+files for SDL, SDL_image, SDL_mixer, SDL_ttf/SDL_Pango, and SDL_net & librsvg2,
+if desired.
+
+(NOTE: -If you have built other packages from source, your system is virtually
+certain to already contain the other standard libs used at compile or run time.
+If you haven't built anything before, you might need to install some other
+packages. Notably, on Ubuntu the needed tools are included in a package called
+"build-essential").
+
+For example:
+
+tar -xzf tuxmath_w_fonts-1.8.0-tar.gz
+cd tuxmath_w_fonts-1.8.0
+./configure
+make
+make install. (you might need "su" or "sudo" for this)
+
+Note: the build now uses SDL_Pango by default - the "enable-sdlpango" switch is
+no longer needed. We now have a "--without-sdlpango" option for testing
+purposes. If your build environment lacks SDL_Pango, TuxMath will be built
+using SDL_ttf instead.
+
+If you use a Git clone, you will need to generate the configure script.
+Tuxmath uses the Gnu Autoconf/Automake tools for development. You will Autoconf
+2.61 or later, Automake 1.10 or later, and Gnu Gettext 0.16 or later, in
+addition to the libs needed for the build itself. Run Autoconf's "autoreconf"
+to generate the configure script, Makefile.in's, and friends, so the build
+process becomes:
+
+autoreconf --install;
+./configure;
+make;
+sudo make install
+
+Tuxmath supports "parallel" or "vpath" builds to avoid cluttering the source
+tree with object files, so a clean way would be (starting within the top
+level):
+
+mkdir build
+cd build
+autoreconf --install ..
+..configure
+make
+sudo make install
+
+(which is what I do).
+
+By default, the build process will install tuxmath under /usr/local/share for
+the data and /usr/local/bin for the executable, which is simply called
+"tuxmath".
+
+If you are using a deb or rpm-based distribution, your distro may have tuxmath
+in a prepared package, in which case your job is as simple as "apt-get install
+tuxmath", "yum install tuxmath", or using a GUI package manager.
+
+
+
+Compiling the Program: CMake (Linux & Mac OS X)
+----------------------------------------------
+
+The recommended procedure is to build out-of-source (equivalent to the
+"parallel" or "vpath" build for automake described above).
+
+From the top-level tuxmath directory, do the following:
+
+ mkdir build-cmake
+ cd build-cmake
+ cmake ..
+ make
+ make install
+
+By default, the CMake build includes support for SDL_Pango, if the
+library & its header can be found.
+
+On Mac OS X, this builds a static "intl" library (for internationalization
+support) and creates a .dmg file. Building requires the full gettext
+infrastructure; see below under "Mac OS X" for more details.
+
+(NOTE: the CMake build has not been tested for 1.8.0 and likely will have some
+problems related to new library dependencies).
+
+Windows
+-------
+
+Tuxmath can be cross-compiled for Windows under Linux. I have done this on my
+Debian system. Once the crossbuild environment is set up, the process is simple
+and nearly automatic.
+
+To package TuxMath into the executable installer, you will need the nsis
+package, which is free software available in major distributions (e.g. "sudo
+aptitude install nsis" for Debian).
+
+Starting with v1.8.0, the Windows cross-build uses the mingw-cross-env project
+(http://www.nongnu.org/mingw-cross-env). One very great advantage is that the
+entire build setup can be installed automatically instead of the very laborious
+process of downloading and building 15-20 libs by hand.
+
+Basically, go to the mingw-cross-env site listed above and follow the
+well-written directions to get the basic setup in place. When it is time to
+build all the libs, either just type "make" to build the entire collection (if
+you don't mind a long wait), or build just the libs we need with:
+
+$ make sdl sdl_mixer sdl_image sdl_net sdl_ttf sdl_pango librsvg
+
+(the libs that these libs depend on will be automatically built)
+
+If you put the cross-build setup in /usr/local/mingw-cross-env, and you are
+building from a git clone, you can simply cd to tuxmath's buildw32 directory
+and use the simple scripts there:
+
+$ ./tmwin.sh
+
+That's all - it should build a complete NSIS executable installer in the
+buildw32 directory. The new crossbuild is statically linked, so you wind up
+with quite a large executable (around 25M after decompression), but no dll's
+need to be included. Also, since SDL_Pango is supported, no fonts need to be
+bundled in.
+
+NOTE: As of this writing (11 Mar 2010), there are still some bugs that keep the
+tuxmath crossbuild from succeeding. Once these are resolved, it will work as
+described above - DSB.
+
+Installation on Windows:
+------------------------
+
+To install, simply execute the installer file on the Windows machine. Depending
+on the version of Windows and the computer's security settings, it may be
+necessary to install with administrator privileges in order to use the default
+installation location (C:\Program Files\Tuxmath). If you are not able to write
+to the default location, TuxMath can be installed in any writable location
+(i.e. "My Documents") and should function correctly. It can be run with
+ordinary user privileges, even if installed by the administrator.
+
+
+Mac OS X:
+----------------------------------
+
+There are several options for compiling on OS X. If you just want to do a
+local build, using macports (http://www.macports.org/) is perhaps the easiest
+approach: "port install tuxmath" and then wait. MacPorts can also build .dmg
+files with "port mdmg tuxmath". The MacPorts dmg files are very big because
+they include all the library dependencies, even things like the X server.
+
+To build a .dmg, another approach is to use CMake (described above under
+Linux/Unix). You will need to have both gettext and cmake installed on the
+build machine; using macports is the easiest way, "port install cmake gettext".
+
+"make install" will create the .dmg in the build directory.
+
+Finally, it is also possible to do the conventional "./configure; make; make
+install" if you have the required libraries.
+
+There is still an old XCode project file in the macosx/ directory, but this is
+not up-to-date. If you want to develop with XCode, your best bet might be to
+use CMake to create a new XCode project. See the CMake documentation for
+details.
+
+BeOS/Haiku:
+-----------
+
+(to be developed)
+
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..6ec15b3
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,13 @@
+## Makefile.am for tuxmath docs:
+## Process with AutoMake:
+
+dist_doc_DATA = changelog \
+ COPYING_GPL2 \
+ COPYING_GPL3 \
+ GPL_VERSIONS \
+ INSTALL.txt \
+ OFL.txt \
+ README_DATA_LICENSES.TXT \
+ README.txt\
+ TODO.txt
+
diff --git a/doc/OFL.txt b/doc/OFL.txt
new file mode 100644
index 0000000..1456c18
--- /dev/null
+++ b/doc/OFL.txt
@@ -0,0 +1,97 @@
+Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
+with Reserved Font Name <Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>),
+with Reserved Font Name <additional Reserved Font Name>.
+Copyright (c) <dates>, <additional Copyright Holder> (<URL|email>).
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/doc/README.txt b/doc/README.txt
new file mode 100644
index 0000000..5803837
--- /dev/null
+++ b/doc/README.txt
@@ -0,0 +1,829 @@
+"Tux, of Math Command" - an educational math tutorial game starring Tux,
+the Linux Penguin
+-----------------------------------------------------------------
+
+March 12, 2010
+
+For Tuxmath-1.8.0
+
+Objective ---------
+
+In "Tux, of Math Command," you play the part of Commander Tux, as he
+defends his friends from an attack of math equations. Comets are
+crashing towards the friendly penguins in their igloos, and you must
+destroy the comets by solving their equations.
+
+As of version 1.7.0, TuxMath also includes a completely new game
+activity, "Factoroids", which gives practice in factoring numbers and
+simplifying fractions, as well as zapping rocks floating through
+space.
+
+
+Installation
+------------
+
+For instructions on installing the game on your system, please read
+the "INSTALL.txt" file.
+
+
+Configuration
+-------------
+
+If multiple players are using a single account (e.g., a home computer
+that is always logged in, or a school setting in which all students
+have a single username), you may want to do some additional
+configuration---see below under "Configuring Multiple Users."
+
+
+Running The Program
+-------------------
+
+(Linux/Unix)
+------------
+
+Your distribution probably already has a
+menu entry for Tuxmath under the KDE or GNOME menus. If not,
+depending on your graphical interface or window manager, you can
+probably also create a clickable icon which will launch the game. See
+your interface's documentation or help screens for details.
+
+Alternatively, simply type the command "tuxmath" at a command prompt
+(eg, in an xterm). Many command-line options are supported, e.g
+"tuxmath -f" for fullscreen or "tuxmath -w" to run in a window.
+
+(Windows)
+---------
+
+Just double-click the "TuxMath.exe" icon or select "Tuxmath" in the
+Start Menu. The current installer creates menu items to run tuxmath
+either in Fullscreen mode or within a 640 x 480 window.
+
+Mac OSX
+-------
+
+Double-click the "tuxmath" icon.
+
+
+
+Program Navigation
+------------------
+
+Use the [UP] and [DOWN] arrow keys to select what you wish to do, and
+then press [ENTER / RETURN / SPACEBAR]. You can also type 'J' to move
+down or 'K' to move up, for those accustomed to certain text editors
+;). You can also use the mouse to click the menu item.
+
+Pressing [ESCAPE] will quit the program.
+
+Title Screen
+------------
+
+Play Alone: single player activities:
+-----------
+
+Math Command Training Academy: choose this to go to a list of over
+fifty prepared lessons, starting with simple typing of single digit
+numbers, and progressing to multiplication and division involving
+negatives and "missing number" questions (e.g. "-17 x ? = 119"). The
+player wins if the question list is completed successfully.
+Successfully completed lessons are indicated with a flashing gold
+star. From a math drill standpoint, the best way for teachers or
+parents to use TuxMath is to have kids work their way through all the
+lessons until all of the gold stars are obtained.
+
+Math Command Fleet Missions: choose this to be given a series of
+progressively more advanced missions tied together by a fun story
+line. The fate of the galaxy is in your hands!
+
+Play Arcade Game: use this to select from one of five open-ended,
+"Arcade Style" games, meaning the game play gets faster and faster as
+long as the player can keep up, with the goal being to get the highest
+score possible. The options include:
+
+ Space Cadet - simple addition.
+
+ Scout - addition and subtraction to ten.
+
+ Ranger - addition, subtraction, multiplication, and
+ division to ten.
+
+ Ace - all four operations with operands to 20, including
+ negative numbers and "missing number" type questions.
+
+ Commando - all of above plus multiple operands - e.g. -3 x ? + 14 = 2
+
+If you make one of the top ten scores for the difficulty level, you
+get to enter your name in the TuxMath Hall of Fame!
+
+Play Custom Game: use this to play a game based on the config file in
+the player's home directory (see below). At some point, the options
+will be settable from within the game.
+
+Network Game:
+------------------
+
+Tuxmath now provides head-to-head competition over a local area
+network! All players see the same questions, and whoever answers first
+gets the points for that question. The game play is cooperative,
+however, in that all participating players help defend all the igloos.
+Up to 16 players can participate in a single game (this can be
+increased extremely simply with a recompilation, if desired).
+
+To set up network play, the tuxmath server program needs to be
+started. Simply go to Network Game->Run Server and follow the
+directions. You just need to type in a name to identify the server to
+players (such as "Tux Server"). If we are able to use threads on your
+platform, you will also be prompted to pick the lesson file to be used
+by the server.
+
+Once the server is running, players can connect by going to Network
+Game->Join Game. TuxMath should automatically detect the server if it
+is running on the local network. The player will be asked to enter a
+nickname, then click an arrow to indicate that he/she is ready to
+start. When everyone has indicated that they are ready, the game will
+start.
+
+Note that while network play is functional, it needs more testing, and
+some aspects have not yet been addressed:
+
+- If the server program is running on more than one computer on the
+ local network, TuxMath will get confused and not connect.
+
+- While a network game is in progress, do not play a non-network game
+ on the same computer - this will also confuse TuxMath (because
+TuxMath is not yet "thread-safe"). However, it is fine to participate
+in the network game from that computer. Also, don't quit the program
+with the server while others are still playing a network game! This
+problem actually only occurs when we use threading to run the server,
+meaning everything except Windows. On Windows, the server runs as a
+separate program. The drawback is that you may leave the server
+running by accident, so you have to go into Task Manager to kill it
+when you don't want it running anymore.
+
+- It is also possible to run the server as a separate program on all
+ platforms by typing "tuxmathserver" at the command line. This
+avoids any issues with thread-safety, but for now the server will only
+use the default question list settings if launched this way.
+
+
+Play With Friends:
+------------------
+
+Compete with your friends by playing in a turns-based fashion! The
+math difficulty levels are the same as for the "Arcade" games. Note
+that this involves rotating play at a single computer rather than
+network play, as described above.
+
+Factoroids!
+-----------
+
+TuxMath now includes an entire new video game! Factoroids combines
+math drill in factoring and fraction simplification, with video skill
+in shooting the floating asteroids before they smash the ship. The
+ship is maneuvered with the arrow keys in the traditional fashion:
+
+ R arrow - rotate clockwise
+ L arrow - rotate counterclockwise
+ Up arrow - thrust
+ Enter or Space - shoot
+
+Factors: to shoot a rock, first type in one of its factors, then fire.
+Prime numbers can simply be blasted without entering any number.
+
+Fractions: type in a number that can simplify the fraction (i.e. a
+common factor of the numerator and denominator). For example, 7/70
+could be simplified by shooting it with the number 7.
+
+Help: this offers a short tutorial to teach game play for the main comet game.
+----
+
+More Options:
+-------------
+
+This will be developed into the menus to set options not directly
+related to math questions, such as toggling the music on and off,
+playing fullscreen vs. windowed, using cities vs. igloos, and the
+like. Now it just has the "Demo" mode, as well as credits and project
+information.
+
+
+
+How To Play
+-----------
+
+One of the best ways to get started is by choosing the "Help" option
+in the main menu. This offers a tutorial for basic play. There are
+some additional features described below.
+
+Destroying Comets
+-----------------
+
+As the comets fall towards your friends, you must solve the equations.
+
+To destroy it:
+--------------
+
+First, figure out the answer to the equation. For example, "3 x 4 =
+?" would be "12"
+
+Second, type in the answer. As you type numbers on the keyboard, they
+will appear in the "LED"-style display on Tux's flat-panel monitor.
+If negative answers are enabled, there will be a fourth place in the
+LED display for the minus sign. The '-' and '+' keys will toggle the
+minus sign on and off, respectively.
+
+Finally, press [ENTER / RETURN] or [SPACE].
+
+
+The comet that has the number you entered as its answer will be shot
+down by Tux!
+
+Note: Sometimes more than one comet will have the same answer. In
+this case, the lowest comet will be destroyed.
+
+Note: After typing [ENTER / RETURN], the "LED"-style display will
+automatically reset to "000" for you, so you can answer the next
+equation!
+
+
+Correcting Your Answer
+----------------------
+
+If you made a mistake as you typed in your answer, you can press
+[BACKSPACE / DELETE] and the "LED"-style display at the top center of
+the screen will reset to "000".
+
+
+Using the On-Screen Keypad
+--------------------------
+
+If you launched the program with the "--keypad" (or "-k") option, the
+game screen will also have a numeric keypad on the center of the
+screen. (It has a similar layout to most keyboard number pads and
+calculators.)
+
+Using the mouse pointer to click on the on-screen buttons acts just
+like typing numbers on the keyboard.
+
+This feature could be useful for computers with touchscreens, or for
+players who cannot use a keyboard.
+
+
+Advancing Waves
+---------------
+
+When all the comets are destroyed for one wave, the player advances to
+the next. The level of difficulty generally increases with each
+level. On Training Academy lessons, the program "learns" from the
+player to try to adjust the difficulty, and may decrease if the player
+has lost one or more igloos (see below).
+
+
+Losing An Igloo or City
+-----------------------
+
+The default setting is to play with igloo-dwelling penguins. If a
+comet reaches the igloo, the igloo is partially melted. A second hit
+melts the igloo the rest of the way, and the saddened penguin trudges
+off the screen.
+
+If cities are used (by placing "use_igloos = 0" in the config file and
+selecting "Play Custom Game"), game play is the same. The first comet
+strike deactivates the city's shields, and the second hit destroys the
+city. If this seems too scary or violent, please use the penguin/igloo
+theme!
+
+
+Regaining Igloos/Cities
+-----------------------
+
+When a question is answered correctly, the player earns progress
+toward a bonus comet that allows an igloo or city to be rebuilt.
+Progress is indicated with a green bar in the upper left corner of the
+screen. The bonus comet is red and moves faster than regular comets.
+If the player shoots down the bonus comet, a "snowstorm" image appears
+in place of the bonus progress bar, and one of the igloos/cities will
+be rebuilt after the current wave.
+
+
+Ending The Game
+---------------
+
+The default mode is now to play through a defined list of questions.
+This mode is used in the "Training Academy" games. For "Custom"
+games, it can be selected by setting the config file
+'play_through_list' parameter to 1 ('yes' or 'true'), or via the
+"--playthroughlist" command line argument. The list is generated by
+TuxMath based on a series of selectable parameters (selected math
+operations, number ranges, etc). By default, the questions are asked
+in a random order. If answered correctly, they are removed. A
+question that is not answered correctly (allowing the comet to destroy
+its target) will reappear in random order. If all questions are
+successfully answered before the igloos or cities have been destroyed,
+the player wins and a "victory" screen is displayed.
+
+Arcade-style play is also supported, in which the game continues until
+you lose all of your igloos or cities. A GAME OVER screen is then
+displayed. If you use one of the standard Arcade games, you'll have
+the opportunity to put your name in a high-score table. For the
+"Custom" games, you can select this mode by setting
+'play_through_list' to '0' ('no', 'false', 'off').
+
+By pressing Esc or clicking on the red circle in the upper right
+corner, you can quit the game.
+
+Shortcut Keys
+-------------
+
+The following shortcuts are supported during game play:
+
+ 'F10': switches between windowed and full-screen display mode.
+ 'P' or 'Tab': pauses the game, if allowed. The included "Math Command
+ Training Academy" lessons allow pausing, while the "Arcade"
+ games do not.
+ Up Arrow: increase speed by 20%, if allowed.
+ Down Arrow: decrease speed by 20%, if allowed. Speed changes
+ are allowed when pausing is enabled.
+ 'Esc': leave current game and display the menu.
+
+
+
+Setting Game Options
+--------------------
+
+The "Options" system remains in need of an overhaul. For now, you can
+play the pre-packaged "Lesson" or "Arcade" games, or edit the options
+file to create a "Custom" game. At some point the "Custom" settings
+will be modifiable from within TuxMath.
+
+1. The program reads and writes the settings to disk in a
+human-readable fashion, where they can be modified with a text editor.
+The file contains extensive comments describing all settings. By
+editing and saving this file, very extensive control over the program
+is supported, particularly with respect to generation of math
+questions. There really is no need to use command-line options any
+more.
+
+On Unix/Linux (non-Mac): the file is created in the user's home
+directory within a directory called ".tuxmath" and is simply called
+"options". As an example, a user "laura" on a Unix/Linux system would
+find this at /home/laura/.tuxmath/options.
+
+On Macs: the file can be found under tuxmath/Contents/Resources.
+
+On a Windows XP or Windows 2000 system, the config file is called
+"options.txt" and is located at C:\Documents And
+Settings\USER\Application Data\TuxMath\options.txt, where USER is the
+login of the current user. Note that 'Application Data' is hidden by
+default by the operating system.
+
+2. Many command-line options are supported (see below).
+
+
+Setting Administrative Options
+------------------------------
+
+"Tux, of Math Command" allows parents/teachers to control whether the
+game options can be changed by the player.
+
+The game options are first read from a master config file in the
+program's data directory (/usr/local/share/tuxmath/missions/options on
+*nix if installed using "make install"), then overridden by the user's
+own /.tuxmath/options file if "per_user_config" is selected in the
+master options file. If "per_user_config" is deselected, the game
+starts up with the master settings. (This is somewhat under
+construction).
+
+
+Game Summary Files: Tracking Players' Performance
+-------------------------------------------------
+
+"Tux, of Math Command" saves summaries of the last ten games in the
+player's .tuxmath directory. The files are named "summary1" through
+"summary10", with "summary1" the most recent. The files includes lists
+of questions asked and questions missed, along with the numbers of
+correct and incorrect answers and the percent correct and information
+about how long a given question was typically displayed on the screen
+before it was answered.
+
+In addition to these summary files, there is also a log.csv file that
+contains a one-line summary of each attempted mission (the user must
+have answered at least one question to count as an attempt). This
+file can be imported into a spreadsheet program (OpenOffice.org calc,
+Microsoft Excel, KSpread, Gnumeric, Google Docs, etc.) to examine or
+chart child progress.
+
+
+Using Multi-User Configuration: Some Tips for Teachers
+------------------------------------------------------
+
+Your school's computer administrator can configure TuxMath so that
+students "log in" when they first start playing (see below). Students
+will then have their own personalized gold star records, and summary
+and log files (described immediately above) will be saved for each
+student individually.
+
+If you want to test TuxMath yourself without "contaminating" the
+records in a student account, hold down the control key ("Ctrl") when
+you click on the menu entry corresponding to you and your classroom.
+Then you will be playing "as yourself."
+
+
+Configuring Multiple Users
+--------------------------
+
+In some cases, the user's log-in name is not very informative: an
+example is when schools use a single username "student" for all
+students in the school. It is possible to set up TuxMath so that it
+asks students to "log in" (without any password) when they first start
+the game. This will insure that all gold stars, options, and game
+summary files will be stored in a location specific to each user.
+
+Setting this up is fairly simple. There are two ways to do it:
+manually and using a separate program "tuxmathadmin". The first two
+steps are the same either way:
+
+1. Decide where you want this information stored. You might want to
+put it on a central server. In the appropriate place (let's say it's
+"/servervolume/"), create a directory which for current purposes we'll
+call "tuxmath_users".
+
+2. Set it up so that tuxmath automatically finds the user directory
+tree. Find the global configuration file (e.g., under Linux it would
+usually be /usr/local/share/tuxmath/missions/options; on Mac OSX it is
+a file called "options" in the .dmg bundle). Set the "homedir"
+property (at the very end of the file) to point to your home directory
+tree. Make sure you uncomment (remove the "#" symbol) from that line.
+
+Be aware that you can also employ the command line option "--homedir
+/severvolume/tuxmath_users" (along with any other options) upon
+launching tuxmath. An individual classroom could make use of this
+school-wide service by specifying (in the option-file syntax) homedir
+= /servervolume/tuxmath_users/2nd\ grade/Mrs.\ Johnson so that
+students in a particular classroom only have to choose among their own
+class and not go through the full login "tree".
+
+If you are using tuxmathadmin, here are the remaining steps:
+
+3. Using a spreadsheet program, create a spreadsheet that reflects the
+way you want to organize the login system. The following example
+should illustrate the syntax (try viewing this with a fixed-width font
+if the spacing is unclear):
+
+ Col 1 Col 2 Col 3
+ 1st Grade
+ Mr. Jones
+ KidA
+ KidB
+ KidC
+ Mrs. Smith
+ Kid1
+ Kid2
+ 2nd Grade
+ Mrs. Wilson
+ Kid a
+ Kid b
+ Kid c
+ Kid d
+
+ This indicates that three kids (named "KidA", "KidB", and
+ "KidC") are in Mr. Jones' 1st grade class; two kids ("Kid1"
+ and "Kid2") are in Mrs. Smith's 1st grade class, and there are
+ 4 in Mrs. Wilson's 2nd grade class. The school presumably has
+ more kids and more classrooms than this, but this is a short
+ example intended to illustrate the organization of the file.
+
+ Note that it's flexible: you don't have to divide things by
+ grade, teacher, and kid; you could just do teacher & kid, or
+ just kids, or you could do something even more complicated
+ ("East Campus", "1st grade", etc.). If you were just wanting
+ to set things up for home use with a single login you could
+ just list the names of your kids in a single column and that
+ would be it.
+
+ Save the spreadsheet as a comma-separated-value file (.csv
+ file). In case you have to prepare it manually (say, with a
+ text editor) the resulting CSV file would look like this:
+
+ "1st Grade",,
+ ,"Mr. Jones",
+ ,,"KidA"
+ ,,"KidB"
+ ,,"KidC"
+ ,"Mrs. Smith",
+ ,,"Kid1"
+ ,,"Kid2"
+ "2nd Grade",,
+ ,"Mrs. Wilson",
+ ,,"Kid a"
+ ,,"Kid b"
+ ,,"Kid c"
+ ,,"Kid d"
+
+4. Create the directory hierarchy with the following command (executed
+from the command line, aka shell):
+
+ tuxmathadmin --createhomedirs userfile.csv
+
+ OR
+
+ tuxmathadmin --path /servervolume/tuxmath_users --createhomedirs userfile.csv
+
+(use the 2nd syntax if you haven't updated the global configuration
+file yet as in step 2 above). Here, "userfile.csv" is the name of the
+file that you created in the previous step. It should tell you that
+it's creating all the user directories and complete without error.
+Note that "tuxmathadmin -h" gives help, including a list of the things
+that tuxmathadmin can do.
+
+5. Optionally, in the "tuxmath_users" directory you can also create a
+file that poses a question at each step of the hierarchy. For the
+example above, it might contain three lines:
+
+ Choose your grade:
+ Choose your teacher:
+ Who are you?
+
+You need to save this as a raw text file with the name
+"user_login_questions" ("user_login_questions.txt" on Windows) in the
+top level of the user hierarchy directory
+(/servervolume/tuxmath_users). If you omit this file, then students
+will simply be presented with the list without any kind of prompt.
+
+6. Decide on how you want users to compete for high scores. For the
+example above, suppose you want each student to compete against the
+other kids in their same classroom. You would configure this with the
+following command:
+
+ tuxmathadmin --confighighscores --level 3
+
+"tuxmathadmin -h" gives detail about the meaning of the choices of
+different levels.
+
+7. Optionally, at least under Linux (and probably other OSes) you can
+also configure certain tasks to run automatically using "cron." For
+example, if you want to clear all the students' gold stars on a daily
+basis, you can put a script that executes
+
+ tuxmathadmin --cleargoldstars
+
+in the /etc/cron.daily directory. See the cron documentation for more
+detail. You may also want to run tuxmathadmin with --consolidatelogs
+to generate daily reports (see below).
+
+If you instead choose to configure TuxMath manually, these are the steps:
+
+3. In tuxmath_users, create a text file called "user_menu_entries."
+This file contains the list of choices that students will be presented
+with upon login, one entry per line. For example, a large school with
+many classrooms might have choices called "Kindergarten," "1st grade,"
+and so on.
+
+4. In the same directory, create sub-directories that have the same
+names that appear in user_menu_entries.
+
+5. Create further user_menu_entries and further subdirectories inside
+each of these. For example, in "Kindergarten" you might want to
+create directories for each classroom, say "Mrs. Smith" and "Mr.
+Jones." A smaller school might choose to skip the by-grade
+organization and go straight to each classroom; a single computer in a
+single classroom might skip these altogether. Always make sure that
+the user_menu_entry file matches the directory structure (although
+having extra directories will not cause a problem).
+
+You have to make sure that all the write permissions are set correctly
+for the students to be able to write to these directories.
+
+6. At the finest level, create a menu item and one subdirectory for
+each student.
+
+7. Optionally, perform the tasks described above in step 5 of the
+"tuxmathadmin" configuration (creation of the user_login_questions
+file).
+
+8. Optionally, you can create an empty file called "highscores"
+("highscores.txt" on Windows) at whatever level of the hierarchy you
+want users to be competing for the high score. For example, if you
+want the high scores to be grade-wide, then put a "highscores" file in
+each grade's directory. Alternatively, each classroom could have it's
+own, or even each student. If you do nothing, then each student will
+have a private high score table. (In case of multiple highscores
+files, the one at the lowest level of the hierarchy wins.)
+
+Note there is no security insuring that students select themselves.
+
+
+Tracking Progress in Multiple-User Configurations
+-------------------------------------------------
+
+tuxmathadmin contains a feature, "--consolidatelogs", that creates a
+consolidated_log.csv file in all directories that are one above the
+lowest level. The basic use-case is to combine the reports on all
+students in a particular class. Teachers/parents can open this file
+with a spreadsheet program as described above under "Game Summary
+Files."
+
+Command Line Options
+--------------------
+
+NOTE: Tuxmath now has many pre-packaged "missions" (lessons), as well
+as four arcade-style open-ended games of progressive difficulty, so
+there is much less need to change settings. If desired, editing the
+config file is a much better way to control the behavior of TuxMath
+than the command-line options, for the most part. However, many
+options are still supported.
+
+Tips on running from the command line:
+
+Linux:
+-----
+
+Just open a command prompt.
+
+Windows:
+-------
+
+To be prompted for command line options, run tuxmath
+from the "Run" dialog or the "C:> Command Prompt" console. Type
+"TuxMath.exe" followed by any desired options (see below). If it does
+not run, make sure the full path to the program (e.g. C:\Program
+Files\TuxMath\TuxMath.exe) is known to Windows, either through Control
+Panel settings or by changing to the directory containing TuxMath.exe
+before issuing the command.
+
+MacOS:
+-----
+
+[ UNDER CONSTRUCTION ] Just double-click the "tuxmath" icon. ??? To
+be prompted for command line options (see below), hold the [OPTION]
+key as you double-click the icon.
+
+
+The following command-line options can be sent to the program:
+
+NEW as of 1.8.0 - run-time debugging output. Tuxmath now has a system
+to activate debugging output of various subsystems. Note that the
+extent to which the new system is utilized varies a lot - some of
+these flags don't do much as of yet. The names are fairly
+self-explanatory and generally refer to specific source code files in
+Tuxmath:
+
+ --debug-all
+ --debug-setup
+ --debug-fileops
+ --debug-loaders
+ --debug-titlescreen
+ --debug-menu
+ --debug-menu-parser
+ --debug-game
+ --debug-factoroids
+ --debug-lan
+ --debug-mathcards
+ --debug-sdl
+ --debug-lessons
+ --debug-highscore
+ --debug-options
+
+ --optionfile filename - play game based on settings in the named file (see
+ below for more on tuxmath config files). Tuxmath will
+ look for a valid config file with a matching name in
+ the following locations:
+ 1. current working directory
+ 2. as an absolute pathname
+ 3. in the missions directory with tuxmath's
+ other data files.
+ 4. in the user's tuxmath options directory
+ (e.g. /home/laura/.tuxmath/filename
+ 5. in the user's home directory.
+
+ --playthroughlist - Game consists of working through a list of questions
+ -r generated based on the selected options (or defaults).
+ If a comet strikes a city without being shot down by
+ the player, the question is reinserted into the list
+ in a random location. If the player answers all questions
+ correctly before the cities are destroyed, he/she wins.
+ If all cities get destroyed, the game ends in defeat.
+
+ --answersfirst - to ask questions in format: ? + num2 = num3 instead of
+ default format: num1 + num2 = ?.
+
+ --answersmiddle - to ask questions in format: num1 + ? = num3 instead of
+ default format: num1 + num2 = ?.
+
+ --fullscreen - Run the game in full screen, instead of in a window,
+ -f if possible.
+
+ --windowed - Run the game in a 640 x 480 window.
+ -w
+
+ --nosound - Do not play any sounds or music.
+ -s
+ --quiet
+ -q
+
+ --nobackground - Do not display photographic backgrounds in game.
+ -b (Useful on slower systems.)
+
+ --keypad - Display an on-screen numeric keypad. (Useful
+ -k for touch screens or in place of a physical keyboard.)
+
+ --operator OP - Add an operator to the game (will cause the program
+ -o OP to ignore saved option screen settings). You can
+ use this switch multiple times to run the game
+ with multiple operators.
+
+ Valid values for "OP" are:
+
+ add
+ subtract
+ multiply
+ divide
+
+ --demo - Demo mode. The game will cycle back and forth
+ -d between the title and the game, and it will
+ auto-play the game. The only user interaction
+ can be for quitting or pausing.
+
+ --allownegatives Allows subtraction answers to be less than zero.
+ -n When selected, the led numbers at the top of the
+ screen will include a fourth digit for the '-' sign.
+ Also, if --keypad is selected, the '-' and '+' may
+ be grayed-out depending if negatives are allowed.
+
+
+ These command-line options display useful information, but the program
+ does not attempt to start up in interactive mode.
+
+ --help - Display a short help message, explaining how to
+ -h play the game.
+
+ --usage - Display the available command-line options.
+ -u
+
+ --version - Display the version of "tuxmath" you're running.
+ -v
+
+ --copyright - Display copyright information
+ -c
+
+
+
+License ------- "Tux, of Math Command" is Free Software. The compiled
+program is distributed under the GNU General Public License (GPL),
+Version 3 (or, at your option, any later version). TuxMath's various
+source code files are licensed under either GPL2 or greater, GPL 3 or
+greater, or non-restrictive licenses similar to the BSD and MIT
+licenses. The data files are licensed under non-restrictive Creative
+Commons licenses or under the GPL itself. See COPYING for further
+information.
+
+
+Credits
+-------
+
+Designed by Sam "Criswell" Hart <criswell at geekcomix.com>
+Original software created by Bill Kendrick <bill at newbreedsoftware.com>
+
+Current co-maintainers/lead programmers:
+
+David Bruce <davidstuartbruce at gmail.com>
+Tim Holy <tholy at wustl.edu>
+
+Please see the game's "Credits" screen for a complete list of
+contributors.
+
+
+Software Used
+-------------
+
+GNU C Compiler, GNU Make, GNU Autoconf, GNU Automake, GNU Gettext, GNU
+Libtool
+ http://www.gnu.org/
+
+SDL and associated libraries:
+ http://www.libsdl.org/
+
+The GIMP
+ http://www.gimp.org/
+
+Vim (Vi IMproved)
+ http://www.vim.org/
+
+Git
+ (GET CORRECT URL)
+
+Inkscape
+ (GET CORRECT URL)
+
+CMake (for Mac OSX build)
+ (GET CORRECT URL)
+
+Mingw cross-compiler port of GCC and Mingw Cross Environment
+ (for cross-compiled Windows build)
+ (GET CORRECT URL for mingw project)
+ http://mingw-cross-env.nongnu.org
+
+
+SDL_rotozoom was copied from the SDL_gfx library and re-licensed (for
+the purposes of TuxMath only) to GPL
+ http://www.ferzkopp.net/Software/SDL_gfx-2.0/
diff --git a/doc/README_DATA_LICENSES.TXT b/doc/README_DATA_LICENSES.TXT
new file mode 100644
index 0000000..c38c7e7
--- /dev/null
+++ b/doc/README_DATA_LICENSES.TXT
@@ -0,0 +1,56 @@
+16 Apr 2007
+
+About The Images and Sounds Used In This Game
+---------------------------------------------
+
+The graphics and sounds used in tuxmath are all either licensed
+under terms that allow free redistribution, or are in the public
+domain, as summarized below to the best of my (David Bruce's)
+knowledge. Licenses are GPL except as otherwise noted:
+
+data/images/backgrounds/*:
+ 0.jpg - 3.jpg: Created by Sam Hart or Bill Kendrick with the GIMP.
+ 4.jpg -12.jpg: Modified by David Bruce using the GIMP from images
+ released into the public domain by NASA:
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2005/04/
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2004/52/
+ http://spaceflight.nasa.gov/gallery/images/station/crew-7/html/iss007e16249.html
+ http://spaceflight.nasa.gov/gallery/images/apollo/apollo16/html/as16-120-19187.html
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2003/24/
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2003/11/
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/1999/29/
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2003/28/
+ http://hubblesite.org/newscenter/newsdesk/archive/releases/2005/12/image/a
+
+data/images/cities/*: Sam Hart/Bill Kendrick.
+data/images/comets/*: Sam Hart/Bill Kendrick, some images modified by either
+ David Bruce or Tim Holy.
+data/images/igloos/*:
+data/images/penguins/*:
+ Images either created by Tim Holy, Linnea Holy, and Kendra Swanson or modified
+ by these authors from Creative Commons-licensed material at:
+ http://www.openclipart.org/
+ (license text: http://creativecommons.org/licenses/publicdomain/)
+data/images/sprites/*:
+ All tux* images modified by David Bruce from either Larry Ewing's Tux drawing
+ or from GPL-licensed tux_config.png file in KDEArtwork from KDE. Goldstar*
+ images created by David Bruce using The GIMP. Other images
+ brought in from GPL-licensed images in Tux Typing.
+data/imates/status/*:
+ right.png, right_gray.png, left.png, left_gray.png, stop.png modified from
+ GPL-licensed KDE icons by David Bruce using the GIMP. All other images created
+ by Sam Hart or Bill Kendrick.
+data/images/title/*:
+ menu_bkg.jpg modified by David Bruce from public domain image from NASA.
+ title1.png modified by David Bruce from earlier image by Sam Hart.
+data/images/tux/*:
+ All images either created by Sam Hart or modified from Larry Ewing's
+ Tux drawing <ltlewing at isc.tamu.edu>.
+
+data/sounds/*
+ Emmett Plant (emmett at sonivius.com) is the author of tuxi.ogg and released
+ it into the public domain.
+ The brief .wav files were either made by Sam Hart or Bill Kendrick or obtained
+ from the public-domain section of www.partnersinrhyme.com.
+ The three background music files (game*.mod) are also public domain.
+
diff --git a/doc/TODO.txt b/doc/TODO.txt
new file mode 100644
index 0000000..7246138
--- /dev/null
+++ b/doc/TODO.txt
@@ -0,0 +1,86 @@
+TODO.txt for "tuxmath"
+
+2010.Mar.12
+These are the main (difficult) issues we would like to tackle
+at some point:
+
+1. Completion of SVG support - still have many images in gameplay to be
+migrated to SVG. Also, we should investigate whether the lengthy start-up time
+imposed by scaling calculations can be optimized, perhaps by saving the
+properly scaled images to disk on installation or first-time execution.
+
+2. The admin program needs to be finished, documented, and packaged.
+
+3. LAN mode could use some further work. We need to properly handle server
+detection if the LAN has more than one server instance running. Also, the
+server program could be made more robust and functional, with ability to handle
+multiple simultaneous games, and more configurability. One prerequisite will
+be to make mathcards.c/h thread-safe.
+
+4. Completion of libt4k-common and "porting" of tuxmath to use the common lib.
+
+5. Fix of bugs in new Windows crossbuild (using mingw-cross-env) that prevent
+it from working. As of this writing, these consist of detection of SDL_net,
+fix of crashing SDL_mixer bug, and errors generated by use of libtool.
+
+6. Dependable creation of dmg installer builds for Mac OS-X.
+
+7. Remove ".txt" extensions from text files, with renaming of them to "*.txt"
+at the time of building for Windows.
+
+Older stuff:
+2007.Oct.08
+Build:
+ * Make a relocatable binary for Linux (klik package?)
+
+Older stuff:
+2007.Oct.08
+Build:
+ * Make a relocatable binary for Linux (klik package?)
+ * Refine NSIS installer for Windows (or perhaps executable
+ itself) to create Start Menu link to options.txt file
+
+Graphics:
+ * Make game more "themable" (there is a pending request for an
+ "Egyptian" theme with pyramids and an "Islands" theme with
+ palm trees, etc.)
+ * svg support - allow game to draw correctly at any resolution.
+
+Interface:
+ * Add more sound effects and music files
+ * Speech mode
+ * Add option for number-keys to control main menu and possible options
+ (for mouseless scenarios where arrow keys might not be the available...
+ is there such a thing as numeric-only keyboards for PCs???)
+ * Implement lockfile to prevent multiple invocations.
+
+Game Play:
+ * More entertaining "victory" and "defeat" screens
+ * Add option to review missed questions to end-of-game screens
+ * Add option to play next game using missed questions from current game
+ * End-of-level calculations, bonuses and animations
+ * "Lesson server" with login - keep track of lessons completed, percent
+ correct, etc. on a per-user basis, even if installation doesn't have
+ students log into computers individually.
+ * Multiplayer mode - points go to whoever shoots the comet first.
+ * Re-examine algorithm for spacing of comets (allow game to deliver
+ problems faster even if the comet speed limit is not raised).
+
+Documentation:
+ * Finish README.txt
+ * Finish INSTALL.txt
+
+Options:
+ * Make use of some of function keys(F1-F12) to toggle settings in-game
+ (perhaps speed control, muting of music)
+ * Save options.
+ * Admin options screen / files
+ * Command-line options based on grade-level (?)
+ * Internationalization - use gettext() for all strings
+ * Install some kind of security on --homedir, to make sure that
+ tuxmath can write but that students can't edit the files by hand?
+
+Code:
+ * Optimize graphics blitting!!!
+ * Abstract SDL_BlitSurface() calls
+
diff --git a/doc/changelog b/doc/changelog
new file mode 100644
index 0000000..5ee9702
--- /dev/null
+++ b/doc/changelog
@@ -0,0 +1,1439 @@
+2010.Mar.12 (git://git.debian.org/tux4kids/tuxmath.git)
+ Tuxmath now using Git for source code management, which provides
+ superior automated documentation for changes in the form of commit
+ messages. From this point, this changelog file will likely consist of
+ much less frequent summary statements for official releases.
+
+ For version 1.8.0, major changes include:
+ - new menu code with xml-based menus
+ - SVG graphics for menus on supported platforms.
+ - Initial release of LAN multiplayer mode.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Sep.04 (svn.debian.org/tux4kids - revision 1546)
+ Data - click.wav removed due to minor concerns about whether it is really
+ under a free license (license not really known).
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Sep.04 (svn.debian.org/tux4kids - revision 1489)
+ LAN project branch merged back into trunk.
+ Graphical LAN play tested and functional in branch prior to merge.
+ New menu entry code for LAN game needs to be written to actually use LAN mode
+ in trunk build.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Jul.03 (svn.debian.org/tux4kids - revision 1141)
+ LAN project - basic TCP/IP server and test client implemented in branches/lan.
+ The client and server provide multiplayer command-line tuxmath over tcp.
+ Akash Gangil <akashg1611 at gmail.com>
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Jun.24 (svn.debian.org/tux4kids - revision xxx)
+ i18n - new languages from launchpad.
+ Asturian by Xuacu
+ Kurdish by Amed Ãeko Jiyan
+ Slovenian by Å tefan Baebler
+ Vietnamese by lusiads
+
+ Caroline Ford <caroline.ford.work at googlemail.com>
+
+2009.Mar.12 (svn.debian.org/tux4kids - revision 954
+ one-liner tweak of campaign.c to fix display problem in scrolling text
+ that strangely is only apparent in Windows and Mac
+2009.Mar.12 (svn.debian.org/tux4kids - revision 937)
+Version 1.7.2
+ Build- some minor tweaks to tuxmath.desktop and specfiles.
+ Doc - update of README, INSTALL for new release
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Mar.06 (svn.debian.org/tux4kids - revision 929)
+ Text drawing - SDL_extras revamp done, AFAIK - supports resetting of font
+ sizes and run-time changing of fonts (new field added to options struct
+ for current font name).
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Mar.04 (svn.debian.org/tux4kids - revision 922)
+ Text drawing - implemented Set_SDL_Pango_Font_Size() in SDL_extras.c so
+ that BlackOutline() e.g. now use the font size argument, albeit still with
+ a slight hack.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Mar.03 (svn.debian.org/tux4kids - revision 919)
+ i18n - marking of some additional strings in campaign.c and credits.c for
+ translation.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Mar.03 (svn.debian.org/tux4kids - revision 918)
+ Text drawing - all of text drawing now encapsulated within SDL_extras.
+ Other code no longer has any SDL_ttf-specific data or includes. Tuxmath no
+ longer depends on any specific fonts as long as SDL_Pango is available.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.28
+ Text drawing - as all of this is handled by functions within SDL_extras,
+ there isn't any need for code elsewhere in the program to have to know
+ about TTF fonts - changed BlackOutline() to take int size parameter instead
+ of a TTF_Font* parameter. With a little more work we can confine all mention
+ of SDL_Pango/SDL_ttf to within SDL_extras. When this is done, we will not
+ have any dependencies on specific fonts (or need to bundle them) whenever
+ SDL_Pango is available.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.28
+ Build - added tuxmath.spec.in and tuxmath_preview.spec.in, which
+ are processed by configure to give the corresponding specfiles.
+ tuxmath.spec is for rpm packaging of official releases. tuxmath_preview.spec
+ generates rpm packages with "tuxmath_preview" as the title, but otherwise
+ identical.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.17 (svn.debian.org/tux4kids - revision 892)
+ Fix convert_utf filename in CMake build. Eliminate the last few
+ warnings (David got almost all of them), so now tuxmath builds
+ without any compiler warnings.
+
+ Tim Holy <holy at wustl.edu>
+
+2009.Feb.15 (svn.debian.org/tux4kids - revision 889)
+ build - moved linebreak-related code back to /linebreak, adjusted
+ autotools files. The code in /linebreak is now built as a static
+ library when using the autotools build.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.09 (svn.debian.org/tux4kids - revision 876)
+ i18n - modified credits text slightly (replaced empty line
+ strings "" with " ") because otherwise the wrapping text truncates
+ the credits at the first blank line.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.06 (svn.debian.org/tux4kids - revision 873)
+ Put two more strings in highscore.c under the domain of gettext.
+
+ Tim Holy <holy at wustl.edu>
+
+
+2009.Feb.06 (svn.debian.org/tux4kids - revision 872)
+ Add the facility to use translatable versions of "SCORE" and
+ "WAVE". To enable, define REPLACE_WAVESCORE upon compilation
+ (disabled by default, because they don't look as nice).
+
+ Tim Holy <holy at wustl.edu>
+
+2009.Feb.06 (svn.debian.org/tux4kids - revision 871)
+ Moved linewrapping source files into main src directory and
+ adjusted autotools files accordingly. Note - plan to combine most of
+ the libgettextpo-derived files into one larger file to reduce clutter.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Feb.04 (svn.debian.org/tux4kids - revision 869)
+ Added algorithmic linewrapping to the code. This should make life
+ easier for the translators.
+ This works with the CMake build. Needs to have the autotools build
+ incorporated.
+
+ Tim Holy <holy at wustl.edu>
+
+2009.Feb.01 (svn.debian.org/tux4kids - revision 860)
+ Build - small changes to get the CMake build working with intl.
+ This allows the OS X build to work.
+
+ Tim Holy <holy at wustl.edu>
+
+2009.Jan.23 (svn.debian.org/tux4kids - revision 851)
+Version 1.7.1
+ Build - tuxmath.desktop and tuxmath.spec files incorporated into tarball.
+
+ Graphics - cloud.png cleaned up a bit.
+
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2009.Jan.17 (svn.debian.org/tux4kids - revision 847)
+ Code - background scaling and optimization in factoroids.c cleaned up,
+ basically now uses LoadBothBkgds() from loaders.c which has the
+ optimizations incorporated into it.
+ Graphics - new menu icon for "Factors" version of Factoroids.
+
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Dec.16 (svn.debian.org/tux4kids - revision 812)
+ Code - some work on mathcards.c to check for indeterminate questions
+ and to use the "comprehensive" method whenever multiple-operand
+ questions are not needed, such as the "Math Command Training
+ Academy" lessons. Fixed bug in add_all_valid() that was due to
+ the end_of_list arg actually needing to be doubly indirect.
+
+ Lessons - updated all "Math Command Training Academy" lesson files
+ to make sure all the needed parameters get reset properly between
+ lessons.
+ Graphics - new menu icons for "Factoroids" and "Fleet Missions"
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Dec.11 (svn.debian.org/tux4kids - revision 797)
+ Add a "unit test" function, generate_lesson.c. See the file itself
+ for compiling instructions.
+
+ Tim Holy <holy at wustl.edu>
+2008.Dec.11 (svn.debian.org/tux4kids - revision 796)
+ Initial file reorganization to separate SDL-related code from more
+ infrastructural code. This is intended to allow us to create and
+ compile stand-alone programs that test specific functions (e.g.,
+ generating problems for specific lessons).
+
+ Tim Holy <holy at wustl.edu>
+
+2008.Dec.08 (svn.debian.org/tux4kids - revision 788)
+Version 1.7.0
+ First post-Google Summer of Code release with numerous enhancements.
+ The changelog was not kept updated very well over the summer, although
+ most of the changes had descriptive commit messages in subversion.
+ To summarize the most important changes and their contributors:
+ - Fullscreen support at native resolution (Brendan Luchen).
+ - Overhaul of mathcards question-generation code with support
+ for multiple-operand questions (Brendan Luchen).
+ - Turn-based multiplayer mode (Brendan Luchen).
+ - Redo of Credits screen to allow i18n (Brendan Luchen).
+ - Very humorous menu-screen Easter egg (Brendan Luchen).
+ - Factoroids factor game activity (Jesus Mager, based on Bill
+ Kendricks' "Vectoroids").
+ - New Irish (Seanán à CoistÃn) and Turkish (Doruk Fisek)
+ translations.
+ - Several new menu icons.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Oct.16 (svn.debian.org/tux4kids - revision 763)
+ Credits:
+ Changed Tim Holy's listing from "Additional Code" to "Lead
+ Programmer" to better acknowledge his major role over the last
+ year.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Oct.14 (svn.debian.org/tux4kids - revision 761)
+ i18n:
+ Added Irish translation courtesy of Seanán à CoistÃn <seananoc at gmail.com>
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2008.Aug.15 (svn.debian.org/tux4kids - revision 627)
+ Added SDL_rotozoom to the sources, from the SDL_gfx library.
+
+ Also note: most of the summer of code contributions have been
+ added, but this is not well-reflected in the changelog.
+
+ Tim Holy
+
+2008.June.19 (svn.debian.org/tux4kids - revision 537)
+ Code:
+ Tweaked menu locations for larger screens and fixed a number of
+ issues redrawing upon returning to the menu from a game.
+
+ Brendan Luchen
+
+2008.June.14 (svn.debian.org/tux4kids - revision 521)
+ Graphics:
+ New 1280x1024 versions of background images (from Debian Etch at
+ /usr/share/pixmaps/backgrounds/cosmos/*.jpg - these are public
+ domain astrophotographs released by NASA). The four older, GIMP-
+ drawn backgrounds have been removed.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.June.14 (svn.debian.org/tux4kids - revision 518)
+ Graphics:
+ Got zoom() working - made pixels.c its own file instead of having
+ putpixel??() and getpixel??() in SDL_extras.c. (basically, the
+ compiler.h file from TuxPaint was needed. Also added LoadBkgd()
+ wrapper function for IMG_Load() that automatically rescales image
+ to screen size - should use this as replacement wherever backgrounds
+ need to be drawn.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.April-May (svn.debian.org/tux4kids - revision 501)
+Version 1.6.3
+ Build:
+ Create a CMake build, including support for internationalization
+ (builds the intl directory on Mac OS X) and SDL_Pango. This also
+ builds a .dmg on Mac OS X.
+ Code:
+ Fix pointer bug in mathcards when initializing with wrong questions.
+ Fix a number of compiler warnings.
+ i18n:
+ Added po files for many languages from Ubuntu's Launchpad
+
+ Tim Holy <holy at wustl.edu>
+
+2008.May.05 (svn.debian.org/tux4kids - revision 477)
+ Code:
+ SDL_Pango support for right-to-left languages
+
+ Contributed by Ahmed Sayed <ahmad.ahmadsayed at gmail.com>
+ Checked in on Ahmed's behalf by Tim Holy
+
+
+2008.Apr.26 (svn.debian.org/tux4kids - revision 471)
+Version 1.6.2
+ i18n:
+ Added Spanish translation (contributed by
+ Angela Ruiz <angieruiz211 at hotmail.com>
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Feb.23 (svn.debian.org/tux4kids - revision 435)
+ code:
+ Added some additional pointer checks to cleanup() in setup.c
+ to fix segfaults when exiting due to window close events, as
+ cleanup() gets called twice in that code path and we were
+ getting double free() errors.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Feb.12 (svn.debian.org/tux4kids - revision 427)
+ i18n:
+ Added updated Hungarian translation (contributed by Mikl�s
+ Mer�nyi) that includes the help text strings
+
+ Committed by Tim Holy <holy at wustl.edu>
+
+2008.Feb.06 (svn.debian.org/tux4kids - revision 426)
+ i18n:
+ Added Swedish translation (contributed by
+ Daniel Nylander <po at danielnylander.se>)
+
+ Small syntax fix in game.c to correct error detected while
+ building for BeOS (thanks Luc Schrivers)
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Feb.05 (svn.debian.org/tux4kids - revision 424)
+ i18n:
+ Added Hungarian translation (contributed by
+ Merenyi Miklos <mermik at freemail.hu>)
+
+ Added src/game.c to po/POTFILES.in so help strings will appear in
+ tuxmath.pot for translation.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Jan.30 (svn.debian.org/tux4kids - revision 418)
+Version 1.6.1
+ Docs:
+ Updating of changelog, README.txt, INSTALL.txt to reflect recent work -
+ no code changes beyond what is listed below.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Jan.26 (svn.debian.org/tux4kids - revision 410)
+ Build:
+ After a few minor modifications, tuxmath now builds and installs on
+ MacOSX Leopard with "./configure; make; sudo make install", including
+ functioning gettext!
+
+ The build environment needs current versions of gettext,
+ libiconv, and all the SDL* libs. Also, it needs newer versions of
+ the autotools than are currently in either Fink or Leopard itself -
+ not exactly trivial.
+
+ The alterations to tuxmath consisted of testing for the presence of
+ error.h in autoconf, and implementing Tim's workaround (suggested for
+ BeOS) if not found - this should also fix the BeOS issue.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Jan.02 (svn.debian.org/tux4kids - revision 405)
+ Code:
+ A little more refinement of randomize_list() - now just
+ rearranges pointers to existing nodes rather than allocating
+ new list and deleting old one. Sort time for full Ace list (~16,000
+ questions) has gone from over 7 sec to 0.012 sec! (on 3.2 GHz P4)
+ Even on much slower machines in schools, expect this will be quick enough.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2008.Jan.02 (svn.debian.org/tux4kids - revision 402)
+ Build:
+ New files scandir.h, .c with better cross-platform scandir()
+ and alphasort(). New code is from Hatari project at SF.net.
+ Thanks to Thomas Huth <thothy at users.sourceforge.net> - dev/maintainer
+ of Hatari project, and to contributers to that project.
+
+ Better use of autoconf to detect need for replacement functions
+ like this when building on various platforms.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Dec.31 (svn.debian.org/tux4kids - revision 397)
+ Code:
+ Add some additional reporting about student progress: a log.csv
+ file that contains a brief (one-line) summary of every game
+ played. This file organization is chosen to make it easy to
+ import the data into a spreadsheet program.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Dec.30 (svn.debian.org/tux4kids - revision 396)
+ Bug fixes:
+ fileops.c: homedir setting in read_config_file lacked a closedir,
+ resulting in a memory leak.
+ fileops.c: write_postgame_summary did not close the file after
+ appending, resulting in the summary sometimes never being
+ "flushed" (some summary files have just been truncated).
+ mathcards.c: new_randomize_list did not set the "previous" field of
+ each node, resulting in memory corruption & drawing glitches
+ mathcards.c: free tmp_vect (fixes memory leak)
+
+ New feature:
+ mathcards & game & fileops: collect data on the amount of time each
+ problem is on the screen, and report the median in the game
+ summary files.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Dec.26 (svn.debian.org/tux4kids - revision 394)
+ Code:
+ * More bugfixing in the new login system: now the system seems to
+ work if the homedir is specified in the global configuration file,
+ and in a multiuser setup file permissions are set to be
+ unrestrictive (so that a user can modify his/her own files no
+ matter how he/she is logged in).
+
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Dec.24 (svn.debian.org/tux4kids - revision 382-392)
+ Code:
+ * Fix bugs that came with the new login system, including: fix
+ re-reading of highscores table, and several Valgrind-detected
+ memory leaks in the string processing associate with the login
+ system.
+ * Add the gettext macro in front of the help strings so they can
+ be internationalized (does it work?)
+ Documentation:
+ * Add documentation on tuxmathadmin in the README.txt file.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Dec.18 (svn.debian.org/tux4kids -?)
+Version 1.6.0
+ Build:
+ * Successful crossbuild for Windows with functioning gettext. The
+ significant change within tuxmath was elimination of the use of
+ libgw32c.a - most of work was building mingw environment and all
+ needed libs from source with rigorous attention to documentation
+ and help from autotools, mingw, and gettext mailing lists.
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Dec.07 (svn.debian.org/tux4kids - revision 359)
+Version 1.5.9
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Dec.07 (svn.debian.org/tux4kids - revision 357)
+ i18n:
+ * Added French po file - contributed by:
+ Luc Schrijvers <Begasus at skynet.be>
+
+2007.Dec.05 (svn.debian.org/tux4kids - revision 354)
+ Build:
+ * Improvement of Makefile.am code for Windows crossbuild to make
+ better use of autotools.
+ * Addition of tux4kids/tuxmath/people/dbruce/tuxmath_dll directory
+ to make it easier for others to set up crossbuild - intention is
+ to have entire cross-compile setup managed by svn.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Dec.03 (svn.debian.org/tux4kids - revision 353)
+ Options:
+ * Added global config file support for specifying a home directory
+ (tree) location.
+ Game:
+ * Allow users to share a single high score file.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Dec.02 (svn.debian.org/tux4kids - revision 350)
+ Options:
+ * Reworked the user login to make it more robust and
+ user-friendly. This version should be pretty generally usable.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Nov.26 (svn.debian.org/tux4kids - revision 342)
+ Options:
+ * Added support for user login. This should be helpful in school
+ settings where all students log in with the same username. See
+ the README for details.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Nov.18 (svn.debian.org/tux4kids - revision 327)
+
+ Build:
+ * Changed name of "docs" to more standard "doc";
+ fixed doc/Makefile.am so that files go under
+ "$(prefix)/share/doc/" rather than "$(prefix)/doc/"
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Nov.15 (svn.debian.org/tux4kids - revision 322)
+Version 1.5.8
+ i18n:
+ * Added Dutch po file - contributed by:
+ Luc Schrijvers <Begasus at skynet.be>
+
+ Build:
+ * Started work on gettext for Windows - removed
+ #ifdef WIN32 statements, program builds and runs
+ without errors but the crossbuild doesn't yet include
+ the .mo translation files.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Nov.15 (svn.debian.org/tux4kids - revision 320)
+ Graphics:
+ * Added a new function "Blend" to composite two images with transparency
+ Game:
+ * Use Blend to smooth out the animation of the rebuilding igloos
+
+ Tim Holy <holy at pcg.wustl.edu>
+
+
+2007.Nov.11 (svn.debian.org/tux4kids - revision 319)
+Version 1.5.8
+ i18n:
+ * Added Czech po file - contributed by:
+ Jaroslav KrejÄÃ <krejci at zstenis.com>
+
+ Graphics:
+ * Minor tweak of "janitor penguin" sprite files to tone down glare
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Nov.11 (svn.debian.org/tux4kids - revision 316)
+
+ Build:
+ * Gettext again works properly, AFAICT (was broken in 1.5.6 and 1.5.7). Much
+ thanks to Gettext maintainer Bruno Haible for helpful correspondence! The intl
+ directory is now included in preparation of trying to get gettext working on
+ Windows - nothing done on that yet. I think we can start adding as many po
+ files as we can get.
+ * Some more removal of dead code and unused variables.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Oct.30 (svn.debian.org/tux4kids - revision 311)
+
+
+ Code:
+ * Uncrufting! - eliminated tuxtype_playsound(), moved playsound() to audio.c,
+ and removed playsound.c and .h; eliminated alphabet.c; moved DarkenScreen()
+ to SDL_extras.c and eliminated pause.c; moved SwitchScreenMode() to SDL_extras.c.
+ Graphics:
+ * Change to using 32 bits/pixel, however all functions that need this info now
+ use PIXEL_BITS #define'd in tuxmath.h - recompiling for 16 BPP only requires
+ changing this def (confirmed that both settings work, at least in Linux).
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Oct.29 (svn.debian.org/tux4kids - revision 310)
+
+ Version 1.5.7
+
+ Build:
+ * Implementation of proper "install" and "uninstall" targets in
+ the Makefile.am's, replacing some old quick-and-dirty hackery.
+ * gettext/po/intl needs testing.
+ Code:
+ * Removal of numerous unused image files as well as unused code
+ in options.c (old options system), savings ~400 KB.
+ Graphics:
+ * Rest of sprites updated to "crystal" look.
+ Game:
+ * Inactivated mouse warping in menus (at least for now) - the
+ users I've tested it on find the warping to be unexpected and
+ confusing.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Oct.19 (svn.debian.org/tux4kids - revision 306)
+
+ Build:
+ * More gettext/po/intl work (in progress)
+ Game:
+ * Implementation of "gold stars" - the game keeps track of what
+ lessons have been successfully completed and displays a gold
+ star icon for completed lessons, with a grayed-out icon for lessons
+ that have not been completed.
+ * Fix of a bug in the menu code causing unintended exiting of the
+ game.
+ Graphics:
+ * Most of sprites revised to have a more uniform and modern shiny/
+ "crystal" look - remainder to be finished shortly.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Oct.19 (svn.debian.org/tux4kids - revision 303)
+
+ Build:
+ * Work on gettext-related stuff - hope to get i18n supported on all
+ platforms (in progress)
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2007.Oct.12 (svn.debian.org/tux4kids - revision 298)
+ Options:
+ * Added material in "Project Info" and (temporarily) removed the
+ Settings menu. This removes the last menu entries that result in
+ "Work In Progress." The thought is that it will make the
+ application seem more polished to only have entries that do what
+ they advertise. We can restore the Settings entry when the code is
+ ready.
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Oct.12 (svn.debian.org/tux4kids - revision 297)
+ Options:
+ * Redesigned the help to make it more interactive.
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Oct.10 (svn.debian.org/tux4kids - revision 294)
+ Graphics:
+ * Added a help menu sprite. The help screen will probably be
+ redesigned to give users more control over the pace of the help.
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Oct.09 (svn.debian.org/tux4kids - revision 293)
+ Build:
+ * Merged in code to allow build under BeOS/Zeta - implementations
+ of scandir() and alphasort() originally contributed to ARAnYm
+ project under GPLv2 - code written by:
+
+ Milan Jurik <M.Jurik xylab.cz>
+
+ and made into a patch for TuxMath by:
+
+ Luc Schrijvers <Begasus at skynet.be>
+
+2007.Oct.09 (svn.debian.org/tux4kids - revision 291)
+ Docs:
+ * Added license notice for Andika font to
+ README_DATA_LICENSES.TXT as well as including full license text
+ for the Open Font License 1.1 as "OFL.txt" under docs.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Oct.09 (svn.debian.org/tux4kids - revision 290)
+ Build:
+ * Ran Autoconf's "autoupdate" util to update configure.ac and
+ the m4 macros to work properly with the current version (1.10)
+ of Automake (hope this doesn't break things for those using
+ automake 1.9.6).
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2007.Oct.09 (svn.debian.org/tux4kids - revision 289)
+ Options:
+ * Start of "real" help for tuxmath. I've tried to keep the text
+ simple for early readers, but I imagine this could be improved.
+ Needs a help sprite in the menu.
+
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Oct.03 (svn.debian.org/tux4kids - revision 283)
+ Version 1.5.5
+ Code:
+ * One-liner bug fix in mathcards.c for rare segfaults during
+ problem list generation (thanks to Tim Holy's test program
+ for mathcards).
+ * Elimination of "evil" macros in titlescreen.h.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2007.Sep.28 (svn.debian.org/tux4kids - revision 279)
+ Code:
+ * Completed the transition in TitleScreen to using a generic
+ menu-traversal function, choose_menu_item. All the menus have
+ been transitioned over to the new code. This version fixes a
+ couple of minor visual glitches, slightly enhances consistency
+ across menus, and may fix a bug in the mouse-handling code. But
+ by and large the main effort has been to replicate the previous
+ behavior using only a single menu-traversal function. It has
+ been tested for memory leaks with valgrind (none found).
+
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Sep.28 (svn.debian.org/tux4kids - revision 277)
+ Game:
+ * Completed implementation of high score table and
+ reorganized related code into highscore.c/h.
+ Code:
+ * Re-implemented DrawButton in more flexible,
+ generalized, and basically correct fashion - now
+ supports drawing of nice rounded rectangles with
+ any size, corner radius, RGB color, and alpha
+ channel.
+ * Added ConvertUTF.c/.h from Unicode, Inc to support
+ conversions between UTF-8 and wchar_t.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Sep.18 (svn.debian.org/tux4kids - revision 260)
+ Build:
+ * Modified Makefile.am and data/fonts/Makefile.am to
+ support building dist tarball either with font
+ bundled (make dist_with_fonts) or without font
+ (make dist). Added Andika font to svn.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Sep.08 (svn.debian.org/tux4kids - revision 233)
+ Code:
+ * Added replacement function for scandir() (called
+ "w32_scandir() ) because scandir isn't available
+ under Windows - or at least isn't supported by
+ mingw32.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Sep.07 (svn.debian.org/tux4kids - revision 231)
+ Version 1.5.4
+
+ Build:
+ * Renamed configure.in to configure.ac as is now preferred.
+ * Removed autogen.sh as autoreconf is preferred.
+ Game:
+ * Added lesson for "Subtraction 0-20"
+ (data/missions/lessons/lesson08.1)
+ * Added hackery to load_default_font() to get it to load
+ "/usr/share/fonts/truetype/ttf-sil-andika/AndikaDesRevG.ttf"
+ (Debian font location) if font not found under data path.
+ * Fixed minor problem with screen redrawing for "Custom Game".
+ * Setup now tries to write user config file (using default
+ settings) if user config file not found, e.g. when the
+ game is run for the first time by that user.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2007.Aug.27 (svn.debian.org/tux4kids - revision 215)
+
+ Code:
+ * Changed arrays in game.c to dynamic allocation, fixed a
+ crashing bug related to array bounds violation.
+ Game:
+ * Fix of "Custom Game" option to enable play based on user's
+ options file, also added on-screen explanatory text.
+
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Aug.23 (svn.debian.org/tux4kids - revision 212)
+ Version 1.5.3
+
+ Build:
+ * Fixes in images/Makefile.am and image/tux/Makefile.am - some
+ files had been left off EXTRA_DIST list leading to incomplete
+ installation with 1.5.2 tar.gz.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Aug.21 (svn.debian.org/tux4kids - revision 211)
+ Version 1.5.2
+
+ Build:
+ * Doc updates
+ * Fixes in top-level Makefile.am - "make distcheck" now
+ succeeds without errors, "make uninstall" removes data and *.mo
+ files properly.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2007.Aug.21 (svn.debian.org/tux4kids - revision 207)
+ Game:
+ * Fix audio system: clean up properly on exit, more robust handling
+ of the availability of audio hardware, respect --nosound command line
+ parameter setting.
+ * Got demo mode working again
+ Options:
+ * Fix memory leak in parsing options files
+
+ Tim Holy <holy at wustl.edu>
+
+
+2007.Aug.19 (svn.debian.org/tux4kids - revision 199)
+ Build:
+ * fix a path in Makefile.am for installing the locales
+
+ Holger Levsen (holger at layer-acht.org)
+
+
+2007.Apr.29 (svn.debian.org/tux4kids - revision 174)
+ Build:
+ * Makefile.am files added to all directories with EXTRA_DIST
+ lists to get "make dist" to generate a working tarball. It
+ now seems to work correctly, although "make distcheck" fails
+ because msgfmt cannot find the locales to generate the .mo
+ files while doing the test install (a real "make install"
+ works correctly, at least on my system).
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Apr.11
+ Version 1.5.1
+
+ Game:
+ * Enabled play of custom game based on user's option file.
+ Graphics:
+ * Tweaked black_outline() slightly to improve font appearance.
+ Docs:
+ * Updated changelog, README.txt, INSTALL.txt.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Apr.09 (svn.debian.org/tux4kids - revision 150)
+ Game:
+ * Fixed lesson order bug - code now explicitly sorts the
+ lesson files by alphabetical order of filenames.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Apr.07 (svn.debian.org/tux4kids - revision 149)
+ Game:
+ * Partially implemented high-score table in place (no support
+ yet for player to put in own name).
+ * Font rendering addressed - black_outline() now works as
+ intended (perhaps appearance can be improved).
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Mar.15 (svn.debian.org/tux4kids - revision ??? & ???)
+ Build:
+ * First revision adds Xcode building for MacOSX
+ * Second commit removes the earlier (incomplete) approach to a
+ UNIX-style build. (This was abandoned mainly for reasons of
+ building Universal Binaries---the SDL Frameworks supposedly
+ only work with Xcode)
+
+ Tim Holy < holy at wustl period edu >
+
+2007.Mar.08 (svn.debian.org/tux4kids - revision 125)
+ Game:
+ * High scores now saved to and read from file, not yet
+ visible to game player.
+ * svn repository move completed.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Mar.05 (https://svn.tux4kids.net/tuxmath/ - revision 75)
+ Code:
+ * Most of tuxtype-derived code now using functions in
+ fileops.c to load - trying to make this more consistent
+ and unified. Fixes problems finding data files on some
+ Windows machines.
+ * Beginning of audit of all pointers to prevent segfaults and
+ other memory management errors.
+ Game:
+ * Data structures and several functions in place for high score
+ lists (nothing user-visible yet).
+
+ Last commit at svn.tux4kids.net before move to Alioth.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Feb.12 (https://svn.tux4kids.net/tuxmath/ - revision 74)
+ Code:
+ * Fixed MC_FORMULA_LEN bug causing long comet strings to
+ drop last character.
+ * Added new fields to game_options (bonus_comet_interval,
+ bonus_speed_ratio) with relevant support functions.
+ * Further implementation and cleanup of new menus.
+ David Bruce <davidstuartbruce at gmail.com>
+
+ Game:
+ * Implementation of bonus comets that cause an igloo to
+ be rebuilt.
+ Tim Holy <holy at wustl.edu>
+ * Many additional lesson files.
+ David Bruce <davidstuartbruce at gmail.com>
+
+ Build:
+ * Andika font now default, included under data/fonts.
+ Karl Ove Hufthammer <karl at huftis.org>
+
+2007.Jan.31 (https://svn.tux4kids.net/tuxmath/ - revision 72)
+ Game/Graphics:
+ * New graphics in which Tux protects igloo-dwelling
+ penguins rather than cities. The older "city" mode still
+ works and is selectable via the config file.
+ * Restoration of lost igloo after each two waves.
+
+ Tim Holy <holy at wustl.edu>
+
+2007.Jan.24 (https://svn.tux4kids.net/tuxmath/ - revision 69)
+ Options:
+ * More progress on new menu system, generally works
+ correctly to extent that things have been implemented.
+ More 'lesson' files added, now up through addition and
+ subtraction of two-digit positive numbers.
+ Game:
+ * "Typing Tutor" mode added for kids just beginning to
+ use the keyboard.
+
+ New menu still "alpha" - would not suggest packaging
+ for Debian yet.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2007.Jan.12 (https://svn.tux4kids.net/tuxmath/ - revision 67)
+ Options:
+ * Overhaul of menu system well underway, suitable for
+ alpha/developer preview status. New menus prominently
+ feature a series of prepared "lessons" to be completed,
+ as well as arcade-style settings of varying difficulty
+ that will ultimately be used to compete for high scores.
+ New menus are basically functional but far from complete.
+ Graphics:
+ * Several very nice space-themed backgrounds adapted from
+ "cosmos" backgrounds directory in Gnome, which I believe
+ should be OK from licensing standpoint.
+ Code:
+ * Bugfix - question_copies parameter now handled correctly
+ in read_config_file().
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Dec.07 (https://svn.tux4kids.net/tuxmath/ - revision 65)
+ Options:
+ * Several files brought in from tuxtype as part of overhaul
+ of titlescreen and menu system: titlescreen.h (header for
+ all of tuxtype-derived files), titlescreen.c, loaders.c,
+ audio.c, gettext.c, alphabet.c, pause.c, theme.c. The
+ program again compiles and runs, but none of the new code
+ is actually used yet. Still under heavy construction.
+ Build:
+ * SDL_ttf now needed to build program, although the code
+ that actually uses fonts is not yet active.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2006.Nov.17 (https://svn.tux4kids.net/tuxmath/ - revision 61)
+ Version 1.0.2
+
+ Build:
+ * Support for native MacOSX build (G4-PPC, OSX 10.4) - now
+ has "macapp" target in Makefile.
+
+ Tim Holy <holy at wustl.edu>
+
+2006.Nov.17 (https://svn.tux4kids.net/tuxmath/ - revision 58)
+ Version 1.0.1
+
+ Game:
+ * Two simple bugfixes for config file input not setting
+ the correct parameter.
+ * Minor updates to docs.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2006.Oct.31 (https://svn.tux4kids.net/tuxmath/ - revision 54)
+ Version 1.0
+
+ Docs:
+ * Updated changelog, README.txt, INSTALL.txt, TODO.txt.
+
+2006.Oct.30 (https://svn.tux4kids.net/tuxmath/ - revision 53)
+ Version 0.98
+
+ Code:
+ * Minor bug fix to prevent the game from asking questions
+ with an indeterminate answer (i.e. 0 / ? = 0).
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Oct.20
+
+ Build:
+ * More support for Windows crossbuild under linux added
+ to svn, including cross-configure.sh and cross-make.sh
+ scripts and minor changes to configure.in and Makefile.am
+ when building for Windows.
+ Code:
+ * game_options struct now has complete set of accessor
+ functions with sanity checks to keep impossible values
+ from getting read in from config files. This is in
+ options.c. This fixes several ways in which the program
+ could previously be crashed, and also cleans up
+ read_config_file() as it no longer needs to do any
+ sanity testing.
+
+2006.Oct.07 (https://svn.tux4kids.net/tuxmath/ - revision 48)
+ Version 0.97 final
+
+ Build:
+ * removed icon* from Makefile.am as its included in data
+
+ Holger Levsen <debian at layer-acht.org>
+
+2006.Oct.07 (https://svn.tux4kids.net/tuxmath/ - revision 47)
+
+ Build:
+ * Many files needed for build using autotools added to svn
+ that I previously left out by accident.
+ * autogen.sh added, now build and install under *nix using:
+ ./autogen.h && ./configure && make && make install
+ * make install no longer copies .svn files into data dir
+
+2006.Sep.29 (https://svn.tux4kids.net/tuxmath/ - revision 28)
+ Version 0.97
+
+ Build:
+ * Successful Windows XP build including all current features,
+ config file handling, game summaries.
+ * Build system changed to autoconf/automake. fileops.h/fileops.c
+ changed to accomodate cross-platform build. Under Linux/Unix,
+ now install with ./configure && make && make install.
+
+ Yves Combe <yves at ycombe.net>
+
+2006.Sep.22 (https://svn.tux4kids.net/tuxmath/ - revision 27)
+ Version 0.96
+
+ Game:
+ * Tuxmath now saves summaries of the last ten games in
+ the player's .tuxmath directory. They are rotated out,
+ with the oldest discarded each time. The summaries
+ include the starting question list, a list of all
+ missed questions, and the numbers of correct and
+ incorrect answers with percent correct.
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Sep.18 (https://svn.tux4kids.net/tuxmath/ - revision 26)
+ Version 0.95
+
+ Setup:
+ * Config file output cleaned up with better organization
+ and better comments.
+ Game:
+ * Feedback system implemented to dynamically adjust comet
+ speed based on player performance.
+ Tim Holy <holy at wustl.edu>
+ Code:
+ * Fixed bug causing crash if max_comets set too high.
+ Tim Holy <holy at wustl.edu>
+ * Fixed bug causing crash due to SDL_FreeSurface() being
+ called twice on same pointer in certain code path.
+ David Bruce <davidstuartbruce at gmail.com>
+
+
+2006.Sep.03 (https://svn.tux4kids.net/tuxmath/ - revision 22)
+ Version 0.94
+
+ Setup:
+ * Math question formats (answer last, answer first, etc.)
+ are now set independently for each math operation, e.g.
+ "format_add_answer_last", etc.
+ Code:
+ * Mathcards now prints questions in same format as what
+ appears in game (e.g. "2 + 2 = ?"). So far this is
+ only used for debugging output, but soon tuxmath will
+ save lists of questions asked and questions missed to
+ files for post-game review.
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Sep.03 (https://svn.tux4kids.net/tuxmath/ - revision 21)
+ Version 0.93
+
+ Code:
+ * config.h/c now called fileops.h/c and all code related to
+ file operations contained here (config files as well as
+ loading of image and sound data files). Both images.h and
+ sound.h have been incorporated into fileops.h. Idea is to
+ have only one place for OS-specific code, if possible.
+ * setup() split into several smaller functions.
+ * If a sound file cannot be loaded, the program continues
+ without sound rather than exiting. Bug fixed that caused
+ this to turn off sound for subsequent games (thanks Tim Holy).
+ * All global data now extern'd in same place in tuxmath.h.
+ Setup:
+ * Better handling of config files. Program now creates
+ .tuxmath directory in user's home, config file is in this
+ directory and is called "options". Global config file
+ located in new "missions" folder in program data (this
+ will change to something under /etc or /usr/local/etc when
+ I have studied FHS and makefiles more).
+ * Added "--optionfile filename" command-line arg (thanks Yves
+ Combe for suggestion) - program will look for 'filename' in
+ several locations including as absolute path.
+ Docs:
+ * Updates to changelog and TODO.txt; update to usage();
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Aug.22 (https://svn.tux4kids.net/tuxmath/ - revision 20)
+ Version 0.92
+
+ Code:
+ * Patch to allow program to exit more gracefully
+ if unable to load data files - primarily, the screen
+ resolution goes back to normal instead of staying at
+ 640x480.
+ David Yoder <hobie20dude at gmail.com>
+
+2006.Aug.13 (https://svn.tux4kids.net/tuxmath/ - revision 19)
+ Version 0.91
+
+ Code:
+ * Fixed embarrassing bug in revision 18/version 0.9 that
+ caused program to crash with segmentation fault if
+ TUXMATH_DEBUG disabled (which was how it was committed).
+ :^(
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Aug.11 (https://svn.tux4kids.net/tuxmath/ - revision 18)
+ Version 0.9
+
+ Setup:
+ * Tuxmath now reads and writes all settings to disc in human-
+ readable form. The first time it is run by each user, it
+ creates a config file (called .tuxmath for now) in the user's
+ home directory The settings are initially set to hard-coded
+ defaults, then overridden as needed by a master config file
+ (for now located in DATA_PREFIX i.e. /usr/local/share/tuxmath),
+ then overridden if desired by the user's own config file.
+ The settings are saved from game to game if the file is left
+ unchanged. Any text editor can be used to modify the settings.
+ The config file contains extensive comments documenting
+ all settings. Complete control over program behavior is now
+ available without recompiling.
+ * tuxmath -h output updated with prominent notice that config
+ file now being used.
+ Game:
+ * By default the game now plays through the question list and
+ ends with "Victory" when all questions correctly answered.
+ * game.c now handles 'slow_after_wrong' and other comet and speed
+ settings correctly.
+ * title screen has shortcuts 'P' for Play, 'O' for Options, etc.
+ Code:
+ * names of some of settings in game_options and math_options
+ structs changed to more intuitive/descriptive ones.
+ Docs:
+ * Updates to README.txt and TODO.txt
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Jun.17 (https://svn.tux4kids.net/tuxmath/ - revision 10)
+ Docs:
+ * Updates to README.txt and TODO.txt.
+ * Version designated as 0.8 in README.txt, tuxmath.h, and Makefile.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Jun.12 (https://svn.tux4kids.net/tuxmath/ - revision 9)
+ Game:
+ * Command-line argument added to allow ending the game with
+ "victory" when all questions in the defined list have been
+ successfully answered.
+ * Counter of remaining questions added to upper center of screen
+ when operating in "defined list" mode.
+ * LED numbers now display in "monitor" added to Tux's console
+ when "defined list" mode selected".
+ * Drawing of math question formulas overhauled, with support
+ for display of negatives (e.g. 2 x -3 = ?). The program supports
+ negative numbers for limits of question ranges, but for now
+ this must be selected at compile time.
+ * Support for questions formatted like ? + 2 = 4 and 2 + ? = 4,
+ in addition to default format (2 + 2 = ?).
+ * Command-line options to select from the three question formats.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.May.16 (https://svn.tux4kids.net/tuxmath/ - revision 8)
+ Code:
+ * Major changes to internal workings of program. Everything
+ related to generation of math questions is now handled by
+ a backend called MathCards, which generates question lists
+ based on parameters in a struct called math_opts. MathCards
+ is (obviously) contained in two new files, mathcards.h and
+ mathcards.c. For now, many options can only be set at
+ compile time by changing the defaults in mathcards.h.
+ MathCards allows fine-grained control of the questions to
+ be asked, and allows the player to "win" if all of the
+ questions in the list are answered while the cities are
+ still alive. By default, game behavior is unchanged from
+ previously.
+ * Main game() function in game.c has been split into several
+ smaller functions; updated to use MathCards.
+ * Options() updated to use MathCards.
+ Game:
+ * demo mode now handles negative answers properly.
+
+ Note: the code contains many FIXMEs and TODOs and should be
+ tested more before being packaged for a distribution.
+ I would describe revision 8 as a developer or alpha release.
+
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Mar.8 (https://svn.tux4kids.net/tuxmath/ - revision 7)
+ Setup:
+ * updated usage() to include all command-line options
+ Credits:
+ * updated credits to include more recent contributions
+ Code:
+ * added tuxmath.h containing the global structs math_options
+ and game_options as well as defaults for all values.
+ Goal is to have one place to look for all global data.
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Mar.1 (https://svn.tux4kids.net/tuxmath/ - revision 6)
+ Game:
+ * Added support for negative subtraction answers.
+ Updated LED drawing to include negative sign.
+ Updated on-screen keypad to include '+' and '-'.
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Feb.18 (https://svn.tux4kids.net/tuxmath/ - revision 5)
+ Options:
+ * Added mouse support to Options screen
+ David Bruce <davidstuartbruce at gmail.com>
+
+2006.Feb.14 (https://svn.tux4kids.net/tuxmath/ - revision 4)
+ Options:
+ * Added speed control to Options screen
+ Yves Combe <yves at ycombe.net>
+
+2006.Feb.7 (https://svn.tux4kids.net/tuxmath/ - revision 3)
+ Options:
+ * Fixed minor deadlock bug if all operations deselected
+ David Bruce <davidstuartbruce at gmail.com>
+
+2005.Mar.7
+ Interface:
+ * Added sound effects to Options screen.
+
+ * Comets 'sizzle' when you shoot them.
+ Glen Ditchfield <gjditchfield at acm.org>
+
+ * Correct answer is displayed when a comet hits a city.
+ Glen Ditchfield <gjditchfield at acm.org>
+
+ Game:
+ * Kept first value in division questions from being huge.
+
+ * Spread out comets in 'slow' mode.
+ Glen Ditchfield <gjditchfield at acm.org>
+
+ Options:
+ * Added basic "Maximum Answer" option.
+
+ Documentation:
+ * Updated Credits screen some.
+
+ Build:
+ * Makefile modifications ($OWNER).
+ Donny Viszneki <smirk at thebuicksix.com>
+
+ * Compile options ("-g" for debugging, then strip)
+ Glen Ditchfield <gjditchfield at acm.org>
+
+ * Tidier linkage (fewer multiply-included #define's)
+ Glen Ditchfield <gjditchfield at acm.org>
+
+ * Created "uninstall" Makefile target.
+
+2004.Feb.18
+ Game:
+ * Speed now depends on a speed setting, multiplied by the current wave #.
+ Michael Behrisch <behrisch at users.sourceforge.net>
+
+ Options:
+ * Added "--speed" option to set initial game speed.
+ Michael Behrisch <behrisch at users.sourceforge.net>
+
+2003.Apr.5
+ Interface:
+ * Removed "Alpha Version" stamp from title screen.
+
+ Options:
+ * Replaced info. screen with actual option-setting interface.
+
+ * Alternative command-line options available for operators.
+ ("addition", along with "add",
+ "subtraction", along with "subtract",
+ "multiplication", along with "multiply", and
+ "division" along with "divide")
+
+ Sound:
+ * Increased audio buffer, so it's less choppy-sounding.
+
+ Documentation:
+ * Updated Credits screen.
+
+
+2001.Sep.14:
+ Documentation:
+ * Added more testers, and a "." character, to the credits display.
+
+
+2001.Sep.7:
+ Code:
+ * On-screen keypad control was enabled even if keypad wasn't. Fixed.
+
+ Game:
+ * Slightly tweaked current equation-generation code to be more interesting.
+ (Will eventually be based on options)
+
+
+2001.Sep.6:
+ Code:
+ * Pause also pauses music
+ * More attention is paid to "NOSOUND" compile-time define
+ (you should now be able to build without SDL_mixer)
+
+ Interface:
+ * In lieu of an option screen, a message asking for help in that
+ aspect of the game design has been added.
+ * Added "SCORE" and "WAVE" displays
+
+ Game:
+ * Waves progress
+ * Score accumulates
+ * Game over at end of wave if all cities destroyed
+
+ Documentation:
+ * INSTALL.txt fleshed out quite a bit.
+
+ Installation:
+ * "install" target added to "makefile"
+
+
+2001.Sep.4:
+ Documentation:
+ * Added copyright info. to the program ("--copyright")
+ * Moved documentation into "docs/" subdirectory
+
+
+2001.Sep.3:
+ Code:
+ * "#ifdef 0" in "src/game.c" replaced.
+
+
+2001.Sep.2:
+ Graphics:
+ * Icon image ("icon.png") changed.
+
+ Documentation:
+ * More added to "README.txt"
+
+
+2001.Aug.31
+ Interface:
+ * Operators used in the game can be overridden ("--operator")
+ * Mouse controls added to title screen
+ * Added keyclick sound effect
+ * Added an on-screen keyboard (eg, for touchscreens?) ("--keypad")
+
+ Graphics:
+ * Replaced spire with Tux at a console.
+ * Added surface (land) to remaining background photos.
+ * PNGs processed with "pngcrush" to make them smaller.
+ * Comet explosion animation works right. Also, numbers disappear.
+ * Equations drawn after all comets drawn (to avoid covering them up)
+ * LED digits spread apart
+ * No-background mode draws faux-skyline (instead of black)
+ * "DEMO" on title screen reduced
+
+ Code:
+ * Keyboard event handling and demo mode stuff split up
+ * Demo mode plays more like a regular player
+ * FPS slowed down to max 15fps
+
+
+2001.Aug.30
+ Interface:
+ * Details added to "--help" display.
+
+ Graphics:
+ * Accidentally displayed "DEMO" on title screen even in normal mode. Fixed
+
+
+2001.Aug.29 (Live, from LinuxWorld Expo!)
+ Interface:
+ * Added demo mode ("--demo" option)
+
+
+2001.Aug.28
+ Interface:
+ * Command-line options added ("--help", "--version",
+ "--nosound", "--fullscreen", "--usage", and "--nobackground")
+ * Random backgrounds loaded (optional; use "--nobackground" to disable)
+ * Replaced UFOs with comets
+ * "Paused" text added to screen when game is paused
+ * Laser shot added
+ * Shields added to city
+
+ Graphics:
+ * Converted background PNGs to JPEGs
+ * "Alpha Version" added to title screen
+ * Title screen menu items redone to look nicer
+ * Equations don't disappear off edges of screen
+
+ Code:
+ * References to "aliens" in source replaced with "comets"
+ * Initial sound code added.
+ * Initial music code added.
+ * Sometimes cities would explode at level start. Fixed.
+
+
+2001.Aug.27
+ Interface:
+ * Initial pause code added
+ * KEYPAD numbers accepted in the game
+ * Credits in nifty rainbow colors
+ * Commands on title screen shrunk to fit and centered
+ * Cities explode when crashed-into.
+ * Spire added to game screen.
+ * Extra padding removed from digits image ("nums.png")
+ * Sound support now optional.
+ * Added New Breed Software logo
+
+ Gameplay:
+ * Game loop slowed to max(20fps)
+ * Aliens pick cities to crash into.
+ * Changed equation-creation algorithm
+
+ Code:
+ * More comments added to "game.c"
+ * Makefile fixed (was rebuilding objects due to "obj" _dir_ being newer)
+
+ Documentation:
+ * CHANGES.txt list categorized
+ * TODO.txt list categorized
+ * README.txt expanded some
+
+
+2001.Aug.26
+ * Initial build
+
diff --git a/hello_world.txt b/hello_world.txt
deleted file mode 100644
index cd08755..0000000
--- a/hello_world.txt
+++ /dev/null
@@ -1 +0,0 @@
-Hello world!
diff --git a/intl-patch b/intl-patch
new file mode 100644
index 0000000..5e56450
--- /dev/null
+++ b/intl-patch
@@ -0,0 +1,105 @@
+ * localename.c (SUBLANG_BENGALI_INDIA): Change value from 0 to 1.
+ (SUBLANG_BENGALI_BANGLADESH): Change value from 1 to 2.
+ (SUBLANG_PUNJABI_INDIA): Change value from 0 to 1.
+ (SUBLANG_PUNJABI_PAKISTAN): Change value from 1 to 2.
+ (SUBLANG_ROMANIAN_ROMANIA): Change value from 0 to 1.
+ (SUBLANG_ROMANIAN_MOLDOVA): Change value from 1 to 2.
+ (SUBLANG_SINDHI_INDIA): Remove macro.
+ (SUBLANG_SINDHI_AFGHANISTAN): New macro.
+ (SUBLANG_TAMAZIGHT_ALGERIA_LATIN): Renamed from
+ SUBLANG_TAMAZIGHT_LATIN.
+ (SUBLANG_TIGRINYA_ETHIOPIA): Change value from 0 to 1.
+ (SUBLANG_TIGRINYA_ERITREA): Change value from 1 to 2.
+ (_nl_locale_name_default): Update.
+ Reported by Bob Rossi <address at hidden>.
+
+--- localename.c 25 Oct 2006 11:43:26 -0000 1.15
++++ localename.c 21 Dec 2006 14:26:42 -0000
+@@ -494,10 +494,10 @@
+ # define SUBLANG_AZERI_CYRILLIC 0x02
+ # endif
+ # ifndef SUBLANG_BENGALI_INDIA
+-# define SUBLANG_BENGALI_INDIA 0x00
++# define SUBLANG_BENGALI_INDIA 0x01
+ # endif
+ # ifndef SUBLANG_BENGALI_BANGLADESH
+-# define SUBLANG_BENGALI_BANGLADESH 0x01
++# define SUBLANG_BENGALI_BANGLADESH 0x02
+ # endif
+ # ifndef SUBLANG_CHINESE_MACAU
+ # define SUBLANG_CHINESE_MACAU 0x05
+@@ -590,16 +590,16 @@
+ # define SUBLANG_NEPALI_INDIA 0x02
+ # endif
+ # ifndef SUBLANG_PUNJABI_INDIA
+-# define SUBLANG_PUNJABI_INDIA 0x00
++# define SUBLANG_PUNJABI_INDIA 0x01
+ # endif
+ # ifndef SUBLANG_PUNJABI_PAKISTAN
+-# define SUBLANG_PUNJABI_PAKISTAN 0x01
++# define SUBLANG_PUNJABI_PAKISTAN 0x02
+ # endif
+ # ifndef SUBLANG_ROMANIAN_ROMANIA
+-# define SUBLANG_ROMANIAN_ROMANIA 0x00
++# define SUBLANG_ROMANIAN_ROMANIA 0x01
+ # endif
+ # ifndef SUBLANG_ROMANIAN_MOLDOVA
+-# define SUBLANG_ROMANIAN_MOLDOVA 0x01
++# define SUBLANG_ROMANIAN_MOLDOVA 0x02
+ # endif
+ # ifndef SUBLANG_SERBIAN_LATIN
+ # define SUBLANG_SERBIAN_LATIN 0x02
+@@ -607,12 +607,12 @@
+ # ifndef SUBLANG_SERBIAN_CYRILLIC
+ # define SUBLANG_SERBIAN_CYRILLIC 0x03
+ # endif
+-# ifndef SUBLANG_SINDHI_INDIA
+-# define SUBLANG_SINDHI_INDIA 0x00
+-# endif
+ # ifndef SUBLANG_SINDHI_PAKISTAN
+ # define SUBLANG_SINDHI_PAKISTAN 0x01
+ # endif
++# ifndef SUBLANG_SINDHI_AFGHANISTAN
++# define SUBLANG_SINDHI_AFGHANISTAN 0x02
++# endif
+ # ifndef SUBLANG_SPANISH_GUATEMALA
+ # define SUBLANG_SPANISH_GUATEMALA 0x04
+ # endif
+@@ -670,14 +670,14 @@
+ # ifndef SUBLANG_TAMAZIGHT_ARABIC
+ # define SUBLANG_TAMAZIGHT_ARABIC 0x01
+ # endif
+-# ifndef SUBLANG_TAMAZIGHT_LATIN
+-# define SUBLANG_TAMAZIGHT_LATIN 0x02
++# ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN
++# define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
+ # endif
+ # ifndef SUBLANG_TIGRINYA_ETHIOPIA
+-# define SUBLANG_TIGRINYA_ETHIOPIA 0x00
++# define SUBLANG_TIGRINYA_ETHIOPIA 0x01
+ # endif
+ # ifndef SUBLANG_TIGRINYA_ERITREA
+-# define SUBLANG_TIGRINYA_ERITREA 0x01
++# define SUBLANG_TIGRINYA_ERITREA 0x02
+ # endif
+ # ifndef SUBLANG_URDU_PAKISTAN
+ # define SUBLANG_URDU_PAKISTAN 0x01
+@@ -1378,8 +1378,8 @@
+ case LANG_SINDHI:
+ switch (sub)
+ {
+- case SUBLANG_SINDHI_INDIA: return "sd_IN";
+ case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
++ case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF";
+ }
+ return "sd";
+ case LANG_SINHALESE: return "si_LK";
+@@ -1432,7 +1432,7 @@
+ {
+ /* FIXME: Adjust this when Tamazight locales appear on Unix. */
+ case SUBLANG_TAMAZIGHT_ARABIC: return "address at hidden";
+- case SUBLANG_TAMAZIGHT_LATIN: return "address at hidden";
++ case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "address at hidden";
+ }
+ return "ber_MA";
+ case LANG_TAMIL:
diff --git a/intl/CMakeLists.txt b/intl/CMakeLists.txt
new file mode 100644
index 0000000..324fdcd
--- /dev/null
+++ b/intl/CMakeLists.txt
@@ -0,0 +1,120 @@
+# Build script for libintl. This was copied, with only slight
+# modifications, from the LyX project---thanks! See attribution below.
+#
+# Modifications by Timothy E. Holy, 2008
+
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+#
+# Copyright (c) 2006, Peter Kümmel, <syntheticpp at gmx.net>
+#
+
+# If you're building this as part of a larger package, the following
+# variables can be set upon entry:
+# INTL_BINARY_DIR
+# INTL_SOURCE_DIR
+# LOCALE_DIR
+# TOP_SRC_DIR ?
+# PREFIX ?
+
+project(intl)
+
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+include(CheckFunctionExists)
+
+# We require the iconv library to be available
+find_package(Iconv REQUIRED)
+#message("Iconv const: ${ICONV_SECOND_ARGUMENT_IS_CONST}")
+add_definitions(-DHAVE_ICONV=1)
+
+# This can either be called in standalone mode, or as part of a larger
+# project. For that reason, we need to examine whether certain settings
+# have been made before, or not.
+if (NOT CONFIGURECHECKSINTL_DONE)
+ include(ConfigureChecksIntl)
+endif ()
+if (NOT INTL_BINARY_DIR)
+ set(INTL_BINARY_DIR ${CMAKE_BINARY_DIR})
+endif ()
+if (NOT INTL_SOURCE_DIR)
+ set(INTL_SOURCE_DIR ${CMAKE_SOURCE_DIR})
+endif ()
+
+# Generate the appropriate header files
+configure_file(libgnuintl.h.in ${INTL_BINARY_DIR}/libgnuintl.h)
+configure_file(${INTL_BINARY_DIR}/libgnuintl.h ${INTL_BINARY_DIR}/libintl.h COPYONLY)
+# Generate the appropriate config.h file
+configure_file(intl_config.h.cmake ${INTL_BINARY_DIR}/config.h)
+
+add_definitions(
+ -DHAVE_CONFIG_H=1
+ -DMAKE_INTL_LIB
+ -DIN_LIBINTL
+ -DENABLE_RELOCATABLE=1
+ -DIN_LIBRARY
+ -DNO_XMALLOC
+ -Dset_relocation_prefix=libintl_set_relocation_prefix
+ -Drelocate=libintl_relocate
+ -DDEPENDS_ON_LIBICONV=1
+ )
+
+if (NOT APPLE)
+add_definitions(
+ -DLOCALEDIR=\\"${LOCALE_DIR}\\"
+ -DLOCALE_ALIAS_PATH=\\"${LOCALE_DIR}\\"
+ -DLIBDIR=\\"${TOP_SRC_DIR}\\"
+ -DINSTALLDIR=\\"${PREFIX}\\"
+ )
+else (NOT APPLE)
+add_definitions(
+ -DLOCALEDIR='\"${LOCALE_DIR}\"'
+ -DLOCALE_ALIAS_PATH='\"${LOCALE_DIR}\"'
+ -DLIBDIR='\"${TOP_SRC_DIR}\"'
+ -DINSTALLDIR='\"${PREFIX}\"'
+ )
+endif (NOT APPLE)
+
+file(GLOB INTL_HEADERS ${INTL_SOURCE_DIR}/*.h)
+
+set(INTL_SOURCES
+ bindtextdom.c
+ dcgettext.c
+ dgettext.c
+ gettext.c
+ finddomain.c
+ loadmsgcat.c
+ localealias.c
+ textdomain.c
+ l10nflist.c
+ explodename.c
+ dcigettext.c
+ dcngettext.c
+ dngettext.c
+ hash-string.c
+ langprefs.c
+ ngettext.c
+ plural.c
+ plural-exp.c
+ localcharset.c
+ relocatable.c
+ localename.c
+ log.c
+ printf.c
+ osdep.c
+ intl-compat.c
+)
+
+include_directories(${INTL_BINARY_DIR} ${INTL_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
+if(ICONV_FOUND)
+ include_directories(${ICONV_INCLUDE_DIR})
+endif(ICONV_FOUND)
+
+add_library(intl STATIC ${INTL_SOURCES} ${INTL_HEADERS})
+
+if(ICONV_FOUND)
+ target_link_libraries(intl ${ICONV_LIBRARY})
+endif(ICONV_FOUND)
+
+#project_source_group("${GROUP_CODE}" INTL_SOURCES INTL_HEADERS)
+
diff --git a/intl/ChangeLog b/intl/ChangeLog
new file mode 100644
index 0000000..3ec9081
--- /dev/null
+++ b/intl/ChangeLog
@@ -0,0 +1,4 @@
+2007-11-07 GNU <bug-gnu-gettext at gnu.org>
+
+ * Version 0.17 released.
+
diff --git a/intl/Makefile.in b/intl/Makefile.in
new file mode 100644
index 0000000..cfed085
--- /dev/null
+++ b/intl/Makefile.in
@@ -0,0 +1,587 @@
+# Makefile for directory with message catalog handling library of GNU gettext
+# Copyright (C) 1995-1998, 2000-2007 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+top_builddir = ..
+
+# The VPATH variables allows builds with $builddir != $srcdir, assuming a
+# 'make' program that supports VPATH (such as GNU make). This line is removed
+# by autoconf automatically when "$(srcdir)" = ".".
+# In this directory, the VPATH handling is particular:
+# 1. If INTL_LIBTOOL_SUFFIX_PREFIX is 'l' (indicating a build with libtool),
+# the .c -> .lo rules carefully use $(srcdir), so that VPATH can be omitted.
+# 2. If PACKAGE = gettext-tools, VPATH _must_ be omitted, because otherwise
+# 'make' does the wrong thing if GNU gettext was configured with
+# "./configure --srcdir=`pwd`", namely it gets confused by the .lo and .la
+# files it finds in srcdir = ../../gettext-runtime/intl.
+VPATH = $(srcdir)
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+transform = @program_transform_name@
+libdir = @libdir@
+includedir = @includedir@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/intl
+aliaspath = $(localedir)
+subdir = intl
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+l = @INTL_LIBTOOL_SUFFIX_PREFIX@
+
+AR = ar
+CC = @CC@
+LIBTOOL = @LIBTOOL@
+RANLIB = @RANLIB@
+YACC = @INTLBISON@ -y -d
+YFLAGS = --name-prefix=__gettext
+WINDRES = @WINDRES@
+
+# -DBUILDING_LIBINTL: Change expansion of LIBINTL_DLL_EXPORTED macro.
+# -DBUILDING_DLL: Change expansion of RELOCATABLE_DLL_EXPORTED macro.
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
+-DLIBDIR=\"$(libdir)\" -DBUILDING_LIBINTL -DBUILDING_DLL -DIN_LIBINTL \
+-DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
+-Dset_relocation_prefix=libintl_set_relocation_prefix \
+-Drelocate=libintl_relocate \
+-DDEPENDS_ON_LIBICONV=1 @DEFS@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = @CFLAGS@ @CFLAG_VISIBILITY@
+LDFLAGS = @LDFLAGS@ $(LDFLAGS_ at WOE32DLL@)
+LDFLAGS_yes = -Wl,--export-all-symbols
+LDFLAGS_no =
+LIBS = @LIBS@
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+HEADERS = \
+ gmo.h \
+ gettextP.h \
+ hash-string.h \
+ loadinfo.h \
+ plural-exp.h \
+ eval-plural.h \
+ localcharset.h \
+ lock.h \
+ relocatable.h \
+ tsearch.h tsearch.c \
+ xsize.h \
+ printf-args.h printf-args.c \
+ printf-parse.h wprintf-parse.h printf-parse.c \
+ vasnprintf.h vasnwprintf.h vasnprintf.c \
+ os2compat.h \
+ libgnuintl.h.in
+SOURCES = \
+ bindtextdom.c \
+ dcgettext.c \
+ dgettext.c \
+ gettext.c \
+ finddomain.c \
+ hash-string.c \
+ loadmsgcat.c \
+ localealias.c \
+ textdomain.c \
+ l10nflist.c \
+ explodename.c \
+ dcigettext.c \
+ dcngettext.c \
+ dngettext.c \
+ ngettext.c \
+ plural.y \
+ plural-exp.c \
+ localcharset.c \
+ lock.c \
+ relocatable.c \
+ langprefs.c \
+ localename.c \
+ log.c \
+ printf.c \
+ version.c \
+ osdep.c \
+ os2compat.c \
+ intl-exports.c \
+ intl-compat.c
+OBJECTS = \
+ bindtextdom.$lo \
+ dcgettext.$lo \
+ dgettext.$lo \
+ gettext.$lo \
+ finddomain.$lo \
+ hash-string.$lo \
+ loadmsgcat.$lo \
+ localealias.$lo \
+ textdomain.$lo \
+ l10nflist.$lo \
+ explodename.$lo \
+ dcigettext.$lo \
+ dcngettext.$lo \
+ dngettext.$lo \
+ ngettext.$lo \
+ plural.$lo \
+ plural-exp.$lo \
+ localcharset.$lo \
+ lock.$lo \
+ relocatable.$lo \
+ langprefs.$lo \
+ localename.$lo \
+ log.$lo \
+ printf.$lo \
+ version.$lo \
+ osdep.$lo \
+ intl-compat.$lo
+OBJECTS_RES_yes = libintl.res
+OBJECTS_RES_no =
+DISTFILES.common = Makefile.in \
+config.charset locale.alias ref-add.sin ref-del.sin export.h libintl.rc \
+$(HEADERS) $(SOURCES)
+DISTFILES.generated = plural.c
+DISTFILES.normal = VERSION
+DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc README.woe32
+DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
+COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h \
+libgnuintl.h_vms Makefile.vms libgnuintl.h.msvc-static \
+libgnuintl.h.msvc-shared Makefile.msvc
+
+all: all- at USE_INCLUDED_LIBINTL@
+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
+all-no: all-no- at BUILD_INCLUDED_LIBINTL@
+all-no-yes: libgnuintl.$la
+all-no-no:
+
+libintl.a libgnuintl.a: $(OBJECTS)
+ rm -f $@
+ $(AR) cru $@ $(OBJECTS)
+ $(RANLIB) $@
+
+libintl.la libgnuintl.la: $(OBJECTS) $(OBJECTS_RES_ at WOE32@)
+ $(LIBTOOL) --mode=link \
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJECTS) @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(LIBS) @LTLIBTHREAD@ @LTLIBC@ \
+ $(OBJECTS_RES_ at WOE32@) \
+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
+ -rpath $(libdir) \
+ -no-undefined
+
+# Libtool's library version information for libintl.
+# Before making a gettext release, the gettext maintainer must change this
+# according to the libtool documentation, section "Library interface versions".
+# Maintainers of other packages that include the intl directory must *not*
+# change these values.
+LTV_CURRENT=8
+LTV_REVISION=2
+LTV_AGE=0
+
+.SUFFIXES:
+.SUFFIXES: .c .y .o .lo .sin .sed
+
+.c.o:
+ $(COMPILE) $<
+
+.y.c:
+ $(YACC) $(YFLAGS) --output $@ $<
+ rm -f $*.h
+
+bindtextdom.lo: $(srcdir)/bindtextdom.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c
+dcgettext.lo: $(srcdir)/dcgettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c
+dgettext.lo: $(srcdir)/dgettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c
+gettext.lo: $(srcdir)/gettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
+finddomain.lo: $(srcdir)/finddomain.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
+hash-string.lo: $(srcdir)/hash-string.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/hash-string.c
+loadmsgcat.lo: $(srcdir)/loadmsgcat.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
+localealias.lo: $(srcdir)/localealias.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c
+textdomain.lo: $(srcdir)/textdomain.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c
+l10nflist.lo: $(srcdir)/l10nflist.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c
+explodename.lo: $(srcdir)/explodename.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c
+dcigettext.lo: $(srcdir)/dcigettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c
+dcngettext.lo: $(srcdir)/dcngettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c
+dngettext.lo: $(srcdir)/dngettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c
+ngettext.lo: $(srcdir)/ngettext.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c
+plural.lo: $(srcdir)/plural.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c
+plural-exp.lo: $(srcdir)/plural-exp.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
+localcharset.lo: $(srcdir)/localcharset.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
+lock.lo: $(srcdir)/lock.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/lock.c
+relocatable.lo: $(srcdir)/relocatable.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
+langprefs.lo: $(srcdir)/langprefs.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/langprefs.c
+localename.lo: $(srcdir)/localename.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
+log.lo: $(srcdir)/log.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
+printf.lo: $(srcdir)/printf.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
+version.lo: $(srcdir)/version.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/version.c
+osdep.lo: $(srcdir)/osdep.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
+intl-compat.lo: $(srcdir)/intl-compat.c
+ $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c
+
+# This rule is executed only on Woe32 systems.
+# The following sed expressions come from the windres-options script. They are
+# inlined here, so that they can be written in a Makefile without requiring a
+# temporary file. They must contain literal newlines rather than semicolons,
+# so that they work with the sed-3.02 that is shipped with MSYS. We can use
+# GNU bash's $'\n' syntax to obtain such a newline.
+libintl.res: $(srcdir)/libintl.rc
+ nl=$$'\n'; \
+ sed_extract_major='/^[0-9]/{'$${nl}'s/^\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \
+ sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \
+ sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \
+ $(WINDRES) \
+ "-DPACKAGE_VERSION_STRING=\\\"$(VERSION)\\\"" \
+ "-DPACKAGE_VERSION_MAJOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_major"` \
+ "-DPACKAGE_VERSION_MINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_minor"` \
+ "-DPACKAGE_VERSION_SUBMINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_subminor"` \
+ -i $(srcdir)/libintl.rc -o libintl.res --output-format=coff
+
+ref-add.sed: $(srcdir)/ref-add.sin
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed
+ mv t-ref-add.sed ref-add.sed
+ref-del.sed: $(srcdir)/ref-del.sin
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed
+ mv t-ref-del.sed ref-del.sed
+
+INCLUDES = -I. -I$(srcdir) -I..
+
+libgnuintl.h: $(srcdir)/libgnuintl.h.in
+ sed -e '/IN_LIBGLOCALE/d' \
+ -e 's,@''HAVE_POSIX_PRINTF''@, at HAVE_POSIX_PRINTF@,g' \
+ -e 's,@''HAVE_ASPRINTF''@, at HAVE_ASPRINTF@,g' \
+ -e 's,@''HAVE_SNPRINTF''@, at HAVE_SNPRINTF@,g' \
+ -e 's,@''HAVE_WPRINTF''@, at HAVE_WPRINTF@,g' \
+ < $(srcdir)/libgnuintl.h.in \
+ | if test '@WOE32DLL@' = yes; then \
+ sed -e 's/extern \([^()]*\);/extern __declspec (dllimport) \1;/'; \
+ else \
+ cat; \
+ fi \
+ | sed -e 's/extern \([^"]\)/extern LIBINTL_DLL_EXPORTED \1/' \
+ -e "/#define _LIBINTL_H/r $(srcdir)/export.h" \
+ | sed -e 's,@''HAVE_VISIBILITY''@, at HAVE_VISIBILITY@,g' \
+ > libgnuintl.h
+
+libintl.h: $(srcdir)/libgnuintl.h.in
+ sed -e '/IN_LIBGLOCALE/d' \
+ -e 's,@''HAVE_POSIX_PRINTF''@, at HAVE_POSIX_PRINTF@,g' \
+ -e 's,@''HAVE_ASPRINTF''@, at HAVE_ASPRINTF@,g' \
+ -e 's,@''HAVE_SNPRINTF''@, at HAVE_SNPRINTF@,g' \
+ -e 's,@''HAVE_WPRINTF''@, at HAVE_WPRINTF@,g' \
+ < $(srcdir)/libgnuintl.h.in > libintl.h
+
+charset.alias: $(srcdir)/config.charset
+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+ mv t-$@ $@
+
+check: all
+
+# We must not install the libintl.h/libintl.a files if we are on a
+# system which has the GNU gettext() function in its C library or in a
+# separate library.
+# If you want to use the one which comes with this version of the
+# package, you have to use `configure --with-included-gettext'.
+install: install-exec install-data
+install-exec: all
+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=install \
+ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
+ if test "@RELOCATABLE@" = yes; then \
+ dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
+ if test -n "$$dependencies"; then \
+ rm -f $(DESTDIR)$(libdir)/libintl.la; \
+ fi; \
+ fi; \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext-tools" \
+ && test '@USE_INCLUDED_LIBINTL@' = no \
+ && test @GLIBC2@ != no; then \
+ $(mkdir_p) $(DESTDIR)$(libdir); \
+ $(LIBTOOL) --mode=install \
+ $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
+ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+ $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+ $(LIBTOOL) --mode=uninstall \
+ rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ orig=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ else \
+ if test @GLIBC21@ = no; then \
+ orig=charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ fi; \
+ fi; \
+ $(mkdir_p) $(DESTDIR)$(localedir); \
+ test -f $(DESTDIR)$(localedir)/locale.alias \
+ && orig=$(DESTDIR)$(localedir)/locale.alias \
+ || orig=$(srcdir)/locale.alias; \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ else \
+ : ; \
+ fi
+install-data: all
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
+ dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
+ for file in $$dists; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
+ dists="$(DISTFILES.generated)"; \
+ for file in $$dists; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ $(INSTALL_DATA) $$dir/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ dists="$(DISTFILES.obsolete)"; \
+ for file in $$dists; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+install-strip: install
+
+install-dvi install-html install-info install-ps install-pdf:
+
+installdirs:
+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ $(mkdir_p) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext-tools" \
+ && test '@USE_INCLUDED_LIBINTL@' = no \
+ && test @GLIBC2@ != no; then \
+ $(mkdir_p) $(DESTDIR)$(libdir); \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ test @GLIBC21@ != no || $(mkdir_p) $(DESTDIR)$(libdir); \
+ $(mkdir_p) $(DESTDIR)$(localedir); \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+ if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+ && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ rm -f $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=uninstall \
+ rm -f $(DESTDIR)$(libdir)/libintl.$la; \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext-tools" \
+ && test '@USE_INCLUDED_LIBINTL@' = no \
+ && test @GLIBC2@ != no; then \
+ rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+
+info dvi ps pdf html:
+
+$(OBJECTS): ../config.h libgnuintl.h
+bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
+hash-string.$lo dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
+explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
+dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
+dcigettext.$lo: $(srcdir)/eval-plural.h
+localcharset.$lo: $(srcdir)/localcharset.h
+bindtextdom.$lo dcigettext.$lo finddomain.$lo loadmsgcat.$lo localealias.$lo lock.$lo log.$lo: $(srcdir)/lock.h
+localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
+printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c
+
+# A bison-2.1 generated plural.c includes <libintl.h> if ENABLE_NLS.
+PLURAL_DEPS_yes = libintl.h
+PLURAL_DEPS_no =
+plural.$lo: $(PLURAL_DEPS_ at USE_INCLUDED_LIBINTL@)
+
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+
+ctags: CTAGS
+
+CTAGS: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
+
+id: ID
+
+ID: $(HEADERS) $(SOURCES)
+ here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+
+
+mostlyclean:
+ rm -f *.a *.la *.o *.obj *.lo libintl.res core core.*
+ rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
+ rm -f -r .libs _libs
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile ID TAGS
+ if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \
+ rm -f ChangeLog.inst $(DISTFILES.normal); \
+ else \
+ : ; \
+ fi
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+
+# GNU gettext needs not contain the file `VERSION' but contains some
+# other files which should not be distributed in other packages.
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: Makefile
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ : ; \
+ else \
+ if test "$(PACKAGE)" = "gettext-runtime"; then \
+ additional="$(DISTFILES.gettext)"; \
+ else \
+ additional="$(DISTFILES.normal)"; \
+ fi; \
+ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
+ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ cp -p $$dir/$$file $(distdir) || test $$file = Makefile.in || exit 1; \
+ done; \
+ fi
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status
+# This would be more efficient, but doesn't work any more with autoconf-2.57,
+# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
+# cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/intl/VERSION b/intl/VERSION
new file mode 100644
index 0000000..889d4e9
--- /dev/null
+++ b/intl/VERSION
@@ -0,0 +1 @@
+GNU gettext library from gettext-0.17
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
new file mode 100644
index 0000000..dab5d4f
--- /dev/null
+++ b/intl/bindtextdom.c
@@ -0,0 +1,340 @@
+/* Implementation of the bindtextdomain(3) function
+ Copyright (C) 1995-1998, 2000-2003, 2005-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+# define gl_rwlock_define __libc_rwlock_define
+# define gl_rwlock_wrlock __libc_rwlock_wrlock
+# define gl_rwlock_unlock __libc_rwlock_unlock
+#else
+# include "lock.h"
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Lock variable to protect the global data in the gettext implementation. */
+gl_rwlock_define (extern, _nl_state_lock attribute_hidden)
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define BINDTEXTDOMAIN __bindtextdomain
+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define BINDTEXTDOMAIN libintl_bindtextdomain
+# define BIND_TEXTDOMAIN_CODESET libintl_bind_textdomain_codeset
+#endif
+
+/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
+ to be used for the DOMAINNAME message catalog.
+ If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
+ modified, only the current value is returned.
+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
+ modified nor returned. */
+static void
+set_binding_values (const char *domainname,
+ const char **dirnamep, const char **codesetp)
+{
+ struct binding *binding;
+ int modified;
+
+ /* Some sanity checks. */
+ if (domainname == NULL || domainname[0] == '\0')
+ {
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ return;
+ }
+
+ gl_rwlock_wrlock (_nl_state_lock);
+
+ modified = 0;
+
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding != NULL)
+ {
+ if (dirnamep)
+ {
+ const char *dirname = *dirnamep;
+
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ *dirnamep = binding->dirname;
+ else
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->dirname;
+ if (strcmp (dirname, result) != 0)
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ result = (char *) _nl_default_dirname;
+ else
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (dirname);
+#else
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, dirname, len);
+#endif
+ }
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = result;
+ modified = 1;
+ }
+ }
+ *dirnamep = result;
+ }
+ }
+
+ if (codesetp)
+ {
+ const char *codeset = *codesetp;
+
+ if (codeset == NULL)
+ /* The current binding has be to returned. */
+ *codesetp = binding->codeset;
+ else
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->codeset;
+ if (result == NULL || strcmp (codeset, result) != 0)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (codeset);
+#else
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, codeset, len);
+#endif
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->codeset != NULL)
+ free (binding->codeset);
+
+ binding->codeset = result;
+ modified = 1;
+ }
+ }
+ *codesetp = result;
+ }
+ }
+ }
+ else if ((dirnamep == NULL || *dirnamep == NULL)
+ && (codesetp == NULL || *codesetp == NULL))
+ {
+ /* Simply return the default values. */
+ if (dirnamep)
+ *dirnamep = _nl_default_dirname;
+ if (codesetp)
+ *codesetp = NULL;
+ }
+ else
+ {
+ /* We have to create a new binding. */
+ size_t len = strlen (domainname) + 1;
+ struct binding *new_binding =
+ (struct binding *) malloc (offsetof (struct binding, domainname) + len);
+
+ if (__builtin_expect (new_binding == NULL, 0))
+ goto failed;
+
+ memcpy (new_binding->domainname, domainname, len);
+
+ if (dirnamep)
+ {
+ const char *dirname = *dirnamep;
+
+ if (dirname == NULL)
+ /* The default value. */
+ dirname = _nl_default_dirname;
+ else
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ dirname = _nl_default_dirname;
+ else
+ {
+ char *result;
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (dirname);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
+#else
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
+ memcpy (result, dirname, len);
+#endif
+ dirname = result;
+ }
+ }
+ *dirnamep = dirname;
+ new_binding->dirname = (char *) dirname;
+ }
+ else
+ /* The default value. */
+ new_binding->dirname = (char *) _nl_default_dirname;
+
+ if (codesetp)
+ {
+ const char *codeset = *codesetp;
+
+ if (codeset != NULL)
+ {
+ char *result;
+
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (codeset);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
+#else
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
+ memcpy (result, codeset, len);
+#endif
+ codeset = result;
+ }
+ *codesetp = codeset;
+ new_binding->codeset = (char *) codeset;
+ }
+ else
+ new_binding->codeset = NULL;
+
+ /* Now enqueue it. */
+ if (_nl_domain_bindings == NULL
+ || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
+ {
+ new_binding->next = _nl_domain_bindings;
+ _nl_domain_bindings = new_binding;
+ }
+ else
+ {
+ binding = _nl_domain_bindings;
+ while (binding->next != NULL
+ && strcmp (domainname, binding->next->domainname) > 0)
+ binding = binding->next;
+
+ new_binding->next = binding->next;
+ binding->next = new_binding;
+ }
+
+ modified = 1;
+
+ /* Here we deal with memory allocation failures. */
+ if (0)
+ {
+ failed_codeset:
+ if (new_binding->dirname != _nl_default_dirname)
+ free (new_binding->dirname);
+ failed_dirname:
+ free (new_binding);
+ failed:
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ }
+ }
+
+ /* If we modified any binding, we flush the caches. */
+ if (modified)
+ ++_nl_msg_cat_cntr;
+
+ gl_rwlock_unlock (_nl_state_lock);
+}
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+char *
+BINDTEXTDOMAIN (const char *domainname, const char *dirname)
+{
+ set_binding_values (domainname, &dirname, NULL);
+ return (char *) dirname;
+}
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+char *
+BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset)
+{
+ set_binding_values (domainname, NULL, &codeset);
+ return (char *) codeset;
+}
+
+#ifdef _LIBC
+/* Aliases for function names in GNU C Library. */
+weak_alias (__bindtextdomain, bindtextdomain);
+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
+#endif
diff --git a/intl/config.charset b/intl/config.charset
new file mode 100755
index 0000000..e8c258b
--- /dev/null
+++ b/intl/config.charset
@@ -0,0 +1,640 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-2004, 2006 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+# The table consists of lines of the form
+# ALIAS CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+# name MIME? used by which systems
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin
+# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# ISO-8859-3 Y glibc solaris
+# ISO-8859-4 Y osf solaris freebsd netbsd darwin
+# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# ISO-8859-6 Y glibc aix hpux solaris
+# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd darwin
+# ISO-8859-8 Y glibc aix hpux osf solaris
+# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin
+# ISO-8859-13 glibc netbsd darwin
+# ISO-8859-14 glibc
+# ISO-8859-15 glibc aix osf solaris freebsd darwin
+# KOI8-R Y glibc solaris freebsd netbsd darwin
+# KOI8-U Y glibc freebsd netbsd darwin
+# KOI8-T glibc
+# CP437 dos
+# CP775 dos
+# CP850 aix osf dos
+# CP852 dos
+# CP855 dos
+# CP856 aix
+# CP857 dos
+# CP861 dos
+# CP862 dos
+# CP864 dos
+# CP865 dos
+# CP866 freebsd netbsd darwin dos
+# CP869 dos
+# CP874 woe32 dos
+# CP922 aix
+# CP932 aix woe32 dos
+# CP943 aix
+# CP949 osf woe32 dos
+# CP950 woe32 dos
+# CP1046 aix
+# CP1124 aix
+# CP1125 dos
+# CP1129 aix
+# CP1250 woe32
+# CP1251 glibc solaris netbsd darwin woe32
+# CP1252 aix woe32
+# CP1253 woe32
+# CP1254 woe32
+# CP1255 glibc woe32
+# CP1256 woe32
+# CP1257 woe32
+# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin
+# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin
+# EUC-TW glibc aix hpux irix osf solaris netbsd
+# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin
+# BIG5-HKSCS glibc solaris
+# GBK glibc aix osf solaris woe32 dos
+# GB18030 glibc solaris netbsd
+# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin
+# JOHAB glibc solaris woe32
+# TIS-620 glibc aix hpux osf solaris
+# VISCII Y glibc
+# TCVN5712-1 glibc
+# GEORGIAN-PS glibc
+# HP-ROMAN8 hpux
+# HP-ARABIC8 hpux
+# HP-GREEK8 hpux
+# HP-HEBREW8 hpux
+# HP-TURKISH8 hpux
+# HP-KANA8 hpux
+# DEC-KANJI osf
+# DEC-HANYU osf
+# UTF-8 Y glibc aix hpux osf solaris netbsd darwin
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+ linux-gnulibc1*)
+ # Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ echo "POSIX ASCII"
+ for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+ en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+ en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+ es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+ et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+ fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+ it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+ sv_FI sv_SE; do
+ echo "$l ISO-8859-1"
+ echo "$l.iso-8859-1 ISO-8859-1"
+ echo "$l.iso-8859-15 ISO-8859-15"
+ echo "$l.iso-8859-15 at euro ISO-8859-15"
+ echo "$l at euro ISO-8859-15"
+ echo "$l.cp-437 CP437"
+ echo "$l.cp-850 CP850"
+ echo "$l.cp-1252 CP1252"
+ echo "$l.cp-1252 at euro CP1252"
+ #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+ echo "$l.utf-8 UTF-8"
+ echo "$l.utf-8 at euro UTF-8"
+ done
+ for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+ sl_SI sr sr_CS sr_YU; do
+ echo "$l ISO-8859-2"
+ echo "$l.iso-8859-2 ISO-8859-2"
+ echo "$l.cp-852 CP852"
+ echo "$l.cp-1250 CP1250"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in mk mk_MK ru ru_RU; do
+ echo "$l ISO-8859-5"
+ echo "$l.iso-8859-5 ISO-8859-5"
+ echo "$l.koi8-r KOI8-R"
+ echo "$l.cp-866 CP866"
+ echo "$l.cp-1251 CP1251"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in ar ar_SA; do
+ echo "$l ISO-8859-6"
+ echo "$l.iso-8859-6 ISO-8859-6"
+ echo "$l.cp-864 CP864"
+ #echo "$l.cp-868 CP868" # not a commonly used encoding
+ echo "$l.cp-1256 CP1256"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in el el_GR gr gr_GR; do
+ echo "$l ISO-8859-7"
+ echo "$l.iso-8859-7 ISO-8859-7"
+ echo "$l.cp-869 CP869"
+ echo "$l.cp-1253 CP1253"
+ echo "$l.cp-1253 at euro CP1253"
+ echo "$l.utf-8 UTF-8"
+ echo "$l.utf-8 at euro UTF-8"
+ done
+ for l in he he_IL iw iw_IL; do
+ echo "$l ISO-8859-8"
+ echo "$l.iso-8859-8 ISO-8859-8"
+ echo "$l.cp-862 CP862"
+ echo "$l.cp-1255 CP1255"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in tr tr_TR; do
+ echo "$l ISO-8859-9"
+ echo "$l.iso-8859-9 ISO-8859-9"
+ echo "$l.cp-857 CP857"
+ echo "$l.cp-1254 CP1254"
+ echo "$l.utf-8 UTF-8"
+ done
+ for l in lt lt_LT lv lv_LV; do
+ #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+ echo "$l ISO-8859-13"
+ done
+ for l in ru_UA uk uk_UA; do
+ echo "$l KOI8-U"
+ done
+ for l in zh zh_CN; do
+ #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+ echo "$l GB2312"
+ done
+ for l in ja ja_JP ja_JP.EUC; do
+ echo "$l EUC-JP"
+ done
+ for l in ko ko_KR; do
+ echo "$l EUC-KR"
+ done
+ for l in th th_TH; do
+ echo "$l TIS-620"
+ done
+ for l in fa fa_IR; do
+ #echo "$l ISIRI-3342" # a broken encoding
+ echo "$l.utf-8 UTF-8"
+ done
+ ;;
+ linux* | *-gnu*)
+ # With glibc-2.1 or newer, we don't need any canonicalization,
+ # because glibc has iconv and both glibc and libiconv support all
+ # GNU canonical names directly. Therefore, the Makefile does not
+ # need to install the alias file at all.
+ # The following applies only to glibc-2.0.x and older libcs.
+ echo "ISO_646.IRV:1983 ASCII"
+ ;;
+ aix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "IBM-850 CP850"
+ echo "IBM-856 CP856"
+ echo "IBM-921 ISO-8859-13"
+ echo "IBM-922 CP922"
+ echo "IBM-932 CP932"
+ echo "IBM-943 CP943"
+ echo "IBM-1046 CP1046"
+ echo "IBM-1124 CP1124"
+ echo "IBM-1129 CP1129"
+ echo "IBM-1252 CP1252"
+ echo "IBM-eucCN GB2312"
+ echo "IBM-eucJP EUC-JP"
+ echo "IBM-eucKR EUC-KR"
+ echo "IBM-eucTW EUC-TW"
+ echo "big5 BIG5"
+ echo "GBK GBK"
+ echo "TIS-620 TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ hpux*)
+ echo "iso88591 ISO-8859-1"
+ echo "iso88592 ISO-8859-2"
+ echo "iso88595 ISO-8859-5"
+ echo "iso88596 ISO-8859-6"
+ echo "iso88597 ISO-8859-7"
+ echo "iso88598 ISO-8859-8"
+ echo "iso88599 ISO-8859-9"
+ echo "iso885915 ISO-8859-15"
+ echo "roman8 HP-ROMAN8"
+ echo "arabic8 HP-ARABIC8"
+ echo "greek8 HP-GREEK8"
+ echo "hebrew8 HP-HEBREW8"
+ echo "turkish8 HP-TURKISH8"
+ echo "kana8 HP-KANA8"
+ echo "tis620 TIS-620"
+ echo "big5 BIG5"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "hp15CN GB2312"
+ #echo "ccdc ?" # what is this?
+ echo "SJIS SHIFT_JIS"
+ echo "utf8 UTF-8"
+ ;;
+ irix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ ;;
+ osf*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "cp850 CP850"
+ echo "big5 BIG5"
+ echo "dechanyu DEC-HANYU"
+ echo "dechanzi GB2312"
+ echo "deckanji DEC-KANJI"
+ echo "deckorean EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "GBK GBK"
+ echo "KSC5601 CP949"
+ echo "sdeckanji EUC-JP"
+ echo "SJIS SHIFT_JIS"
+ echo "TACTIS TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ solaris*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-3 ISO-8859-3"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "koi8-r KOI8-R"
+ echo "ansi-1251 CP1251"
+ echo "BIG5 BIG5"
+ echo "Big5-HKSCS BIG5-HKSCS"
+ echo "gb2312 GB2312"
+ echo "GBK GBK"
+ echo "GB18030 GB18030"
+ echo "cns11643 EUC-TW"
+ echo "5601 EUC-KR"
+ echo "ko_KR.johap92 JOHAB"
+ echo "eucJP EUC-JP"
+ echo "PCK SHIFT_JIS"
+ echo "TIS620.2533 TIS-620"
+ #echo "sun_eu_greek ?" # what is this?
+ echo "UTF-8 UTF-8"
+ ;;
+ freebsd* | os2*)
+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+ # reuse FreeBSD's locale data for OS/2.
+ echo "C ASCII"
+ echo "US-ASCII ASCII"
+ for l in la_LN lt_LN; do
+ echo "$l.ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+ echo "$l.ISO_8859-1 ISO-8859-1"
+ echo "$l.DIS_8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+ echo "$l.ISO_8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO_8859-4 ISO-8859-4"
+ done
+ for l in ru_RU ru_SU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO_8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ja_JP.Shift_JIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ netbsd*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-13 ISO-8859-13"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "BIG5 BIG5"
+ echo "SJIS SHIFT_JIS"
+ ;;
+ darwin[56]*)
+ # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ for l in en_AU en_CA en_GB en_US la_LN; do
+ echo "$l.US-ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+ nl_NL no_NO pt_PT sv_SE; do
+ echo "$l ISO-8859-1"
+ echo "$l.ISO8859-1 ISO-8859-1"
+ echo "$l.ISO8859-15 ISO-8859-15"
+ done
+ for l in la_LN; do
+ echo "$l.ISO8859-1 ISO-8859-1"
+ echo "$l.ISO8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+ echo "$l.ISO8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO8859-4 ISO-8859-4"
+ done
+ for l in ru_RU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ for l in bg_BG; do
+ echo "$l.CP1251 CP1251"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ darwin*)
+ # Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+ # - It returns the empty string when LANG is set to a locale of the
+ # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+ # LC_CTYPE file.
+ # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+ # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+ # - The documentation says:
+ # "... all code that calls BSD system routines should ensure
+ # that the const *char parameters of these routines are in UTF-8
+ # encoding. All BSD system functions expect their string
+ # parameters to be in UTF-8 encoding and nothing else."
+ # It also says
+ # "An additional caveat is that string parameters for files,
+ # paths, and other file-system entities must be in canonical
+ # UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+ # characters are decomposed ..."
+ # but this is not true: You can pass non-decomposed UTF-8 strings
+ # to file system functions, and it is the OS which will convert
+ # them to decomposed UTF-8 before accessing the file system.
+ # - The Apple Terminal application displays UTF-8 by default.
+ # - However, other applications are free to use different encodings:
+ # - xterm uses ISO-8859-1 by default.
+ # - TextEdit uses MacRoman by default.
+ # We prefer UTF-8 over decomposed UTF-8-MAC because one should
+ # minimize the use of decomposed Unicode. Unfortunately, through the
+ # Darwin file system, decomposed UTF-8 strings are leaked into user
+ # space nevertheless.
+ echo "* UTF-8"
+ ;;
+ beos*)
+ # BeOS has a single locale, and it has UTF-8 encoding.
+ echo "* UTF-8"
+ ;;
+ msdosdjgpp*)
+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "#"
+ echo "# The encodings given here may not all be correct."
+ echo "# If you find that the encoding given for your language and"
+ echo "# country is not the one your DOS machine actually uses, just"
+ echo "# correct it in this file, and send a mail to"
+ echo "# Juan Manuel Guerrero <juan.guerrero at gmx.de>"
+ echo "# and Bruno Haible <bruno at clisp.org>."
+ echo "#"
+ echo "C ASCII"
+ # ISO-8859-1 languages
+ echo "ca CP850"
+ echo "ca_ES CP850"
+ echo "da CP865" # not CP850 ??
+ echo "da_DK CP865" # not CP850 ??
+ echo "de CP850"
+ echo "de_AT CP850"
+ echo "de_CH CP850"
+ echo "de_DE CP850"
+ echo "en CP850"
+ echo "en_AU CP850" # not CP437 ??
+ echo "en_CA CP850"
+ echo "en_GB CP850"
+ echo "en_NZ CP437"
+ echo "en_US CP437"
+ echo "en_ZA CP850" # not CP437 ??
+ echo "es CP850"
+ echo "es_AR CP850"
+ echo "es_BO CP850"
+ echo "es_CL CP850"
+ echo "es_CO CP850"
+ echo "es_CR CP850"
+ echo "es_CU CP850"
+ echo "es_DO CP850"
+ echo "es_EC CP850"
+ echo "es_ES CP850"
+ echo "es_GT CP850"
+ echo "es_HN CP850"
+ echo "es_MX CP850"
+ echo "es_NI CP850"
+ echo "es_PA CP850"
+ echo "es_PY CP850"
+ echo "es_PE CP850"
+ echo "es_SV CP850"
+ echo "es_UY CP850"
+ echo "es_VE CP850"
+ echo "et CP850"
+ echo "et_EE CP850"
+ echo "eu CP850"
+ echo "eu_ES CP850"
+ echo "fi CP850"
+ echo "fi_FI CP850"
+ echo "fr CP850"
+ echo "fr_BE CP850"
+ echo "fr_CA CP850"
+ echo "fr_CH CP850"
+ echo "fr_FR CP850"
+ echo "ga CP850"
+ echo "ga_IE CP850"
+ echo "gd CP850"
+ echo "gd_GB CP850"
+ echo "gl CP850"
+ echo "gl_ES CP850"
+ echo "id CP850" # not CP437 ??
+ echo "id_ID CP850" # not CP437 ??
+ echo "is CP861" # not CP850 ??
+ echo "is_IS CP861" # not CP850 ??
+ echo "it CP850"
+ echo "it_CH CP850"
+ echo "it_IT CP850"
+ echo "lt CP775"
+ echo "lt_LT CP775"
+ echo "lv CP775"
+ echo "lv_LV CP775"
+ echo "nb CP865" # not CP850 ??
+ echo "nb_NO CP865" # not CP850 ??
+ echo "nl CP850"
+ echo "nl_BE CP850"
+ echo "nl_NL CP850"
+ echo "nn CP865" # not CP850 ??
+ echo "nn_NO CP865" # not CP850 ??
+ echo "no CP865" # not CP850 ??
+ echo "no_NO CP865" # not CP850 ??
+ echo "pt CP850"
+ echo "pt_BR CP850"
+ echo "pt_PT CP850"
+ echo "sv CP850"
+ echo "sv_SE CP850"
+ # ISO-8859-2 languages
+ echo "cs CP852"
+ echo "cs_CZ CP852"
+ echo "hr CP852"
+ echo "hr_HR CP852"
+ echo "hu CP852"
+ echo "hu_HU CP852"
+ echo "pl CP852"
+ echo "pl_PL CP852"
+ echo "ro CP852"
+ echo "ro_RO CP852"
+ echo "sk CP852"
+ echo "sk_SK CP852"
+ echo "sl CP852"
+ echo "sl_SI CP852"
+ echo "sq CP852"
+ echo "sq_AL CP852"
+ echo "sr CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+ # ISO-8859-3 languages
+ echo "mt CP850"
+ echo "mt_MT CP850"
+ # ISO-8859-5 languages
+ echo "be CP866"
+ echo "be_BE CP866"
+ echo "bg CP866" # not CP855 ??
+ echo "bg_BG CP866" # not CP855 ??
+ echo "mk CP866" # not CP855 ??
+ echo "mk_MK CP866" # not CP855 ??
+ echo "ru CP866"
+ echo "ru_RU CP866"
+ echo "uk CP1125"
+ echo "uk_UA CP1125"
+ # ISO-8859-6 languages
+ echo "ar CP864"
+ echo "ar_AE CP864"
+ echo "ar_DZ CP864"
+ echo "ar_EG CP864"
+ echo "ar_IQ CP864"
+ echo "ar_IR CP864"
+ echo "ar_JO CP864"
+ echo "ar_KW CP864"
+ echo "ar_MA CP864"
+ echo "ar_OM CP864"
+ echo "ar_QA CP864"
+ echo "ar_SA CP864"
+ echo "ar_SY CP864"
+ # ISO-8859-7 languages
+ echo "el CP869"
+ echo "el_GR CP869"
+ # ISO-8859-8 languages
+ echo "he CP862"
+ echo "he_IL CP862"
+ # ISO-8859-9 languages
+ echo "tr CP857"
+ echo "tr_TR CP857"
+ # Japanese
+ echo "ja CP932"
+ echo "ja_JP CP932"
+ # Chinese
+ echo "zh_CN GBK"
+ echo "zh_TW CP950" # not CP938 ??
+ # Korean
+ echo "kr CP949" # not CP934 ??
+ echo "kr_KR CP949" # not CP934 ??
+ # Thai
+ echo "th CP874"
+ echo "th_TH CP874"
+ # Other
+ echo "eo CP850"
+ echo "eo_EO CP850"
+ ;;
+esac
diff --git a/intl/dcgettext.c b/intl/dcgettext.c
new file mode 100644
index 0000000..c2a63f0
--- /dev/null
+++ b/intl/dcgettext.c
@@ -0,0 +1,56 @@
+/* Implementation of the dcgettext(3) function.
+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCGETTEXT __dcgettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCGETTEXT libintl_dcgettext
+# define DCIGETTEXT libintl_dcigettext
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCGETTEXT (const char *domainname, const char *msgid, int category)
+{
+ return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+INTDEF(__dcgettext)
+weak_alias (__dcgettext, dcgettext);
+#endif
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
new file mode 100644
index 0000000..623e51d
--- /dev/null
+++ b/intl/dcigettext.c
@@ -0,0 +1,1689 @@
+/* Implementation of the internal dcigettext function.
+ Copyright (C) 1995-1999, 2000-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* NL_LOCALE_NAME does not work in glibc-2.4. Ignore it. */
+#undef HAVE_NL_LOCALE_NAME
+
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include <locale.h>
+
+#ifdef _LIBC
+ /* Guess whether integer division by zero raises signal SIGFPE.
+ Set to 1 only if you know for sure. In case of doubt, set to 0. */
+# if defined __alpha__ || defined __arm__ || defined __i386__ \
+ || defined __m68k__ || defined __s390__
+# define INTDIV0_RAISES_SIGFPE 1
+# else
+# define INTDIV0_RAISES_SIGFPE 0
+# endif
+#endif
+#if !INTDIV0_RAISES_SIGFPE
+# include <signal.h>
+#endif
+
+#if defined HAVE_SYS_PARAM_H || defined _LIBC
+# include <sys/param.h>
+#endif
+
+#if !defined _LIBC
+# if HAVE_NL_LOCALE_NAME
+# include <langinfo.h>
+# endif
+# include "localcharset.h"
+#endif
+
+#include "gettextP.h"
+#include "plural-exp.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# ifdef IN_LIBGLOCALE
+# include <libintl.h>
+# endif
+# include "libgnuintl.h"
+#endif
+#include "hash-string.h"
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+# define gl_rwlock_define_initialized __libc_rwlock_define_initialized
+# define gl_rwlock_rdlock __libc_rwlock_rdlock
+# define gl_rwlock_wrlock __libc_rwlock_wrlock
+# define gl_rwlock_unlock __libc_rwlock_unlock
+#else
+# include "lock.h"
+#endif
+
+/* Alignment of types. */
+#if defined __GNUC__ && __GNUC__ >= 2
+# define alignof(TYPE) __alignof__ (TYPE)
+#else
+# define alignof(TYPE) \
+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+# define tfind __tfind
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+# if VMS
+# define getcwd(buf, max) (getcwd) (buf, max, 0)
+# else
+char *getcwd ();
+# endif
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy (char *dest, const char *src);
+# endif
+# ifndef HAVE_MEMPCPY
+static void *mempcpy (void *dest, const void *src, size_t n);
+# endif
+#endif
+
+/* Use a replacement if the system does not provide the `tsearch' function
+ family. */
+#if HAVE_TSEARCH || defined _LIBC
+# include <search.h>
+#else
+# define tsearch libintl_tsearch
+# define tfind libintl_tfind
+# define tdelete libintl_tdelete
+# define twalk libintl_twalk
+# include "tsearch.h"
+#endif
+
+#ifdef _LIBC
+# define tsearch __tsearch
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined PATH_MAX && defined _PC_PATH_MAX
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+#endif
+
+/* Whether to support different locales in different threads. */
+#if defined _LIBC || HAVE_NL_LOCALE_NAME || (HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS) || defined IN_LIBGLOCALE
+# define HAVE_PER_THREAD_LOCALE
+#endif
+
+/* This is the type used for the search tree where known translations
+ are stored. */
+struct known_translation_t
+{
+ /* Domain in which to search. */
+ const char *domainname;
+
+ /* The category. */
+ int category;
+
+#ifdef HAVE_PER_THREAD_LOCALE
+ /* Name of the relevant locale category, or "" for the global locale. */
+ const char *localename;
+#endif
+
+#ifdef IN_LIBGLOCALE
+ /* The character encoding. */
+ const char *encoding;
+#endif
+
+ /* State of the catalog counter at the point the string was found. */
+ int counter;
+
+ /* Catalog where the string was found. */
+ struct loaded_l10nfile *domain;
+
+ /* And finally the translation. */
+ const char *translation;
+ size_t translation_length;
+
+ /* Pointer to the string in question. */
+ char msgid[ZERO];
+};
+
+gl_rwlock_define_initialized (static, tree_lock)
+
+/* Root of the search tree with known translations. */
+static void *root;
+
+/* Function to compare two entries in the table of known translations. */
+static int
+transcmp (const void *p1, const void *p2)
+{
+ const struct known_translation_t *s1;
+ const struct known_translation_t *s2;
+ int result;
+
+ s1 = (const struct known_translation_t *) p1;
+ s2 = (const struct known_translation_t *) p2;
+
+ result = strcmp (s1->msgid, s2->msgid);
+ if (result == 0)
+ {
+ result = strcmp (s1->domainname, s2->domainname);
+ if (result == 0)
+ {
+#ifdef HAVE_PER_THREAD_LOCALE
+ result = strcmp (s1->localename, s2->localename);
+ if (result == 0)
+#endif
+ {
+#ifdef IN_LIBGLOCALE
+ result = strcmp (s1->encoding, s2->encoding);
+ if (result == 0)
+#endif
+ /* We compare the category last (though this is the cheapest
+ operation) since it is hopefully always the same (namely
+ LC_MESSAGES). */
+ result = s1->category - s2->category;
+ }
+ }
+ }
+
+ return result;
+}
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] attribute_hidden = "messages";
+
+#ifndef IN_LIBGLOCALE
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain attribute_hidden
+ = _nl_default_default_domain;
+#endif
+
+/* Contains the default location of the message catalogs. */
+#if defined __EMX__
+extern const char _nl_default_dirname[];
+#else
+# ifdef _LIBC
+extern const char _nl_default_dirname[];
+libc_hidden_proto (_nl_default_dirname)
+# endif
+const char _nl_default_dirname[] = LOCALEDIR;
+# ifdef _LIBC
+libc_hidden_data_def (_nl_default_dirname)
+# endif
+#endif
+
+#ifndef IN_LIBGLOCALE
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+#endif
+
+/* Prototypes for local functions. */
+static char *plural_lookup (struct loaded_l10nfile *domain,
+ unsigned long int n,
+ const char *translation, size_t translation_len)
+ internal_function;
+
+#ifdef IN_LIBGLOCALE
+static const char *guess_category_value (int category,
+ const char *categoryname,
+ const char *localename)
+ internal_function;
+#else
+static const char *guess_category_value (int category,
+ const char *categoryname)
+ internal_function;
+#endif
+
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+# define category_to_name(category) \
+ _nl_category_names.str + _nl_category_name_idxs[category]
+#else
+static const char *category_to_name (int category) internal_function;
+#endif
+#if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE
+static const char *get_output_charset (struct binding *domainbinding)
+ internal_function;
+#endif
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define freea(p) /* nothing */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old->address); \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+# define freea(p) free (p)
+#endif /* have alloca */
+
+
+#ifdef _LIBC
+/* List of blocks allocated for translations. */
+typedef struct transmem_list
+{
+ struct transmem_list *next;
+ char data[ZERO];
+} transmem_block_t;
+static struct transmem_list *transmem_list;
+#else
+typedef unsigned char transmem_block_t;
+#endif
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCIGETTEXT __dcigettext
+#else
+# define DCIGETTEXT libintl_dcigettext
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+gl_rwlock_define_initialized (, _nl_state_lock attribute_hidden)
+
+/* Checking whether the binaries runs SUID must be done and glibc provides
+ easier methods therefore we make a difference here. */
+#ifdef _LIBC
+# define ENABLE_SECURE __libc_enable_secure
+# define DETERMINE_SECURE
+#else
+# ifndef HAVE_GETUID
+# define getuid() 0
+# endif
+# ifndef HAVE_GETGID
+# define getgid() 0
+# endif
+# ifndef HAVE_GETEUID
+# define geteuid() getuid()
+# endif
+# ifndef HAVE_GETEGID
+# define getegid() getgid()
+# endif
+static int enable_secure;
+# define ENABLE_SECURE (enable_secure == 1)
+# define DETERMINE_SECURE \
+ if (enable_secure == 0) \
+ { \
+ if (getuid () != geteuid () || getgid () != getegid ()) \
+ enable_secure = 1; \
+ else \
+ enable_secure = -1; \
+ }
+#endif
+
+/* Get the function to evaluate the plural expression. */
+#include "eval-plural.h"
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ CATEGORY locale and, if PLURAL is nonzero, search over string
+ depending on the plural form determined by N. */
+#ifdef IN_LIBGLOCALE
+char *
+gl_dcigettext (const char *domainname,
+ const char *msgid1, const char *msgid2,
+ int plural, unsigned long int n,
+ int category,
+ const char *localename, const char *encoding)
+#else
+char *
+DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
+ int plural, unsigned long int n, int category)
+#endif
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ const char *dirname;
+ char *xdomainname;
+ char *single_locale;
+ char *retval;
+ size_t retlen;
+ int saved_errno;
+ struct known_translation_t *search;
+ struct known_translation_t **foundp = NULL;
+ size_t msgid_len;
+#if defined HAVE_PER_THREAD_LOCALE && !defined IN_LIBGLOCALE
+ const char *localename;
+#endif
+ size_t domainname_len;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid1 == NULL)
+ return NULL;
+
+#ifdef _LIBC
+ if (category < 0 || category >= __LC_LAST || category == LC_ALL)
+ /* Bogus. */
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+#endif
+
+ /* Preserve the `errno' value. */
+ saved_errno = errno;
+
+ gl_rwlock_rdlock (_nl_state_lock);
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ definition left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+ /* OS/2 specific: backward compatibility with older libintl versions */
+#ifdef LC_MESSAGES_COMPAT
+ if (category == LC_MESSAGES_COMPAT)
+ category = LC_MESSAGES;
+#endif
+
+ msgid_len = strlen (msgid1) + 1;
+
+ /* Try to find the translation among those which we found at
+ some time. */
+ search = (struct known_translation_t *)
+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
+ memcpy (search->msgid, msgid1, msgid_len);
+ search->domainname = domainname;
+ search->category = category;
+#ifdef HAVE_PER_THREAD_LOCALE
+# ifndef IN_LIBGLOCALE
+# ifdef _LIBC
+ localename = __current_locale_name (category);
+# else
+# if HAVE_NL_LOCALE_NAME
+ /* NL_LOCALE_NAME is public glibc API introduced in glibc-2.4. */
+ localename = nl_langinfo (NL_LOCALE_NAME (category));
+# else
+# if HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS
+ /* The __names field is not public glibc API and must therefore not be used
+ in code that is installed in public locations. */
+ {
+ locale_t thread_locale = uselocale (NULL);
+ if (thread_locale != LC_GLOBAL_LOCALE)
+ localename = thread_locale->__names[category];
+ else
+ localename = "";
+ }
+# endif
+# endif
+# endif
+# endif
+ search->localename = localename;
+# ifdef IN_LIBGLOCALE
+ search->encoding = encoding;
+# endif
+
+ /* Since tfind/tsearch manage a balanced tree, concurrent tfind and
+ tsearch calls can be fatal. */
+ gl_rwlock_rdlock (tree_lock);
+
+ foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
+
+ gl_rwlock_unlock (tree_lock);
+
+ freea (search);
+ if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
+ {
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
+ (*foundp)->translation_length);
+ else
+ retval = (char *) (*foundp)->translation;
+
+ gl_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return retval;
+ }
+#endif
+
+ /* See whether this is a SUID binary or not. */
+ DETERMINE_SECURE;
+
+ /* First find matching binding. */
+#ifdef IN_LIBGLOCALE
+ /* We can use a trivial binding, since _nl_find_msg will ignore it anyway,
+ and _nl_load_domain and _nl_find_domain just pass it through. */
+ binding = NULL;
+ dirname = bindtextdomain (domainname, NULL);
+#else
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = _nl_default_dirname;
+ else
+ {
+ dirname = binding->dirname;
+#endif
+ if (!IS_ABSOLUTE_PATH (dirname))
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (dirname) + 1;
+ size_t path_max;
+ char *resolved_dirname;
+ char *ret;
+
+ path_max = (unsigned int) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ for (;;)
+ {
+ resolved_dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, tmp_dirname);
+
+ __set_errno (0);
+ ret = getcwd (resolved_dirname, path_max);
+ if (ret != NULL || errno != ERANGE)
+ break;
+
+ path_max += path_max / 2;
+ path_max += PATH_INCR;
+ }
+
+ if (ret == NULL)
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ goto return_untranslated;
+
+ stpcpy (stpcpy (strchr (resolved_dirname, '\0'), "/"), dirname);
+ dirname = resolved_dirname;
+ }
+#ifndef IN_LIBGLOCALE
+ }
+#endif
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+#ifdef IN_LIBGLOCALE
+ categoryvalue = guess_category_value (category, categoryname, localename);
+#else
+ categoryvalue = guess_category_value (category, categoryname);
+#endif
+
+ domainname_len = strlen (domainname);
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + domainname_len + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy ((char *) mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname, domainname_len),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for the translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+
+ /* When this is a SUID binary we must not allow accessing files
+ outside the dedicated directories. */
+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale))
+ /* Ingore this entry. */
+ continue;
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ break;
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
+
+ if (domain != NULL)
+ {
+#if defined IN_LIBGLOCALE
+ retval = _nl_find_msg (domain, binding, encoding, msgid1, &retlen);
+#else
+ retval = _nl_find_msg (domain, binding, msgid1, 1, &retlen);
+#endif
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+#if defined IN_LIBGLOCALE
+ retval = _nl_find_msg (domain->successor[cnt], binding,
+ encoding, msgid1, &retlen);
+#else
+ retval = _nl_find_msg (domain->successor[cnt], binding,
+ msgid1, 1, &retlen);
+#endif
+
+ if (retval != NULL)
+ {
+ domain = domain->successor[cnt];
+ break;
+ }
+ }
+ }
+
+ /* Returning -1 means that some resource problem exists
+ (likely memory) and that the strings could not be
+ converted. Return the original strings. */
+ if (__builtin_expect (retval == (char *) -1, 0))
+ break;
+
+ if (retval != NULL)
+ {
+ /* Found the translation of MSGID1 in domain DOMAIN:
+ starting at RETVAL, RETLEN bytes. */
+ FREE_BLOCKS (block_list);
+ if (foundp == NULL)
+ {
+ /* Create a new entry and add it to the search tree. */
+ size_t size;
+ struct known_translation_t *newp;
+
+ size = offsetof (struct known_translation_t, msgid)
+ + msgid_len + domainname_len + 1;
+#ifdef HAVE_PER_THREAD_LOCALE
+ size += strlen (localename) + 1;
+#endif
+ newp = (struct known_translation_t *) malloc (size);
+ if (newp != NULL)
+ {
+ char *new_domainname;
+#ifdef HAVE_PER_THREAD_LOCALE
+ char *new_localename;
+#endif
+
+ new_domainname =
+ (char *) mempcpy (newp->msgid, msgid1, msgid_len);
+ memcpy (new_domainname, domainname, domainname_len + 1);
+#ifdef HAVE_PER_THREAD_LOCALE
+ new_localename = new_domainname + domainname_len + 1;
+ strcpy (new_localename, localename);
+#endif
+ newp->domainname = new_domainname;
+ newp->category = category;
+#ifdef HAVE_PER_THREAD_LOCALE
+ newp->localename = new_localename;
+#endif
+#ifdef IN_LIBGLOCALE
+ newp->encoding = encoding;
+#endif
+ newp->counter = _nl_msg_cat_cntr;
+ newp->domain = domain;
+ newp->translation = retval;
+ newp->translation_length = retlen;
+
+ gl_rwlock_wrlock (tree_lock);
+
+ /* Insert the entry in the search tree. */
+ foundp = (struct known_translation_t **)
+ tsearch (newp, &root, transcmp);
+
+ gl_rwlock_unlock (tree_lock);
+
+ if (foundp == NULL
+ || __builtin_expect (*foundp != newp, 0))
+ /* The insert failed. */
+ free (newp);
+ }
+ }
+ else
+ {
+ /* We can update the existing entry. */
+ (*foundp)->counter = _nl_msg_cat_cntr;
+ (*foundp)->domain = domain;
+ (*foundp)->translation = retval;
+ (*foundp)->translation_length = retlen;
+ }
+
+ __set_errno (saved_errno);
+
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup (domain, n, retval, retlen);
+
+ gl_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+ }
+ }
+
+ return_untranslated:
+ /* Return the untranslated MSGID. */
+ FREE_BLOCKS (block_list);
+ gl_rwlock_unlock (_nl_state_lock);
+#ifndef _LIBC
+ if (!ENABLE_SECURE)
+ {
+ extern void _nl_log_untranslated (const char *logfilename,
+ const char *domainname,
+ const char *msgid1, const char *msgid2,
+ int plural);
+ const char *logfilename = getenv ("GETTEXT_LOG_UNTRANSLATED");
+
+ if (logfilename != NULL && logfilename[0] != '\0')
+ _nl_log_untranslated (logfilename, domainname, msgid1, msgid2, plural);
+ }
+#endif
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+}
+
+
+/* Look up the translation of msgid within DOMAIN_FILE and DOMAINBINDING.
+ Return it if found. Return NULL if not found or in case of a conversion
+ failure (problem in the particular message catalog). Return (char *) -1
+ in case of a memory allocation failure during conversion (only if
+ ENCODING != NULL resp. CONVERT == true). */
+char *
+internal_function
+#ifdef IN_LIBGLOCALE
+_nl_find_msg (struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding, const char *encoding,
+ const char *msgid,
+ size_t *lengthp)
+#else
+_nl_find_msg (struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding,
+ const char *msgid, int convert,
+ size_t *lengthp)
+#endif
+{
+ struct loaded_domain *domain;
+ nls_uint32 nstrings;
+ size_t act;
+ char *result;
+ size_t resultlen;
+
+ if (domain_file->decided <= 0)
+ _nl_load_domain (domain_file, domainbinding);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ nstrings = domain->nstrings;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = __hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+
+ while (1)
+ {
+ nls_uint32 nstr =
+ W (domain->must_swap_hash_tab, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ nstr--;
+
+ /* Compare msgid with the original string at index nstr.
+ We compare the lengths with >=, not ==, because plural entries
+ are represented by strings with an embedded NUL. */
+ if (nstr < nstrings
+ ? W (domain->must_swap, domain->orig_tab[nstr].length) >= len
+ && (strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr].offset))
+ == 0)
+ : domain->orig_sysdep_tab[nstr - nstrings].length > len
+ && (strcmp (msgid,
+ domain->orig_sysdep_tab[nstr - nstrings].pointer)
+ == 0))
+ {
+ act = nstr;
+ goto found;
+ }
+
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+ }
+ /* NOTREACHED */
+ }
+ else
+ {
+ /* Try the default method: binary search in the sorted array of
+ messages. */
+ size_t top, bottom;
+
+ bottom = 0;
+ top = nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, (domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset)));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ goto found;
+ }
+ /* No translation was found. */
+ return NULL;
+ }
+
+ found:
+ /* The translation was found at index ACT. If we have to convert the
+ string to use a different character set, this is the time. */
+ if (act < nstrings)
+ {
+ result = (char *)
+ (domain->data + W (domain->must_swap, domain->trans_tab[act].offset));
+ resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
+ }
+ else
+ {
+ result = (char *) domain->trans_sysdep_tab[act - nstrings].pointer;
+ resultlen = domain->trans_sysdep_tab[act - nstrings].length;
+ }
+
+#if defined _LIBC || HAVE_ICONV
+# ifdef IN_LIBGLOCALE
+ if (encoding != NULL)
+# else
+ if (convert)
+# endif
+ {
+ /* We are supposed to do a conversion. */
+# ifndef IN_LIBGLOCALE
+ const char *encoding = get_output_charset (domainbinding);
+# endif
+ size_t nconversions;
+ struct converted_domain *convd;
+ size_t i;
+
+ /* Protect against reallocation of the table. */
+ gl_rwlock_rdlock (domain->conversions_lock);
+
+ /* Search whether a table with converted translations for this
+ encoding has already been allocated. */
+ nconversions = domain->nconversions;
+ convd = NULL;
+
+ for (i = nconversions; i > 0; )
+ {
+ i--;
+ if (strcmp (domain->conversions[i].encoding, encoding) == 0)
+ {
+ convd = &domain->conversions[i];
+ break;
+ }
+ }
+
+ gl_rwlock_unlock (domain->conversions_lock);
+
+ if (convd == NULL)
+ {
+ /* We have to allocate a new conversions table. */
+ gl_rwlock_wrlock (domain->conversions_lock);
+
+ /* Maybe in the meantime somebody added the translation.
+ Recheck. */
+ for (i = nconversions; i > 0; )
+ {
+ i--;
+ if (strcmp (domain->conversions[i].encoding, encoding) == 0)
+ {
+ convd = &domain->conversions[i];
+ goto found_convd;
+ }
+ }
+
+ {
+ /* Allocate a table for the converted translations for this
+ encoding. */
+ struct converted_domain *new_conversions =
+ (struct converted_domain *)
+ (domain->conversions != NULL
+ ? realloc (domain->conversions,
+ (nconversions + 1) * sizeof (struct converted_domain))
+ : malloc ((nconversions + 1) * sizeof (struct converted_domain)));
+
+ if (__builtin_expect (new_conversions == NULL, 0))
+ {
+ /* Nothing we can do, no more memory. We cannot use the
+ translation because it might be encoded incorrectly. */
+ unlock_fail:
+ gl_rwlock_unlock (domain->conversions_lock);
+ return (char *) -1;
+ }
+
+ domain->conversions = new_conversions;
+
+ /* Copy the 'encoding' string to permanent storage. */
+ encoding = strdup (encoding);
+ if (__builtin_expect (encoding == NULL, 0))
+ /* Nothing we can do, no more memory. We cannot use the
+ translation because it might be encoded incorrectly. */
+ goto unlock_fail;
+
+ convd = &new_conversions[nconversions];
+ convd->encoding = encoding;
+
+ /* Find out about the character set the file is encoded with.
+ This can be found (in textual form) in the entry "". If this
+ entry does not exist or if this does not contain the 'charset='
+ information, we will assume the charset matches the one the
+ current locale and we don't have to perform any conversion. */
+# ifdef _LIBC
+ convd->conv = (__gconv_t) -1;
+# else
+# if HAVE_ICONV
+ convd->conv = (iconv_t) -1;
+# endif
+# endif
+ {
+ char *nullentry;
+ size_t nullentrylen;
+
+ /* Get the header entry. This is a recursion, but it doesn't
+ reallocate domain->conversions because we pass
+ encoding = NULL or convert = 0, respectively. */
+ nullentry =
+# ifdef IN_LIBGLOCALE
+ _nl_find_msg (domain_file, domainbinding, NULL, "",
+ &nullentrylen);
+# else
+ _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
+# endif
+
+ if (nullentry != NULL)
+ {
+ const char *charsetstr;
+
+ charsetstr = strstr (nullentry, "charset=");
+ if (charsetstr != NULL)
+ {
+ size_t len;
+ char *charset;
+ const char *outcharset;
+
+ charsetstr += strlen ("charset=");
+ len = strcspn (charsetstr, " \t\n");
+
+ charset = (char *) alloca (len + 1);
+# if defined _LIBC || HAVE_MEMPCPY
+ *((char *) mempcpy (charset, charsetstr, len)) = '\0';
+# else
+ memcpy (charset, charsetstr, len);
+ charset[len] = '\0';
+# endif
+
+ outcharset = encoding;
+
+# ifdef _LIBC
+ /* We always want to use transliteration. */
+ outcharset = norm_add_slashes (outcharset, "TRANSLIT");
+ charset = norm_add_slashes (charset, "");
+ int r = __gconv_open (outcharset, charset, &convd->conv,
+ GCONV_AVOID_NOCONV);
+ if (__builtin_expect (r != __GCONV_OK, 0))
+ {
+ /* If the output encoding is the same there is
+ nothing to do. Otherwise do not use the
+ translation at all. */
+ if (__builtin_expect (r != __GCONV_NULCONV, 1))
+ {
+ gl_rwlock_unlock (domain->conversions_lock);
+ free ((char *) encoding);
+ return NULL;
+ }
+
+ convd->conv = (__gconv_t) -1;
+ }
+# else
+# if HAVE_ICONV
+ /* When using GNU libc >= 2.2 or GNU libiconv >= 1.5,
+ we want to use transliteration. */
+# if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2) || __GLIBC__ > 2 \
+ || _LIBICONV_VERSION >= 0x0105
+ if (strchr (outcharset, '/') == NULL)
+ {
+ char *tmp;
+
+ len = strlen (outcharset);
+ tmp = (char *) alloca (len + 10 + 1);
+ memcpy (tmp, outcharset, len);
+ memcpy (tmp + len, "//TRANSLIT", 10 + 1);
+ outcharset = tmp;
+
+ convd->conv = iconv_open (outcharset, charset);
+
+ freea (outcharset);
+ }
+ else
+# endif
+ convd->conv = iconv_open (outcharset, charset);
+# endif
+# endif
+
+ freea (charset);
+ }
+ }
+ }
+ convd->conv_tab = NULL;
+ /* Here domain->conversions is still == new_conversions. */
+ domain->nconversions++;
+ }
+
+ found_convd:
+ gl_rwlock_unlock (domain->conversions_lock);
+ }
+
+ if (
+# ifdef _LIBC
+ convd->conv != (__gconv_t) -1
+# else
+# if HAVE_ICONV
+ convd->conv != (iconv_t) -1
+# endif
+# endif
+ )
+ {
+ /* We are supposed to do a conversion. First allocate an
+ appropriate table with the same structure as the table
+ of translations in the file, where we can put the pointers
+ to the converted strings in.
+ There is a slight complication with plural entries. They
+ are represented by consecutive NUL terminated strings. We
+ handle this case by converting RESULTLEN bytes, including
+ NULs. */
+
+ if (convd->conv_tab == NULL
+ && ((convd->conv_tab =
+ (char **) calloc (nstrings + domain->n_sysdep_strings,
+ sizeof (char *)))
+ == NULL))
+ /* Mark that we didn't succeed allocating a table. */
+ convd->conv_tab = (char **) -1;
+
+ if (__builtin_expect (convd->conv_tab == (char **) -1, 0))
+ /* Nothing we can do, no more memory. We cannot use the
+ translation because it might be encoded incorrectly. */
+ return (char *) -1;
+
+ if (convd->conv_tab[act] == NULL)
+ {
+ /* We haven't used this string so far, so it is not
+ translated yet. Do this now. */
+ /* We use a bit more efficient memory handling.
+ We allocate always larger blocks which get used over
+ time. This is faster than many small allocations. */
+ __libc_lock_define_initialized (static, lock)
+# define INITIAL_BLOCK_SIZE 4080
+ static unsigned char *freemem;
+ static size_t freemem_size;
+
+ const unsigned char *inbuf;
+ unsigned char *outbuf;
+ int malloc_count;
+# ifndef _LIBC
+ transmem_block_t *transmem_list = NULL;
+# endif
+
+ __libc_lock_lock (lock);
+
+ inbuf = (const unsigned char *) result;
+ outbuf = freemem + sizeof (size_t);
+
+ malloc_count = 0;
+ while (1)
+ {
+ transmem_block_t *newmem;
+# ifdef _LIBC
+ size_t non_reversible;
+ int res;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ res = __gconv (convd->conv,
+ &inbuf, inbuf + resultlen,
+ &outbuf,
+ outbuf + freemem_size - sizeof (size_t),
+ &non_reversible);
+
+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT)
+ break;
+
+ if (res != __GCONV_FULL_OUTPUT)
+ {
+ /* We should not use the translation at all, it
+ is incorrectly encoded. */
+ __libc_lock_unlock (lock);
+ return NULL;
+ }
+
+ inbuf = (const unsigned char *) result;
+# else
+# if HAVE_ICONV
+ const char *inptr = (const char *) inbuf;
+ size_t inleft = resultlen;
+ char *outptr = (char *) outbuf;
+ size_t outleft;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ outleft = freemem_size - sizeof (size_t);
+ if (iconv (convd->conv,
+ (ICONV_CONST char **) &inptr, &inleft,
+ &outptr, &outleft)
+ != (size_t) (-1))
+ {
+ outbuf = (unsigned char *) outptr;
+ break;
+ }
+ if (errno != E2BIG)
+ {
+ __libc_lock_unlock (lock);
+ return NULL;
+ }
+# endif
+# endif
+
+ resize_freemem:
+ /* We must allocate a new buffer or resize the old one. */
+ if (malloc_count > 0)
+ {
+ ++malloc_count;
+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) realloc (transmem_list,
+ freemem_size);
+# ifdef _LIBC
+ if (newmem != NULL)
+ transmem_list = transmem_list->next;
+ else
+ {
+ struct transmem_list *old = transmem_list;
+
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+# endif
+ }
+ else
+ {
+ malloc_count = 1;
+ freemem_size = INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) malloc (freemem_size);
+ }
+ if (__builtin_expect (newmem == NULL, 0))
+ {
+ freemem = NULL;
+ freemem_size = 0;
+ __libc_lock_unlock (lock);
+ return (char *) -1;
+ }
+
+# ifdef _LIBC
+ /* Add the block to the list of blocks we have to free
+ at some point. */
+ newmem->next = transmem_list;
+ transmem_list = newmem;
+
+ freemem = (unsigned char *) newmem->data;
+ freemem_size -= offsetof (struct transmem_list, data);
+# else
+ transmem_list = newmem;
+ freemem = newmem;
+# endif
+
+ outbuf = freemem + sizeof (size_t);
+ }
+
+ /* We have now in our buffer a converted string. Put this
+ into the table of conversions. */
+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t);
+ convd->conv_tab[act] = (char *) freemem;
+ /* Shrink freemem, but keep it aligned. */
+ freemem_size -= outbuf - freemem;
+ freemem = outbuf;
+ freemem += freemem_size & (alignof (size_t) - 1);
+ freemem_size = freemem_size & ~ (alignof (size_t) - 1);
+
+ __libc_lock_unlock (lock);
+ }
+
+ /* Now convd->conv_tab[act] contains the translation of all
+ the plural variants. */
+ result = convd->conv_tab[act] + sizeof (size_t);
+ resultlen = *(size_t *) convd->conv_tab[act];
+ }
+ }
+
+ /* The result string is converted. */
+
+#endif /* _LIBC || HAVE_ICONV */
+
+ *lengthp = resultlen;
+ return result;
+}
+
+
+/* Look up a plural variant. */
+static char *
+internal_function
+plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
+ const char *translation, size_t translation_len)
+{
+ struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
+ unsigned long int index;
+ const char *p;
+
+ index = plural_eval (domaindata->plural, n);
+ if (index >= domaindata->nplurals)
+ /* This should never happen. It means the plural expression and the
+ given maximum value do not match. */
+ index = 0;
+
+ /* Skip INDEX strings at TRANSLATION. */
+ p = translation;
+ while (index-- > 0)
+ {
+#ifdef _LIBC
+ p = __rawmemchr (p, '\0');
+#else
+ p = strchr (p, '\0');
+#endif
+ /* And skip over the NUL byte. */
+ p++;
+
+ if (p >= translation + translation_len)
+ /* This should never happen. It means the plural expression
+ evaluated to a value larger than the number of variants
+ available for MSGID1. */
+ return (char *) translation;
+ }
+ return (char *) p;
+}
+
+#ifndef _LIBC
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (int category)
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+#endif
+
+/* Guess value of current locale from value of the environment variables
+ or system-dependent defaults. */
+static const char *
+internal_function
+#ifdef IN_LIBGLOCALE
+guess_category_value (int category, const char *categoryname,
+ const char *locale)
+
+#else
+guess_category_value (int category, const char *categoryname)
+#endif
+{
+ const char *language;
+#ifndef IN_LIBGLOCALE
+ const char *locale;
+# ifndef _LIBC
+ const char *language_default;
+ int locale_defaulted;
+# endif
+#endif
+
+ /* We use the settings in the following order:
+ 1. The value of the environment variable 'LANGUAGE'. This is a GNU
+ extension. Its value can be a colon-separated list of locale names.
+ 2. The value of the environment variable 'LC_ALL', 'LC_xxx', or 'LANG'.
+ More precisely, the first among these that is set to a non-empty value.
+ This is how POSIX specifies it. The value is a single locale name.
+ 3. A system-dependent preference list of languages. Its value can be a
+ colon-separated list of locale names.
+ 4. A system-dependent default locale name.
+ This way:
+ - System-dependent settings can be overridden by environment variables.
+ - If the system provides both a list of languages and a default locale,
+ the former is used. */
+
+#ifndef IN_LIBGLOCALE
+ /* Fetch the locale name, through the POSIX method of looking to `LC_ALL',
+ `LC_xxx', and `LANG'. On some systems this can be done by the
+ `setlocale' function itself. */
+# ifdef _LIBC
+ locale = __current_locale_name (category);
+# else
+# if HAVE_STRUCT___LOCALE_STRUCT___NAMES && defined USE_IN_GETTEXT_TESTS
+ /* The __names field is not public glibc API and must therefore not be used
+ in code that is installed in public locations. */
+ locale_t thread_locale = uselocale (NULL);
+ if (thread_locale != LC_GLOBAL_LOCALE)
+ {
+ locale = thread_locale->__names[category];
+ locale_defaulted = 0;
+ }
+ else
+# endif
+ {
+ locale = _nl_locale_name_posix (category, categoryname);
+ locale_defaulted = 0;
+ if (locale == NULL)
+ {
+ locale = _nl_locale_name_default ();
+ locale_defaulted = 1;
+ }
+ }
+# endif
+#endif
+
+ /* Ignore LANGUAGE and its system-dependent analogon if the locale is set
+ to "C" because
+ 1. "C" locale usually uses the ASCII encoding, and most international
+ messages use non-ASCII characters. These characters get displayed
+ as question marks (if using glibc's iconv()) or as invalid 8-bit
+ characters (because other iconv()s refuse to convert most non-ASCII
+ characters to ASCII). In any case, the output is ugly.
+ 2. The precise output of some programs in the "C" locale is specified
+ by POSIX and should not depend on environment variables like
+ "LANGUAGE" or system-dependent information. We allow such programs
+ to use gettext(). */
+ if (strcmp (locale, "C") == 0)
+ return locale;
+
+ /* The highest priority value is the value of the 'LANGUAGE' environment
+ variable. */
+ language = getenv ("LANGUAGE");
+ if (language != NULL && language[0] != '\0')
+ return language;
+#if !defined IN_LIBGLOCALE && !defined _LIBC
+ /* The next priority value is the locale name, if not defaulted. */
+ if (locale_defaulted)
+ {
+ /* The next priority value is the default language preferences list. */
+ language_default = _nl_language_preferences_default ();
+ if (language_default != NULL)
+ return language_default;
+ }
+ /* The least priority value is the locale name, if defaulted. */
+#endif
+ return locale;
+}
+
+#if (defined _LIBC || HAVE_ICONV) && !defined IN_LIBGLOCALE
+/* Returns the output charset. */
+static const char *
+internal_function
+get_output_charset (struct binding *domainbinding)
+{
+ /* The output charset should normally be determined by the locale. But
+ sometimes the locale is not used or not correctly set up, so we provide
+ a possibility for the user to override this: the OUTPUT_CHARSET
+ environment variable. Moreover, the value specified through
+ bind_textdomain_codeset overrides both. */
+ if (domainbinding != NULL && domainbinding->codeset != NULL)
+ return domainbinding->codeset;
+ else
+ {
+ /* For speed reasons, we look at the value of OUTPUT_CHARSET only
+ once. This is a user variable that is not supposed to change
+ during a program run. */
+ static char *output_charset_cache;
+ static int output_charset_cached;
+
+ if (!output_charset_cached)
+ {
+ const char *value = getenv ("OUTPUT_CHARSET");
+
+ if (value != NULL && value[0] != '\0')
+ {
+ size_t len = strlen (value) + 1;
+ char *value_copy = (char *) malloc (len);
+
+ if (value_copy != NULL)
+ memcpy (value_copy, value, len);
+ output_charset_cache = value_copy;
+ }
+ output_charset_cached = 1;
+ }
+
+ if (output_charset_cache != NULL)
+ return output_charset_cache;
+ else
+ {
+# ifdef _LIBC
+ return _NL_CURRENT (LC_CTYPE, CODESET);
+# else
+# if HAVE_ICONV
+ return locale_charset ();
+# endif
+# endif
+ }
+ }
+}
+#endif
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (char *dest, const char *src)
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+#if !_LIBC && !HAVE_MEMPCPY
+static void *
+mempcpy (void *dest, const void *src, size_t n)
+{
+ return (void *) ((char *) memcpy (dest, src, n) + n);
+}
+#endif
+
+#if !_LIBC && !HAVE_TSEARCH
+# include "tsearch.c"
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+libc_freeres_fn (free_mem)
+{
+ void *old;
+
+ while (_nl_domain_bindings != NULL)
+ {
+ struct binding *oldp = _nl_domain_bindings;
+ _nl_domain_bindings = _nl_domain_bindings->next;
+ if (oldp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (oldp->dirname);
+ free (oldp->codeset);
+ free (oldp);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+
+ /* Remove the search tree with the known translations. */
+ __tdestroy (root, free);
+ root = NULL;
+
+ while (transmem_list != NULL)
+ {
+ old = transmem_list;
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+}
+#endif
diff --git a/intl/dcngettext.c b/intl/dcngettext.c
new file mode 100644
index 0000000..eb36833
--- /dev/null
+++ b/intl/dcngettext.c
@@ -0,0 +1,57 @@
+/* Implementation of the dcngettext(3) function.
+ Copyright (C) 1995-1999, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCNGETTEXT __dcngettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCNGETTEXT libintl_dcngettext
+# define DCIGETTEXT libintl_dcigettext
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCNGETTEXT (const char *domainname,
+ const char *msgid1, const char *msgid2, unsigned long int n,
+ int category)
+{
+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcngettext, dcngettext);
+#endif
diff --git a/intl/dgettext.c b/intl/dgettext.c
new file mode 100644
index 0000000..9b0d0de
--- /dev/null
+++ b/intl/dgettext.c
@@ -0,0 +1,58 @@
+/* Implementation of the dgettext(3) function.
+ Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+
+#include <locale.h>
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DGETTEXT __dgettext
+# define DCGETTEXT INTUSE(__dcgettext)
+#else
+# define DGETTEXT libintl_dgettext
+# define DCGETTEXT libintl_dcgettext
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale. */
+char *
+DGETTEXT (const char *domainname, const char *msgid)
+{
+ return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dgettext, dgettext);
+#endif
diff --git a/intl/dngettext.c b/intl/dngettext.c
new file mode 100644
index 0000000..3278438
--- /dev/null
+++ b/intl/dngettext.c
@@ -0,0 +1,59 @@
+/* Implementation of the dngettext(3) function.
+ Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+
+#include <locale.h>
+
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DNGETTEXT __dngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define DNGETTEXT libintl_dngettext
+# define DCNGETTEXT libintl_dcngettext
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale and skip message according to the plural form. */
+char *
+DNGETTEXT (const char *domainname,
+ const char *msgid1, const char *msgid2, unsigned long int n)
+{
+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dngettext, dngettext);
+#endif
diff --git a/intl/eval-plural.h b/intl/eval-plural.h
new file mode 100644
index 0000000..21eecb3
--- /dev/null
+++ b/intl/eval-plural.h
@@ -0,0 +1,108 @@
+/* Plural expression evaluation.
+ Copyright (C) 2000-2003, 2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef STATIC
+#define STATIC static
+#endif
+
+/* Evaluate the plural expression and return an index value. */
+STATIC
+unsigned long int
+internal_function
+plural_eval (const struct expression *pexp, unsigned long int n)
+{
+ switch (pexp->nargs)
+ {
+ case 0:
+ switch (pexp->operation)
+ {
+ case var:
+ return n;
+ case num:
+ return pexp->val.num;
+ default:
+ break;
+ }
+ /* NOTREACHED */
+ break;
+ case 1:
+ {
+ /* pexp->operation must be lnot. */
+ unsigned long int arg = plural_eval (pexp->val.args[0], n);
+ return ! arg;
+ }
+ case 2:
+ {
+ unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
+ if (pexp->operation == lor)
+ return leftarg || plural_eval (pexp->val.args[1], n);
+ else if (pexp->operation == land)
+ return leftarg && plural_eval (pexp->val.args[1], n);
+ else
+ {
+ unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
+
+ switch (pexp->operation)
+ {
+ case mult:
+ return leftarg * rightarg;
+ case divide:
+#if !INTDIV0_RAISES_SIGFPE
+ if (rightarg == 0)
+ raise (SIGFPE);
+#endif
+ return leftarg / rightarg;
+ case module:
+#if !INTDIV0_RAISES_SIGFPE
+ if (rightarg == 0)
+ raise (SIGFPE);
+#endif
+ return leftarg % rightarg;
+ case plus:
+ return leftarg + rightarg;
+ case minus:
+ return leftarg - rightarg;
+ case less_than:
+ return leftarg < rightarg;
+ case greater_than:
+ return leftarg > rightarg;
+ case less_or_equal:
+ return leftarg <= rightarg;
+ case greater_or_equal:
+ return leftarg >= rightarg;
+ case equal:
+ return leftarg == rightarg;
+ case not_equal:
+ return leftarg != rightarg;
+ default:
+ break;
+ }
+ }
+ /* NOTREACHED */
+ break;
+ }
+ case 3:
+ {
+ /* pexp->operation must be qmop. */
+ unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
+ return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
+ }
+ }
+ /* NOTREACHED */
+ return 0;
+}
diff --git a/intl/explodename.c b/intl/explodename.c
new file mode 100644
index 0000000..eb5dd75
--- /dev/null
+++ b/intl/explodename.c
@@ -0,0 +1,135 @@
+/* Copyright (C) 1995-1998, 2000-2001, 2003, 2005, 2007 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper at gnu.ai.mit.edu>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Split a locale name NAME into a leading language part and all the
+ rest. Return a pointer to the first character after the language,
+ i.e. to the first byte of the rest. */
+static char *_nl_find_language (const char *name);
+
+static char *
+_nl_find_language (const char *name)
+{
+ while (name[0] != '\0' && name[0] != '_' && name[0] != '@' && name[0] != '.')
+ ++name;
+
+ return (char *) name;
+}
+
+
+int
+_nl_explode_name (char *name,
+ const char **language, const char **modifier,
+ const char **territory, const char **codeset,
+ const char **normalized_codeset)
+{
+ char *cp;
+ int mask;
+
+ *modifier = NULL;
+ *territory = NULL;
+ *codeset = NULL;
+ *normalized_codeset = NULL;
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_', '.', and `@'. */
+ mask = 0;
+ *language = cp = name;
+ cp = _nl_find_language (*language);
+
+ if (*language == cp)
+ /* This does not make sense: language has to be specified. Use
+ this entry as it is without exploding. Perhaps it is an alias. */
+ cp = strchr (*language, '\0');
+ else
+ {
+ if (cp[0] == '_')
+ {
+ /* Next is the territory. */
+ cp[0] = '\0';
+ *territory = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_TERRITORY;
+ }
+
+ if (cp[0] == '.')
+ {
+ /* Next is the codeset. */
+ cp[0] = '\0';
+ *codeset = ++cp;
+
+ while (cp[0] != '\0' && cp[0] != '@')
+ ++cp;
+
+ mask |= XPG_CODESET;
+
+ if (*codeset != cp && (*codeset)[0] != '\0')
+ {
+ *normalized_codeset = _nl_normalize_codeset (*codeset,
+ cp - *codeset);
+ if (*normalized_codeset == NULL)
+ return -1;
+ else if (strcmp (*codeset, *normalized_codeset) == 0)
+ free ((char *) *normalized_codeset);
+ else
+ mask |= XPG_NORM_CODESET;
+ }
+ }
+ }
+
+ if (cp[0] == '@')
+ {
+ /* Next is the modifier. */
+ cp[0] = '\0';
+ *modifier = ++cp;
+
+ if (cp[0] != '\0')
+ mask |= XPG_MODIFIER;
+ }
+
+ if (*territory != NULL && (*territory)[0] == '\0')
+ mask &= ~XPG_TERRITORY;
+
+ if (*codeset != NULL && (*codeset)[0] == '\0')
+ mask &= ~XPG_CODESET;
+
+ return mask;
+}
diff --git a/intl/export.h b/intl/export.h
new file mode 100644
index 0000000..b5c47ad
--- /dev/null
+++ b/intl/export.h
@@ -0,0 +1,6 @@
+
+#if @HAVE_VISIBILITY@ && BUILDING_LIBINTL
+#define LIBINTL_DLL_EXPORTED __attribute__((__visibility__("default")))
+#else
+#define LIBINTL_DLL_EXPORTED
+#endif
diff --git a/intl/finddomain.c b/intl/finddomain.c
new file mode 100644
index 0000000..cab2c99
--- /dev/null
+++ b/intl/finddomain.c
@@ -0,0 +1,212 @@
+/* Handle list of needed message catalogs
+ Copyright (C) 1995-1999, 2000-2001, 2003-2007 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at gnu.org>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+# define gl_rwlock_define_initialized __libc_rwlock_define_initialized
+# define gl_rwlock_rdlock __libc_rwlock_rdlock
+# define gl_rwlock_wrlock __libc_rwlock_wrlock
+# define gl_rwlock_unlock __libc_rwlock_unlock
+#else
+# include "lock.h"
+#endif
+
+/* @@ end of prolog @@ */
+/* List of already loaded domains. */
+static struct loaded_l10nfile *_nl_loaded_domains;
+
+
+/* Return a data structure describing the message catalog described by
+ the DOMAINNAME and CATEGORY parameters with respect to the currently
+ established bindings. */
+struct loaded_l10nfile *
+internal_function
+_nl_find_domain (const char *dirname, char *locale,
+ const char *domainname, struct binding *domainbinding)
+{
+ struct loaded_l10nfile *retval;
+ const char *language;
+ const char *modifier;
+ const char *territory;
+ const char *codeset;
+ const char *normalized_codeset;
+ const char *alias_value;
+ int mask;
+
+ /* LOCALE can consist of up to four recognized parts for the XPG syntax:
+
+ language[_territory][.codeset][@modifier]
+
+ Beside the first part all of them are allowed to be missing. If
+ the full specified locale is not found, the less specific one are
+ looked for. The various parts will be stripped off according to
+ the following order:
+ (1) codeset
+ (2) normalized codeset
+ (3) territory
+ (4) modifier
+ */
+
+ /* We need to protect modifying the _NL_LOADED_DOMAINS data. */
+ gl_rwlock_define_initialized (static, lock);
+ gl_rwlock_rdlock (lock);
+
+ /* If we have already tested for this locale entry there has to
+ be one data set in the list of loaded domains. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, 0, locale, NULL, NULL,
+ NULL, NULL, domainname, 0);
+
+ gl_rwlock_unlock (lock);
+
+ if (retval != NULL)
+ {
+ /* We know something about this locale. */
+ int cnt;
+
+ if (retval->decided <= 0)
+ _nl_load_domain (retval, domainbinding);
+
+ if (retval->data != NULL)
+ return retval;
+
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided <= 0)
+ _nl_load_domain (retval->successor[cnt], domainbinding);
+
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+
+ return retval;
+ /* NOTREACHED */
+ }
+
+ /* See whether the locale value is an alias. If yes its value
+ *overwrites* the alias name. No test for the original value is
+ done. */
+ alias_value = _nl_expand_alias (locale);
+ if (alias_value != NULL)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ locale = strdup (alias_value);
+ if (locale == NULL)
+ return NULL;
+#else
+ size_t len = strlen (alias_value) + 1;
+ locale = (char *) malloc (len);
+ if (locale == NULL)
+ return NULL;
+
+ memcpy (locale, alias_value, len);
+#endif
+ }
+
+ /* Now we determine the single parts of the locale name. First
+ look for the language. Termination symbols are `_', '.', and `@'. */
+ mask = _nl_explode_name (locale, &language, &modifier, &territory,
+ &codeset, &normalized_codeset);
+ if (mask == -1)
+ /* This means we are out of core. */
+ return NULL;
+
+ /* We need to protect modifying the _NL_LOADED_DOMAINS data. */
+ gl_rwlock_wrlock (lock);
+
+ /* Create all possible locale entries which might be interested in
+ generalization. */
+ retval = _nl_make_l10nflist (&_nl_loaded_domains, dirname,
+ strlen (dirname) + 1, mask, language, territory,
+ codeset, normalized_codeset, modifier,
+ domainname, 1);
+
+ gl_rwlock_unlock (lock);
+
+ if (retval == NULL)
+ /* This means we are out of core. */
+ goto out;
+
+ if (retval->decided <= 0)
+ _nl_load_domain (retval, domainbinding);
+ if (retval->data == NULL)
+ {
+ int cnt;
+ for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
+ {
+ if (retval->successor[cnt]->decided <= 0)
+ _nl_load_domain (retval->successor[cnt], domainbinding);
+ if (retval->successor[cnt]->data != NULL)
+ break;
+ }
+ }
+
+ /* The room for an alias was dynamically allocated. Free it now. */
+ if (alias_value != NULL)
+ free (locale);
+
+out:
+ /* The space for normalized_codeset is dynamically allocated. Free it. */
+ if (mask & XPG_NORM_CODESET)
+ free ((void *) normalized_codeset);
+
+ return retval;
+}
+
+
+#ifdef _LIBC
+/* This is called from iconv/gconv_db.c's free_mem, as locales must
+ be freed before freeing gconv steps arrays. */
+void __libc_freeres_fn_section
+_nl_finddomain_subfreeres ()
+{
+ struct loaded_l10nfile *runp = _nl_loaded_domains;
+
+ while (runp != NULL)
+ {
+ struct loaded_l10nfile *here = runp;
+ if (runp->data != NULL)
+ _nl_unload_domain ((struct loaded_domain *) runp->data);
+ runp = runp->next;
+ free ((char *) here->filename);
+ free (here);
+ }
+}
+#endif
diff --git a/intl/gettext.c b/intl/gettext.c
new file mode 100644
index 0000000..d82d439
--- /dev/null
+++ b/intl/gettext.c
@@ -0,0 +1,63 @@
+/* Implementation of gettext(3) function.
+ Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define GETTEXT __gettext
+# define DCGETTEXT INTUSE(__dcgettext)
+#else
+# define GETTEXT libintl_gettext
+# define DCGETTEXT libintl_dcgettext
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+GETTEXT (const char *msgid)
+{
+ return DCGETTEXT (NULL, msgid, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__gettext, gettext);
+#endif
diff --git a/intl/gettextP.h b/intl/gettextP.h
new file mode 100644
index 0000000..5706fb5
--- /dev/null
+++ b/intl/gettextP.h
@@ -0,0 +1,297 @@
+/* Header describing internals of libintl library.
+ Copyright (C) 1995-1999, 2000-2007 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _GETTEXTP_H
+#define _GETTEXTP_H
+
+#include <stddef.h> /* Get size_t. */
+
+#ifdef _LIBC
+# include "../iconv/gconv_int.h"
+#else
+# if HAVE_ICONV
+# include <iconv.h>
+# endif
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+# define gl_rwlock_define __libc_rwlock_define
+#else
+# include "lock.h"
+#endif
+
+#ifdef _LIBC
+extern char *__gettext (const char *__msgid);
+extern char *__dgettext (const char *__domainname, const char *__msgid);
+extern char *__dcgettext (const char *__domainname, const char *__msgid,
+ int __category);
+extern char *__ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n);
+extern char *__dngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int n);
+extern char *__dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category);
+extern char *__dcigettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category);
+extern char *__textdomain (const char *__domainname);
+extern char *__bindtextdomain (const char *__domainname,
+ const char *__dirname);
+extern char *__bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset);
+extern void _nl_finddomain_subfreeres (void) attribute_hidden;
+extern void _nl_unload_domain (struct loaded_domain *__domain)
+ internal_function attribute_hidden;
+#else
+/* Declare the exported libintl_* functions, in a way that allows us to
+ call them under their real name. */
+# undef _INTL_REDIRECT_INLINE
+# undef _INTL_REDIRECT_MACROS
+# define _INTL_REDIRECT_MACROS
+# include "libgnuintl.h"
+# ifdef IN_LIBGLOCALE
+extern char *gl_dcigettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category,
+ const char *__localename, const char *__encoding);
+# else
+extern char *libintl_dcigettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category);
+# endif
+#endif
+
+#include "loadinfo.h"
+
+#include "gmo.h" /* Get nls_uint32. */
+
+/* @@ end of prolog @@ */
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef attribute_hidden
+# define attribute_hidden
+#endif
+
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
+#ifndef W
+# define W(flag, data) ((flag) ? SWAP (data) : (data))
+#endif
+
+
+#ifdef _LIBC
+# include <byteswap.h>
+# define SWAP(i) bswap_32 (i)
+#else
+static inline nls_uint32
+# ifdef __cplusplus
+SWAP (nls_uint32 i)
+# else
+SWAP (i)
+ nls_uint32 i;
+# endif
+{
+ return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
+}
+#endif
+
+
+/* In-memory representation of system dependent string. */
+struct sysdep_string_desc
+{
+ /* Length of addressed string, including the trailing NUL. */
+ size_t length;
+ /* Pointer to addressed string. */
+ const char *pointer;
+};
+
+/* Cache of translated strings after charset conversion.
+ Note: The strings are converted to the target encoding only on an as-needed
+ basis. */
+struct converted_domain
+{
+ /* The target encoding name. */
+ const char *encoding;
+ /* The descriptor for conversion from the message catalog's encoding to
+ this target encoding. */
+#ifdef _LIBC
+ __gconv_t conv;
+#else
+# if HAVE_ICONV
+ iconv_t conv;
+# endif
+#endif
+ /* The table of translated strings after charset conversion. */
+ char **conv_tab;
+};
+
+/* The representation of an opened message catalog. */
+struct loaded_domain
+{
+ /* Pointer to memory containing the .mo file. */
+ const char *data;
+ /* 1 if the memory is mmap()ed, 0 if the memory is malloc()ed. */
+ int use_mmap;
+ /* Size of mmap()ed memory. */
+ size_t mmap_size;
+ /* 1 if the .mo file uses a different endianness than this machine. */
+ int must_swap;
+ /* Pointer to additional malloc()ed memory. */
+ void *malloced;
+
+ /* Number of static strings pairs. */
+ nls_uint32 nstrings;
+ /* Pointer to descriptors of original strings in the file. */
+ const struct string_desc *orig_tab;
+ /* Pointer to descriptors of translated strings in the file. */
+ const struct string_desc *trans_tab;
+
+ /* Number of system dependent strings pairs. */
+ nls_uint32 n_sysdep_strings;
+ /* Pointer to descriptors of original sysdep strings. */
+ const struct sysdep_string_desc *orig_sysdep_tab;
+ /* Pointer to descriptors of translated sysdep strings. */
+ const struct sysdep_string_desc *trans_sysdep_tab;
+
+ /* Size of hash table. */
+ nls_uint32 hash_size;
+ /* Pointer to hash table. */
+ const nls_uint32 *hash_tab;
+ /* 1 if the hash table uses a different endianness than this machine. */
+ int must_swap_hash_tab;
+
+ /* Cache of charset conversions of the translated strings. */
+ struct converted_domain *conversions;
+ size_t nconversions;
+ gl_rwlock_define (, conversions_lock)
+
+ const struct expression *plural;
+ unsigned long int nplurals;
+};
+
+/* We want to allocate a string at the end of the struct. But ISO C
+ doesn't allow zero sized arrays. */
+#ifdef __GNUC__
+# define ZERO 0
+#else
+# define ZERO 1
+#endif
+
+/* A set of settings bound to a message domain. Used to store settings
+ from bindtextdomain() and bind_textdomain_codeset(). */
+struct binding
+{
+ struct binding *next;
+ char *dirname;
+ char *codeset;
+ char domainname[ZERO];
+};
+
+/* A counter which is incremented each time some previous translations
+ become invalid.
+ This variable is part of the external ABI of the GNU libintl. */
+#ifdef IN_LIBGLOCALE
+# include <glocale/config.h>
+extern LIBGLOCALE_DLL_EXPORTED int _nl_msg_cat_cntr;
+#else
+extern LIBINTL_DLL_EXPORTED int _nl_msg_cat_cntr;
+#endif
+
+#ifndef _LIBC
+extern const char *_nl_language_preferences_default (void);
+# define gl_locale_name_canonicalize _nl_locale_name_canonicalize
+extern void _nl_locale_name_canonicalize (char *name);
+# define gl_locale_name_posix _nl_locale_name_posix
+extern const char *_nl_locale_name_posix (int category,
+ const char *categoryname);
+# define gl_locale_name_default _nl_locale_name_default
+extern const char *_nl_locale_name_default (void);
+# define gl_locale_name _nl_locale_name
+extern const char *_nl_locale_name (int category, const char *categoryname);
+#endif
+
+struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
+ const char *__domainname,
+ struct binding *__domainbinding)
+ internal_function;
+void _nl_load_domain (struct loaded_l10nfile *__domain,
+ struct binding *__domainbinding)
+ internal_function;
+
+#ifdef IN_LIBGLOCALE
+char *_nl_find_msg (struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding, const char *encoding,
+ const char *msgid,
+ size_t *lengthp)
+ internal_function;
+#else
+char *_nl_find_msg (struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding, const char *msgid,
+ int convert, size_t *lengthp)
+ internal_function;
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_dirname libintl_nl_default_dirname
+# define _nl_domain_bindings libintl_nl_domain_bindings
+#endif
+
+/* Contains the default location of the message catalogs. */
+extern const char _nl_default_dirname[];
+#ifdef _LIBC
+libc_hidden_proto (_nl_default_dirname)
+#endif
+
+/* List with bindings of specific domains. */
+extern struct binding *_nl_domain_bindings;
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain libintl_nl_default_default_domain
+# define _nl_current_default_domain libintl_nl_current_default_domain
+#endif
+
+/* Name of the default text domain. */
+extern const char _nl_default_default_domain[] attribute_hidden;
+
+/* Default text domain in which entries for gettext(3) are to be found. */
+extern const char *_nl_current_default_domain attribute_hidden;
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettextP.h */
diff --git a/intl/gmo.h b/intl/gmo.h
new file mode 100644
index 0000000..da9dbaa
--- /dev/null
+++ b/intl/gmo.h
@@ -0,0 +1,152 @@
+/* Description of GNU message catalog format: general file layout.
+ Copyright (C) 1995, 1997, 2000-2002, 2004, 2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _GETTEXT_H
+#define _GETTEXT_H 1
+
+#include <limits.h>
+
+/* @@ end of prolog @@ */
+
+/* The magic number of the GNU message catalog format. */
+#define _MAGIC 0x950412de
+#define _MAGIC_SWAPPED 0xde120495
+
+/* Revision number of the currently used .mo (binary) file format. */
+#define MO_REVISION_NUMBER 0
+#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
+ when cross-compiling. */
+
+#if __STDC__
+# define UINT_MAX_32_BITS 4294967295U
+#else
+# define UINT_MAX_32_BITS 0xFFFFFFFF
+#endif
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+#ifndef UINT_MAX
+# define UINT_MAX UINT_MAX_32_BITS
+#endif
+
+#if UINT_MAX == UINT_MAX_32_BITS
+typedef unsigned nls_uint32;
+#else
+# if USHRT_MAX == UINT_MAX_32_BITS
+typedef unsigned short nls_uint32;
+# else
+# if ULONG_MAX == UINT_MAX_32_BITS
+typedef unsigned long nls_uint32;
+# else
+ /* The following line is intended to throw an error. Using #error is
+ not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+#endif
+
+
+/* Header for binary .mo file format. */
+struct mo_file_header
+{
+ /* The magic number. */
+ nls_uint32 magic;
+ /* The revision number of the file format. */
+ nls_uint32 revision;
+
+ /* The following are only used in .mo files with major revision 0 or 1. */
+
+ /* The number of strings pairs. */
+ nls_uint32 nstrings;
+ /* Offset of table with start offsets of original strings. */
+ nls_uint32 orig_tab_offset;
+ /* Offset of table with start offsets of translated strings. */
+ nls_uint32 trans_tab_offset;
+ /* Size of hash table. */
+ nls_uint32 hash_tab_size;
+ /* Offset of first hash table entry. */
+ nls_uint32 hash_tab_offset;
+
+ /* The following are only used in .mo files with minor revision >= 1. */
+
+ /* The number of system dependent segments. */
+ nls_uint32 n_sysdep_segments;
+ /* Offset of table describing system dependent segments. */
+ nls_uint32 sysdep_segments_offset;
+ /* The number of system dependent strings pairs. */
+ nls_uint32 n_sysdep_strings;
+ /* Offset of table with start offsets of original sysdep strings. */
+ nls_uint32 orig_sysdep_tab_offset;
+ /* Offset of table with start offsets of translated sysdep strings. */
+ nls_uint32 trans_sysdep_tab_offset;
+};
+
+/* Descriptor for static string contained in the binary .mo file. */
+struct string_desc
+{
+ /* Length of addressed string, not including the trailing NUL. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* The following are only used in .mo files with minor revision >= 1. */
+
+/* Descriptor for system dependent string segment. */
+struct sysdep_segment
+{
+ /* Length of addressed string, including the trailing NUL. */
+ nls_uint32 length;
+ /* Offset of string in file. */
+ nls_uint32 offset;
+};
+
+/* Pair of a static and a system dependent segment, in struct sysdep_string. */
+struct segment_pair
+{
+ /* Size of static segment. */
+ nls_uint32 segsize;
+ /* Reference to system dependent string segment, or ~0 at the end. */
+ nls_uint32 sysdepref;
+};
+
+/* Descriptor for system dependent string. */
+struct sysdep_string
+{
+ /* Offset of static string segments in file. */
+ nls_uint32 offset;
+ /* Alternating sequence of static and system dependent segments.
+ The last segment is a static segment, including the trailing NUL. */
+ struct segment_pair segments[1];
+};
+
+/* Marker for the end of the segments[] array. This has the value 0xFFFFFFFF,
+ regardless whether 'int' is 16 bit, 32 bit, or 64 bit. */
+#define SEGMENTS_END ((nls_uint32) ~0)
+
+/* @@ begin of epilog @@ */
+
+#endif /* gettext.h */
diff --git a/intl/hash-string.c b/intl/hash-string.c
new file mode 100644
index 0000000..3c513f0
--- /dev/null
+++ b/intl/hash-string.c
@@ -0,0 +1,51 @@
+/* Implements a string hashing function.
+ Copyright (C) 1995, 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification. */
+#include "hash-string.h"
+
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+unsigned long int
+__hash_string (const char *str_param)
+{
+ unsigned long int hval, g;
+ const char *str = str_param;
+
+ /* Compute the hash value for the given string. */
+ hval = 0;
+ while (*str != '\0')
+ {
+ hval <<= 4;
+ hval += (unsigned char) *str++;
+ g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
+ if (g != 0)
+ {
+ hval ^= g >> (HASHWORDBITS - 8);
+ hval ^= g;
+ }
+ }
+ return hval;
+}
diff --git a/intl/hash-string.h b/intl/hash-string.h
new file mode 100644
index 0000000..98c07e4
--- /dev/null
+++ b/intl/hash-string.h
@@ -0,0 +1,36 @@
+/* Description of GNU message catalog format: string hashing function.
+ Copyright (C) 1995, 1997-1998, 2000-2003, 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* @@ end of prolog @@ */
+
+/* We assume to have `unsigned long int' value with at least 32 bits. */
+#define HASHWORDBITS 32
+
+
+#ifndef _LIBC
+# ifdef IN_LIBINTL
+# define __hash_string libintl_hash_string
+# else
+# define __hash_string hash_string
+# endif
+#endif
+
+/* Defines the so called `hashpjw' function by P.J. Weinberger
+ [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ 1986, 1987 Bell Telephone Laboratories, Inc.] */
+extern unsigned long int __hash_string (const char *str_param);
diff --git a/intl/intl-compat.c b/intl/intl-compat.c
new file mode 100644
index 0000000..9b9ecbb
--- /dev/null
+++ b/intl/intl-compat.c
@@ -0,0 +1,133 @@
+/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
+ Library.
+ Copyright (C) 1995, 2000-2003, 2005 Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+
+/* @@ end of prolog @@ */
+
+/* This file redirects the gettext functions (without prefix) to those
+ defined in the included GNU libintl library (with "libintl_" prefix).
+ It is compiled into libintl in order to make the AM_GNU_GETTEXT test
+ of gettext <= 0.11.2 work with the libintl library >= 0.11.3 which
+ has the redirections primarily in the <libintl.h> include file.
+ It is also compiled into libgnuintl so that libgnuintl.so can be used
+ as LD_PRELOADable library on glibc systems, to provide the extra
+ features that the functions in the libc don't have (namely, logging). */
+
+
+#undef gettext
+#undef dgettext
+#undef dcgettext
+#undef ngettext
+#undef dngettext
+#undef dcngettext
+#undef textdomain
+#undef bindtextdomain
+#undef bind_textdomain_codeset
+
+
+/* When building a DLL, we must export some functions. Note that because
+ the functions are only defined for binary backward compatibility, we
+ don't need to use __declspec(dllimport) in any case. */
+#if HAVE_VISIBILITY && BUILDING_DLL
+# define DLL_EXPORTED __attribute__((__visibility__("default")))
+#elif defined _MSC_VER && BUILDING_DLL
+# define DLL_EXPORTED __declspec(dllexport)
+#else
+# define DLL_EXPORTED
+#endif
+
+
+DLL_EXPORTED
+char *
+gettext (const char *msgid)
+{
+ return libintl_gettext (msgid);
+}
+
+
+DLL_EXPORTED
+char *
+dgettext (const char *domainname, const char *msgid)
+{
+ return libintl_dgettext (domainname, msgid);
+}
+
+
+DLL_EXPORTED
+char *
+dcgettext (const char *domainname, const char *msgid, int category)
+{
+ return libintl_dcgettext (domainname, msgid, category);
+}
+
+
+DLL_EXPORTED
+char *
+ngettext (const char *msgid1, const char *msgid2, unsigned long int n)
+{
+ return libintl_ngettext (msgid1, msgid2, n);
+}
+
+
+DLL_EXPORTED
+char *
+dngettext (const char *domainname,
+ const char *msgid1, const char *msgid2, unsigned long int n)
+{
+ return libintl_dngettext (domainname, msgid1, msgid2, n);
+}
+
+
+DLL_EXPORTED
+char *
+dcngettext (const char *domainname,
+ const char *msgid1, const char *msgid2, unsigned long int n,
+ int category)
+{
+ return libintl_dcngettext (domainname, msgid1, msgid2, n, category);
+}
+
+
+DLL_EXPORTED
+char *
+textdomain (const char *domainname)
+{
+ return libintl_textdomain (domainname);
+}
+
+
+DLL_EXPORTED
+char *
+bindtextdomain (const char *domainname, const char *dirname)
+{
+ return libintl_bindtextdomain (domainname, dirname);
+}
+
+
+DLL_EXPORTED
+char *
+bind_textdomain_codeset (const char *domainname, const char *codeset)
+{
+ return libintl_bind_textdomain_codeset (domainname, codeset);
+}
diff --git a/intl/intl-exports.c b/intl/intl-exports.c
new file mode 100644
index 0000000..7176589
--- /dev/null
+++ b/intl/intl-exports.c
@@ -0,0 +1,36 @@
+/* List of exported symbols of libintl on Cygwin.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2006.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+ /* IMP(x) is a symbol that contains the address of x. */
+#define IMP(x) _imp__##x
+
+ /* Ensure that the variable x is exported from the library, and that a
+ pseudo-variable IMP(x) is available. */
+#define VARIABLE(x) \
+ /* Export x without redefining x. This code was found by compiling a \
+ snippet: \
+ extern __declspec(dllexport) int x; int x = 42; */ \
+ asm (".section .drectve\n"); \
+ asm (".ascii \" -export:" #x ",data\"\n"); \
+ asm (".data\n"); \
+ /* Allocate a pseudo-variable IMP(x). */ \
+ extern int x; \
+ void * IMP(x) = &x;
+
+VARIABLE(libintl_version)
diff --git a/intl/intl_config.h.cmake b/intl/intl_config.h.cmake
new file mode 100644
index 0000000..8957874
--- /dev/null
+++ b/intl/intl_config.h.cmake
@@ -0,0 +1,54 @@
+/* Required headers */
+#cmakedefine HAVE_INTTYPES_H 1
+#cmakedefine HAVE_UNISTD_H 1
+#cmakedefine HAVE_INTTYPES_H_WITH_UINTMAX 1
+#cmakedefine HAVE_STDINT_H_WITH_UINTMAX 1
+#cmakedefine HAVE_TSEARCH 1
+
+/* Required functions */
+#cmakedefine HAVE_STPCPY 1
+#cmakedefine HAVE_MEMPCPY 1
+#cmakedefine HAVE_GETCWD 1
+
+/* Required definitions */
+#cmakedefine ICONV_SECOND_ARGUMENT_IS_CONST 1
+#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
+#define ICONV_CONST const
+#else
+#define ICONV_CONST
+#endif
+#define ENABLE_NLS 1
+
+/* Stuff that may be optional */
+#cmakedefine HAVE_ALLOCA_H 1
+#cmakedefine HAVE_ALLOCA 1
+
+#define __libc_lock_t gl_lock_t
+#define __libc_lock_define gl_lock_define
+#define __libc_lock_define_initialized gl_lock_define_initialized
+#define __libc_lock_init gl_lock_init
+#define __libc_lock_lock gl_lock_lock
+#define __libc_lock_unlock gl_lock_unlock
+#define __libc_lock_recursive_t gl_recursive_lock_t
+#define __libc_lock_define_recursive gl_recursive_lock_define
+#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
+#define __libc_lock_init_recursive gl_recursive_lock_init
+#define __libc_lock_lock_recursive gl_recursive_lock_lock
+#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
+#define glthread_in_use libintl_thread_in_use
+#define glthread_lock_init libintl_lock_init
+#define glthread_lock_lock libintl_lock_lock
+#define glthread_lock_unlock libintl_lock_unlock
+#define glthread_lock_destroy libintl_lock_destroy
+#define glthread_rwlock_init libintl_rwlock_init
+#define glthread_rwlock_rdlock libintl_rwlock_rdlock
+#define glthread_rwlock_wrlock libintl_rwlock_wrlock
+#define glthread_rwlock_unlock libintl_rwlock_unlock
+#define glthread_rwlock_destroy libintl_rwlock_destroy
+#define glthread_recursive_lock_init libintl_recursive_lock_init
+#define glthread_recursive_lock_lock libintl_recursive_lock_lock
+#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock
+#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy
+#define glthread_once libintl_once
+#define glthread_once_call libintl_once_call
+#define glthread_once_singlethreaded libintl_once_singlethreaded
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
new file mode 100644
index 0000000..365aeb7
--- /dev/null
+++ b/intl/l10nflist.c
@@ -0,0 +1,400 @@
+/* Copyright (C) 1995-1999, 2000-2006 Free Software Foundation, Inc.
+ Contributed by Ulrich Drepper <drepper at gnu.ai.mit.edu>, 1995.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for stpcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <string.h>
+
+#if defined _LIBC || defined HAVE_ARGZ_H
+# include <argz.h>
+#endif
+#include <ctype.h>
+#include <sys/types.h>
+#include <stdlib.h>
+
+#include "loadinfo.h"
+
+/* On some strange systems still no definition of NULL is found. Sigh! */
+#ifndef NULL
+# if defined __STDC__ && __STDC__
+# define NULL ((void *) 0)
+# else
+# define NULL 0
+# endif
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# ifndef stpcpy
+# define stpcpy(dest, src) __stpcpy(dest, src)
+# endif
+#else
+# ifndef HAVE_STPCPY
+static char *stpcpy (char *dest, const char *src);
+# endif
+#endif
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+#endif
+
+/* Define function which are usually not available. */
+
+#ifdef _LIBC
+# define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)
+#elif defined HAVE_ARGZ_COUNT
+# undef __argz_count
+# define __argz_count argz_count
+#else
+/* Returns the number of strings in ARGZ. */
+static size_t
+argz_count__ (const char *argz, size_t len)
+{
+ size_t count = 0;
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len + 1;
+ len -= part_len + 1;
+ count++;
+ }
+ return count;
+}
+# undef __argz_count
+# define __argz_count(argz, len) argz_count__ (argz, len)
+#endif /* !_LIBC && !HAVE_ARGZ_COUNT */
+
+#ifdef _LIBC
+# define __argz_stringify(argz, len, sep) \
+ INTUSE(__argz_stringify) (argz, len, sep)
+#elif defined HAVE_ARGZ_STRINGIFY
+# undef __argz_stringify
+# define __argz_stringify argz_stringify
+#else
+/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+ except the last into the character SEP. */
+static void
+argz_stringify__ (char *argz, size_t len, int sep)
+{
+ while (len > 0)
+ {
+ size_t part_len = strlen (argz);
+ argz += part_len;
+ len -= part_len + 1;
+ if (len > 0)
+ *argz++ = sep;
+ }
+}
+# undef __argz_stringify
+# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)
+#endif /* !_LIBC && !HAVE_ARGZ_STRINGIFY */
+
+#ifdef _LIBC
+#elif defined HAVE_ARGZ_NEXT
+# undef __argz_next
+# define __argz_next argz_next
+#else
+static char *
+argz_next__ (char *argz, size_t argz_len, const char *entry)
+{
+ if (entry)
+ {
+ if (entry < argz + argz_len)
+ entry = strchr (entry, '\0') + 1;
+
+ return entry >= argz + argz_len ? NULL : (char *) entry;
+ }
+ else
+ if (argz_len > 0)
+ return argz;
+ else
+ return 0;
+}
+# undef __argz_next
+# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)
+#endif /* !_LIBC && !HAVE_ARGZ_NEXT */
+
+
+/* Return number of bits set in X. */
+static inline int
+pop (int x)
+{
+ /* We assume that no more than 16 bits are used. */
+ x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+ x = ((x & ~0x3333) >> 2) + (x & 0x3333);
+ x = ((x >> 4) + x) & 0x0f0f;
+ x = ((x >> 8) + x) & 0xff;
+
+ return x;
+}
+
+
+struct loaded_l10nfile *
+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len,
+ int mask, const char *language, const char *territory,
+ const char *codeset, const char *normalized_codeset,
+ const char *modifier,
+ const char *filename, int do_allocate)
+{
+ char *abs_filename;
+ struct loaded_l10nfile **lastp;
+ struct loaded_l10nfile *retval;
+ char *cp;
+ size_t dirlist_count;
+ size_t entries;
+ int cnt;
+
+ /* If LANGUAGE contains an absolute directory specification, we ignore
+ DIRLIST. */
+ if (IS_ABSOLUTE_PATH (language))
+ dirlist_len = 0;
+
+ /* Allocate room for the full file name. */
+ abs_filename = (char *) malloc (dirlist_len
+ + strlen (language)
+ + ((mask & XPG_TERRITORY) != 0
+ ? strlen (territory) + 1 : 0)
+ + ((mask & XPG_CODESET) != 0
+ ? strlen (codeset) + 1 : 0)
+ + ((mask & XPG_NORM_CODESET) != 0
+ ? strlen (normalized_codeset) + 1 : 0)
+ + ((mask & XPG_MODIFIER) != 0
+ ? strlen (modifier) + 1 : 0)
+ + 1 + strlen (filename) + 1);
+
+ if (abs_filename == NULL)
+ return NULL;
+
+ /* Construct file name. */
+ cp = abs_filename;
+ if (dirlist_len > 0)
+ {
+ memcpy (cp, dirlist, dirlist_len);
+ __argz_stringify (cp, dirlist_len, PATH_SEPARATOR);
+ cp += dirlist_len;
+ cp[-1] = '/';
+ }
+
+ cp = stpcpy (cp, language);
+
+ if ((mask & XPG_TERRITORY) != 0)
+ {
+ *cp++ = '_';
+ cp = stpcpy (cp, territory);
+ }
+ if ((mask & XPG_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, codeset);
+ }
+ if ((mask & XPG_NORM_CODESET) != 0)
+ {
+ *cp++ = '.';
+ cp = stpcpy (cp, normalized_codeset);
+ }
+ if ((mask & XPG_MODIFIER) != 0)
+ {
+ *cp++ = '@';
+ cp = stpcpy (cp, modifier);
+ }
+
+ *cp++ = '/';
+ stpcpy (cp, filename);
+
+ /* Look in list of already loaded domains whether it is already
+ available. */
+ lastp = l10nfile_list;
+ for (retval = *l10nfile_list; retval != NULL; retval = retval->next)
+ if (retval->filename != NULL)
+ {
+ int compare = strcmp (retval->filename, abs_filename);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It's not in the list. */
+ retval = NULL;
+ break;
+ }
+
+ lastp = &retval->next;
+ }
+
+ if (retval != NULL || do_allocate == 0)
+ {
+ free (abs_filename);
+ return retval;
+ }
+
+ dirlist_count = (dirlist_len > 0 ? __argz_count (dirlist, dirlist_len) : 1);
+
+ /* Allocate a new loaded_l10nfile. */
+ retval =
+ (struct loaded_l10nfile *)
+ malloc (sizeof (*retval)
+ + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0))
+ * sizeof (struct loaded_l10nfile *)));
+ if (retval == NULL)
+ {
+ free (abs_filename);
+ return NULL;
+ }
+
+ retval->filename = abs_filename;
+
+ /* We set retval->data to NULL here; it is filled in later.
+ Setting retval->decided to 1 here means that retval does not
+ correspond to a real file (dirlist_count > 1) or is not worth
+ looking up (if an unnormalized codeset was specified). */
+ retval->decided = (dirlist_count > 1
+ || ((mask & XPG_CODESET) != 0
+ && (mask & XPG_NORM_CODESET) != 0));
+ retval->data = NULL;
+
+ retval->next = *lastp;
+ *lastp = retval;
+
+ entries = 0;
+ /* Recurse to fill the inheritance list of RETVAL.
+ If the DIRLIST is a real list (i.e. DIRLIST_COUNT > 1), the RETVAL
+ entry does not correspond to a real file; retval->filename contains
+ colons. In this case we loop across all elements of DIRLIST and
+ across all bit patterns dominated by MASK.
+ If the DIRLIST is a single directory or entirely redundant (i.e.
+ DIRLIST_COUNT == 1), we loop across all bit patterns dominated by
+ MASK, excluding MASK itself.
+ In either case, we loop down from MASK to 0. This has the effect
+ that the extra bits in the locale name are dropped in this order:
+ first the modifier, then the territory, then the codeset, then the
+ normalized_codeset. */
+ for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt)
+ if ((cnt & ~mask) == 0
+ && !((cnt & XPG_CODESET) != 0 && (cnt & XPG_NORM_CODESET) != 0))
+ {
+ if (dirlist_count > 1)
+ {
+ /* Iterate over all elements of the DIRLIST. */
+ char *dir = NULL;
+
+ while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))
+ != NULL)
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1,
+ cnt, language, territory, codeset,
+ normalized_codeset, modifier, filename,
+ 1);
+ }
+ else
+ retval->successor[entries++]
+ = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,
+ cnt, language, territory, codeset,
+ normalized_codeset, modifier, filename, 1);
+ }
+ retval->successor[entries] = NULL;
+
+ return retval;
+}
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
+const char *
+_nl_normalize_codeset (const char *codeset, size_t name_len)
+{
+ int len = 0;
+ int only_digit = 1;
+ char *retval;
+ char *wp;
+ size_t cnt;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalnum ((unsigned char) codeset[cnt]))
+ {
+ ++len;
+
+ if (isalpha ((unsigned char) codeset[cnt]))
+ only_digit = 0;
+ }
+
+ retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);
+
+ if (retval != NULL)
+ {
+ if (only_digit)
+ wp = stpcpy (retval, "iso");
+ else
+ wp = retval;
+
+ for (cnt = 0; cnt < name_len; ++cnt)
+ if (isalpha ((unsigned char) codeset[cnt]))
+ *wp++ = tolower ((unsigned char) codeset[cnt]);
+ else if (isdigit ((unsigned char) codeset[cnt]))
+ *wp++ = codeset[cnt];
+
+ *wp = '\0';
+ }
+
+ return (const char *) retval;
+}
+
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (char *dest, const char *src)
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
diff --git a/intl/langprefs.c b/intl/langprefs.c
new file mode 100644
index 0000000..59c8def
--- /dev/null
+++ b/intl/langprefs.c
@@ -0,0 +1,130 @@
+/* Determine the user's language preferences.
+ Copyright (C) 2004-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Bruno Haible <bruno at clisp.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+
+#if HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <string.h>
+# include <CoreFoundation/CFPreferences.h>
+# include <CoreFoundation/CFPropertyList.h>
+# include <CoreFoundation/CFArray.h>
+# include <CoreFoundation/CFString.h>
+extern void _nl_locale_name_canonicalize (char *name);
+#endif
+
+/* Determine the user's language preferences, as a colon separated list of
+ locale names in XPG syntax
+ language[_territory][.codeset][@modifier]
+ The result must not be freed; it is statically allocated.
+ The LANGUAGE environment variable does not need to be considered; it is
+ already taken into account by the caller. */
+
+const char *
+_nl_language_preferences_default (void)
+{
+#if HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
+ {
+ /* Cache the preferences list, since CoreFoundation calls are expensive. */
+ static const char *cached_languages;
+ static int cache_initialized;
+
+ if (!cache_initialized)
+ {
+ CFTypeRef preferences =
+ CFPreferencesCopyAppValue (CFSTR ("AppleLanguages"),
+ kCFPreferencesCurrentApplication);
+ if (preferences != NULL
+ && CFGetTypeID (preferences) == CFArrayGetTypeID ())
+ {
+ CFArrayRef prefArray = (CFArrayRef)preferences;
+ int n = CFArrayGetCount (prefArray);
+ char buf[256];
+ size_t size = 0;
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ CFTypeRef element = CFArrayGetValueAtIndex (prefArray, i);
+ if (element != NULL
+ && CFGetTypeID (element) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)element,
+ buf, sizeof (buf),
+ kCFStringEncodingASCII))
+ {
+ _nl_locale_name_canonicalize (buf);
+ size += strlen (buf) + 1;
+ /* Most GNU programs use msgids in English and don't ship
+ an en.mo message catalog. Therefore when we see "en"
+ in the preferences list, arrange for gettext() to
+ return the msgid, and ignore all further elements of
+ the preferences list. */
+ if (strcmp (buf, "en") == 0)
+ break;
+ }
+ else
+ break;
+ }
+ if (size > 0)
+ {
+ char *languages = (char *) malloc (size);
+
+ if (languages != NULL)
+ {
+ char *p = languages;
+
+ for (i = 0; i < n; i++)
+ {
+ CFTypeRef element =
+ CFArrayGetValueAtIndex (prefArray, i);
+ if (element != NULL
+ && CFGetTypeID (element) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)element,
+ buf, sizeof (buf),
+ kCFStringEncodingASCII))
+ {
+ _nl_locale_name_canonicalize (buf);
+ strcpy (p, buf);
+ p += strlen (buf);
+ *p++ = ':';
+ if (strcmp (buf, "en") == 0)
+ break;
+ }
+ else
+ break;
+ }
+ *--p = '\0';
+
+ cached_languages = languages;
+ }
+ }
+ }
+ cache_initialized = 1;
+ }
+ if (cached_languages != NULL)
+ return cached_languages;
+ }
+#endif
+
+ return NULL;
+}
diff --git a/intl/libgnuintl.h.in b/intl/libgnuintl.h.in
new file mode 100644
index 0000000..c9da798
--- /dev/null
+++ b/intl/libgnuintl.h.in
@@ -0,0 +1,419 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H 1
+
+#include <locale.h>
+
+/* The LC_MESSAGES locale category is the category used by the functions
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
+ On systems that don't define it, use an arbitrary value instead.
+ On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
+ then includes <libintl.h> (i.e. this file!) and then only defines
+ LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES
+ in this case. */
+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+/* Provide information about the supported file formats. Returns the
+ maximum minor revision number supported for a given major revision. */
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
+ ((major) == 0 || (major) == 1 ? 1 : -1)
+
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
+ precedence over _conio_gettext. */
+#ifdef __DJGPP__
+# undef gettext
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Version number: (major<<16) + (minor<<8) + subminor */
+#define LIBINTL_VERSION 0x001100
+extern int libintl_version;
+
+
+/* We redirect the functions to those prefixed with "libintl_". This is
+ necessary, because some systems define gettext/textdomain/... in the C
+ library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
+ If we used the unprefixed names, there would be cases where the
+ definition in the C library would override the one in the libintl.so
+ shared library. Recall that on ELF systems, the symbols are looked
+ up in the following order:
+ 1. in the executable,
+ 2. in the shared libraries specified on the link command line, in order,
+ 3. in the dependencies of the shared libraries specified on the link
+ command line,
+ 4. in the dlopen()ed shared libraries, in the order in which they were
+ dlopen()ed.
+ The definition in the C library would override the one in libintl.so if
+ either
+ * -lc is given on the link command line and -lintl isn't, or
+ * -lc is given on the link command line before -lintl, or
+ * libintl.so is a dependency of a dlopen()ed shared library but not
+ linked to the executable at link time.
+ Since Solaris gettext() behaves differently than GNU gettext(), this
+ would be unacceptable.
+
+ The redirection happens by default through macros in C, so that &gettext
+ is independent of the compilation unit, but through inline functions in
+ C++, in order not to interfere with the name mangling of class fields or
+ class methods called 'gettext'. */
+
+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
+ If he doesn't, we choose the method. A third possible method is
+ _INTL_REDIRECT_ASM, supported only by GCC. */
+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
+# if __GNUC__ >= 2 && !(__APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
+# define _INTL_REDIRECT_ASM
+# else
+# ifdef __cplusplus
+# define _INTL_REDIRECT_INLINE
+# else
+# define _INTL_REDIRECT_MACROS
+# endif
+# endif
+#endif
+/* Auxiliary macros. */
+#ifdef _INTL_REDIRECT_ASM
+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
+# define _INTL_STRINGIFY(prefix) #prefix
+#else
+# define _INTL_ASM(cname)
+#endif
+
+/* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return
+ its n-th argument literally. This enables GCC to warn for example about
+ printf (gettext ("foo %y")). */
+#if __GNUC__ >= 3 && !(__APPLE_CC__ > 1 && defined __cplusplus)
+# define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n)))
+#else
+# define _INTL_MAY_RETURN_STRING_ARG(n)
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_gettext (const char *__msgid)
+ _INTL_MAY_RETURN_STRING_ARG (1);
+static inline char *gettext (const char *__msgid)
+{
+ return libintl_gettext (__msgid);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define gettext libintl_gettext
+#endif
+extern char *gettext (const char *__msgid)
+ _INTL_ASM (libintl_gettext)
+ _INTL_MAY_RETURN_STRING_ARG (1);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dgettext (const char *__domainname, const char *__msgid)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *dgettext (const char *__domainname, const char *__msgid)
+{
+ return libintl_dgettext (__domainname, __msgid);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dgettext libintl_dgettext
+#endif
+extern char *dgettext (const char *__domainname, const char *__msgid)
+ _INTL_ASM (libintl_dgettext)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
+ int __category)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *dcgettext (const char *__domainname, const char *__msgid,
+ int __category)
+{
+ return libintl_dcgettext (__domainname, __msgid, __category);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dcgettext libintl_dcgettext
+#endif
+extern char *dcgettext (const char *__domainname, const char *__msgid,
+ int __category)
+ _INTL_ASM (libintl_dcgettext)
+ _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+
+/* Similar to `gettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+{
+ return libintl_ngettext (__msgid1, __msgid2, __n);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define ngettext libintl_ngettext
+#endif
+extern char *ngettext (const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_ASM (libintl_ngettext)
+ _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Similar to `dgettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline char *dngettext (const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n)
+{
+ return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dngettext libintl_dngettext
+#endif
+extern char *dngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n)
+ _INTL_ASM (libintl_dngettext)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+/* Similar to `dcgettext' but select the plural form corresponding to the
+ number N. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline char *dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+{
+ return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dcngettext libintl_dcngettext
+#endif
+extern char *dcngettext (const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category)
+ _INTL_ASM (libintl_dcngettext)
+ _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+
+#ifndef IN_LIBGLOCALE
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_textdomain (const char *__domainname);
+static inline char *textdomain (const char *__domainname)
+{
+ return libintl_textdomain (__domainname);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define textdomain libintl_textdomain
+#endif
+extern char *textdomain (const char *__domainname)
+ _INTL_ASM (libintl_textdomain);
+#endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bindtextdomain (const char *__domainname,
+ const char *__dirname);
+static inline char *bindtextdomain (const char *__domainname,
+ const char *__dirname)
+{
+ return libintl_bindtextdomain (__domainname, __dirname);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define bindtextdomain libintl_bindtextdomain
+#endif
+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
+ _INTL_ASM (libintl_bindtextdomain);
+#endif
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset);
+static inline char *bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset)
+{
+ return libintl_bind_textdomain_codeset (__domainname, __codeset);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define bind_textdomain_codeset libintl_bind_textdomain_codeset
+#endif
+extern char *bind_textdomain_codeset (const char *__domainname,
+ const char *__codeset)
+ _INTL_ASM (libintl_bind_textdomain_codeset);
+#endif
+
+#endif /* IN_LIBGLOCALE */
+
+
+/* Support for format strings with positions in *printf(), following the
+ POSIX/XSI specification.
+ Note: These replacements for the *printf() functions are visible only
+ in source files that #include <libintl.h> or #include "gettext.h".
+ Packages that use *printf() in source files that don't refer to _()
+ or gettext() but for which the format string could be the return value
+ of _() or gettext() need to add this #include. Oh well. */
+
+#if !@HAVE_POSIX_PRINTF@
+
+#include <stdio.h>
+#include <stddef.h>
+
+/* Get va_list. */
+#if __STDC__ || defined __cplusplus || defined _MSC_VER
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#undef fprintf
+#define fprintf libintl_fprintf
+extern int fprintf (FILE *, const char *, ...);
+#undef vfprintf
+#define vfprintf libintl_vfprintf
+extern int vfprintf (FILE *, const char *, va_list);
+
+#undef printf
+#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
+/* Don't break __attribute__((format(printf,M,N))).
+ This redefinition is only possible because the libc in NetBSD, Cygwin,
+ mingw does not have a function __printf__. */
+# define libintl_printf __printf__
+#endif
+#define printf libintl_printf
+extern int printf (const char *, ...);
+#undef vprintf
+#define vprintf libintl_vprintf
+extern int vprintf (const char *, va_list);
+
+#undef sprintf
+#define sprintf libintl_sprintf
+extern int sprintf (char *, const char *, ...);
+#undef vsprintf
+#define vsprintf libintl_vsprintf
+extern int vsprintf (char *, const char *, va_list);
+
+#if @HAVE_SNPRINTF@
+
+#undef snprintf
+#define snprintf libintl_snprintf
+extern int snprintf (char *, size_t, const char *, ...);
+#undef vsnprintf
+#define vsnprintf libintl_vsnprintf
+extern int vsnprintf (char *, size_t, const char *, va_list);
+
+#endif
+
+#if @HAVE_ASPRINTF@
+
+#undef asprintf
+#define asprintf libintl_asprintf
+extern int asprintf (char **, const char *, ...);
+#undef vasprintf
+#define vasprintf libintl_vasprintf
+extern int vasprintf (char **, const char *, va_list);
+
+#endif
+
+#if @HAVE_WPRINTF@
+
+#undef fwprintf
+#define fwprintf libintl_fwprintf
+extern int fwprintf (FILE *, const wchar_t *, ...);
+#undef vfwprintf
+#define vfwprintf libintl_vfwprintf
+extern int vfwprintf (FILE *, const wchar_t *, va_list);
+
+#undef wprintf
+#define wprintf libintl_wprintf
+extern int wprintf (const wchar_t *, ...);
+#undef vwprintf
+#define vwprintf libintl_vwprintf
+extern int vwprintf (const wchar_t *, va_list);
+
+#undef swprintf
+#define swprintf libintl_swprintf
+extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
+#undef vswprintf
+#define vswprintf libintl_vswprintf
+extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
+
+#endif
+
+#endif
+
+
+/* Support for relocatable packages. */
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+#define libintl_set_relocation_prefix libintl_set_relocation_prefix
+extern void
+ libintl_set_relocation_prefix (const char *orig_prefix,
+ const char *curr_prefix);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
diff --git a/intl/libintl.rc b/intl/libintl.rc
new file mode 100644
index 0000000..f00f0b3
--- /dev/null
+++ b/intl/libintl.rc
@@ -0,0 +1,38 @@
+/* Resources for intl.dll */
+
+#include <winver.h>
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0
+ PRODUCTVERSION PACKAGE_VERSION_MAJOR,PACKAGE_VERSION_MINOR,PACKAGE_VERSION_SUBMINOR,0
+ FILEFLAGSMASK 0x3fL /* VS_FFI_FILEFLAGSMASK */
+#ifdef _DEBUG
+ FILEFLAGS 0x1L /* VS_FF_DEBUG */
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x10004L /* VOS_DOS_WINDOWS32 */
+ FILETYPE 0x2L /* VFT_DLL */
+ FILESUBTYPE 0x0L /* VFT2_UNKNOWN */
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "04090000" /* Lang = US English, Charset = ASCII */
+ BEGIN
+ VALUE "Comments", "This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\0"
+ VALUE "CompanyName", "Free Software Foundation\0"
+ VALUE "FileDescription", "LGPLed libintl for Windows NT/2000/XP/Vista and Windows 95/98/ME\0"
+ VALUE "FileVersion", PACKAGE_VERSION_STRING "\0"
+ VALUE "InternalName", "intl.dll\0"
+ VALUE "LegalCopyright", "Copyright (C) 1995-2007\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "intl.dll\0"
+ VALUE "ProductName", "libintl: accessing NLS message catalogs\0"
+ VALUE "ProductVersion", PACKAGE_VERSION_STRING "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0 /* US English, ASCII */
+ END
+END
diff --git a/intl/loadinfo.h b/intl/loadinfo.h
new file mode 100644
index 0000000..a7a1970
--- /dev/null
+++ b/intl/loadinfo.h
@@ -0,0 +1,132 @@
+/* Copyright (C) 1996-1999, 2000-2003, 2005-2006 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper at cygnus.com>, 1996.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _LOADINFO_H
+#define _LOADINFO_H 1
+
+/* Declarations of locale dependent catalog lookup functions.
+ Implemented in
+
+ localealias.c Possibly replace a locale name by another.
+ explodename.c Split a locale name into its various fields.
+ l10nflist.c Generate a list of filenames of possible message catalogs.
+ finddomain.c Find and open the relevant message catalogs.
+
+ The main function _nl_find_domain() in finddomain.c is declared
+ in gettextP.h.
+ */
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef LIBINTL_DLL_EXPORTED
+# define LIBINTL_DLL_EXPORTED
+#endif
+
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
+/* Separator in PATH like lists of pathnames. */
+#if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define PATH_SEPARATOR ';'
+#else
+ /* Unix */
+# define PATH_SEPARATOR ':'
+#endif
+
+/* Encoding of locale name parts. */
+#define XPG_NORM_CODESET 1
+#define XPG_CODESET 2
+#define XPG_TERRITORY 4
+#define XPG_MODIFIER 8
+
+
+struct loaded_l10nfile
+{
+ const char *filename;
+ int decided;
+
+ const void *data;
+
+ struct loaded_l10nfile *next;
+ struct loaded_l10nfile *successor[1];
+};
+
+
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
+extern const char *_nl_normalize_codeset (const char *codeset,
+ size_t name_len);
+
+/* Lookup a locale dependent file.
+ *L10NFILE_LIST denotes a pool of lookup results of locale dependent
+ files of the same kind, sorted in decreasing order of ->filename.
+ DIRLIST and DIRLIST_LEN are an argz list of directories in which to
+ look, containing at least one directory (i.e. DIRLIST_LEN > 0).
+ MASK, LANGUAGE, TERRITORY, CODESET, NORMALIZED_CODESET, MODIFIER
+ are the pieces of the locale name, as produced by _nl_explode_name().
+ FILENAME is the filename suffix.
+ The return value is the lookup result, either found in *L10NFILE_LIST,
+ or - if DO_ALLOCATE is nonzero - freshly allocated, or possibly NULL.
+ If the return value is non-NULL, it is added to *L10NFILE_LIST, and
+ its ->next field denotes the chaining inside *L10NFILE_LIST, and
+ furthermore its ->successor[] field contains a list of other lookup
+ results from which this lookup result inherits. */
+extern struct loaded_l10nfile *
+_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
+ const char *dirlist, size_t dirlist_len, int mask,
+ const char *language, const char *territory,
+ const char *codeset, const char *normalized_codeset,
+ const char *modifier,
+ const char *filename, int do_allocate);
+
+/* Lookup the real locale name for a locale alias NAME, or NULL if
+ NAME is not a locale alias (but possibly a real locale name).
+ The return value is statically allocated and must not be freed. */
+/* Part of the libintl ABI only for the sake of the gettext.m4 macro. */
+extern LIBINTL_DLL_EXPORTED const char *_nl_expand_alias (const char *name);
+
+/* Split a locale name NAME into its pieces: language, modifier,
+ territory, codeset.
+ NAME gets destructively modified: NUL bytes are inserted here and
+ there. *LANGUAGE gets assigned NAME. Each of *MODIFIER, *TERRITORY,
+ *CODESET gets assigned either a pointer into the old NAME string, or
+ NULL. *NORMALIZED_CODESET gets assigned the expanded *CODESET, if it
+ is different from *CODESET; this one is dynamically allocated and has
+ to be freed by the caller.
+ The return value is a bitmask, where each bit corresponds to one
+ filled-in value:
+ XPG_MODIFIER for *MODIFIER,
+ XPG_TERRITORY for *TERRITORY,
+ XPG_CODESET for *CODESET,
+ XPG_NORM_CODESET for *NORMALIZED_CODESET.
+ */
+extern int _nl_explode_name (char *name, const char **language,
+ const char **modifier, const char **territory,
+ const char **codeset,
+ const char **normalized_codeset);
+
+#endif /* loadinfo.h */
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
new file mode 100644
index 0000000..3432a8c
--- /dev/null
+++ b/intl/loadmsgcat.c
@@ -0,0 +1,1336 @@
+/* Load needed message catalogs.
+ Copyright (C) 1995-1999, 2000-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef __GNUC__
+# undef alloca
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#ifdef _LIBC
+# include <langinfo.h>
+# include <locale.h>
+#endif
+
+#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
+ || (defined _LIBC && defined _POSIX_MAPPED_FILES)
+# include <sys/mman.h>
+# undef HAVE_MMAP
+# define HAVE_MMAP 1
+#else
+# undef HAVE_MMAP
+#endif
+
+#if defined HAVE_STDINT_H_WITH_UINTMAX || defined _LIBC
+# include <stdint.h>
+#endif
+#if defined HAVE_INTTYPES_H || defined _LIBC
+# include <inttypes.h>
+#endif
+
+#include "gmo.h"
+#include "gettextP.h"
+#include "hash-string.h"
+#include "plural-exp.h"
+
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+# include <not-cancel.h>
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+# include "lock.h"
+#endif
+
+/* Provide fallback values for macros that ought to be defined in <inttypes.h>.
+ Note that our fallback values need not be literal strings, because we don't
+ use them with preprocessor string concatenation. */
+#if !defined PRId8 || PRI_MACROS_BROKEN
+# undef PRId8
+# define PRId8 "d"
+#endif
+#if !defined PRIi8 || PRI_MACROS_BROKEN
+# undef PRIi8
+# define PRIi8 "i"
+#endif
+#if !defined PRIo8 || PRI_MACROS_BROKEN
+# undef PRIo8
+# define PRIo8 "o"
+#endif
+#if !defined PRIu8 || PRI_MACROS_BROKEN
+# undef PRIu8
+# define PRIu8 "u"
+#endif
+#if !defined PRIx8 || PRI_MACROS_BROKEN
+# undef PRIx8
+# define PRIx8 "x"
+#endif
+#if !defined PRIX8 || PRI_MACROS_BROKEN
+# undef PRIX8
+# define PRIX8 "X"
+#endif
+#if !defined PRId16 || PRI_MACROS_BROKEN
+# undef PRId16
+# define PRId16 "d"
+#endif
+#if !defined PRIi16 || PRI_MACROS_BROKEN
+# undef PRIi16
+# define PRIi16 "i"
+#endif
+#if !defined PRIo16 || PRI_MACROS_BROKEN
+# undef PRIo16
+# define PRIo16 "o"
+#endif
+#if !defined PRIu16 || PRI_MACROS_BROKEN
+# undef PRIu16
+# define PRIu16 "u"
+#endif
+#if !defined PRIx16 || PRI_MACROS_BROKEN
+# undef PRIx16
+# define PRIx16 "x"
+#endif
+#if !defined PRIX16 || PRI_MACROS_BROKEN
+# undef PRIX16
+# define PRIX16 "X"
+#endif
+#if !defined PRId32 || PRI_MACROS_BROKEN
+# undef PRId32
+# define PRId32 "d"
+#endif
+#if !defined PRIi32 || PRI_MACROS_BROKEN
+# undef PRIi32
+# define PRIi32 "i"
+#endif
+#if !defined PRIo32 || PRI_MACROS_BROKEN
+# undef PRIo32
+# define PRIo32 "o"
+#endif
+#if !defined PRIu32 || PRI_MACROS_BROKEN
+# undef PRIu32
+# define PRIu32 "u"
+#endif
+#if !defined PRIx32 || PRI_MACROS_BROKEN
+# undef PRIx32
+# define PRIx32 "x"
+#endif
+#if !defined PRIX32 || PRI_MACROS_BROKEN
+# undef PRIX32
+# define PRIX32 "X"
+#endif
+#if !defined PRId64 || PRI_MACROS_BROKEN
+# undef PRId64
+# define PRId64 (sizeof (long) == 8 ? "ld" : "lld")
+#endif
+#if !defined PRIi64 || PRI_MACROS_BROKEN
+# undef PRIi64
+# define PRIi64 (sizeof (long) == 8 ? "li" : "lli")
+#endif
+#if !defined PRIo64 || PRI_MACROS_BROKEN
+# undef PRIo64
+# define PRIo64 (sizeof (long) == 8 ? "lo" : "llo")
+#endif
+#if !defined PRIu64 || PRI_MACROS_BROKEN
+# undef PRIu64
+# define PRIu64 (sizeof (long) == 8 ? "lu" : "llu")
+#endif
+#if !defined PRIx64 || PRI_MACROS_BROKEN
+# undef PRIx64
+# define PRIx64 (sizeof (long) == 8 ? "lx" : "llx")
+#endif
+#if !defined PRIX64 || PRI_MACROS_BROKEN
+# undef PRIX64
+# define PRIX64 (sizeof (long) == 8 ? "lX" : "llX")
+#endif
+#if !defined PRIdLEAST8 || PRI_MACROS_BROKEN
+# undef PRIdLEAST8
+# define PRIdLEAST8 "d"
+#endif
+#if !defined PRIiLEAST8 || PRI_MACROS_BROKEN
+# undef PRIiLEAST8
+# define PRIiLEAST8 "i"
+#endif
+#if !defined PRIoLEAST8 || PRI_MACROS_BROKEN
+# undef PRIoLEAST8
+# define PRIoLEAST8 "o"
+#endif
+#if !defined PRIuLEAST8 || PRI_MACROS_BROKEN
+# undef PRIuLEAST8
+# define PRIuLEAST8 "u"
+#endif
+#if !defined PRIxLEAST8 || PRI_MACROS_BROKEN
+# undef PRIxLEAST8
+# define PRIxLEAST8 "x"
+#endif
+#if !defined PRIXLEAST8 || PRI_MACROS_BROKEN
+# undef PRIXLEAST8
+# define PRIXLEAST8 "X"
+#endif
+#if !defined PRIdLEAST16 || PRI_MACROS_BROKEN
+# undef PRIdLEAST16
+# define PRIdLEAST16 "d"
+#endif
+#if !defined PRIiLEAST16 || PRI_MACROS_BROKEN
+# undef PRIiLEAST16
+# define PRIiLEAST16 "i"
+#endif
+#if !defined PRIoLEAST16 || PRI_MACROS_BROKEN
+# undef PRIoLEAST16
+# define PRIoLEAST16 "o"
+#endif
+#if !defined PRIuLEAST16 || PRI_MACROS_BROKEN
+# undef PRIuLEAST16
+# define PRIuLEAST16 "u"
+#endif
+#if !defined PRIxLEAST16 || PRI_MACROS_BROKEN
+# undef PRIxLEAST16
+# define PRIxLEAST16 "x"
+#endif
+#if !defined PRIXLEAST16 || PRI_MACROS_BROKEN
+# undef PRIXLEAST16
+# define PRIXLEAST16 "X"
+#endif
+#if !defined PRIdLEAST32 || PRI_MACROS_BROKEN
+# undef PRIdLEAST32
+# define PRIdLEAST32 "d"
+#endif
+#if !defined PRIiLEAST32 || PRI_MACROS_BROKEN
+# undef PRIiLEAST32
+# define PRIiLEAST32 "i"
+#endif
+#if !defined PRIoLEAST32 || PRI_MACROS_BROKEN
+# undef PRIoLEAST32
+# define PRIoLEAST32 "o"
+#endif
+#if !defined PRIuLEAST32 || PRI_MACROS_BROKEN
+# undef PRIuLEAST32
+# define PRIuLEAST32 "u"
+#endif
+#if !defined PRIxLEAST32 || PRI_MACROS_BROKEN
+# undef PRIxLEAST32
+# define PRIxLEAST32 "x"
+#endif
+#if !defined PRIXLEAST32 || PRI_MACROS_BROKEN
+# undef PRIXLEAST32
+# define PRIXLEAST32 "X"
+#endif
+#if !defined PRIdLEAST64 || PRI_MACROS_BROKEN
+# undef PRIdLEAST64
+# define PRIdLEAST64 PRId64
+#endif
+#if !defined PRIiLEAST64 || PRI_MACROS_BROKEN
+# undef PRIiLEAST64
+# define PRIiLEAST64 PRIi64
+#endif
+#if !defined PRIoLEAST64 || PRI_MACROS_BROKEN
+# undef PRIoLEAST64
+# define PRIoLEAST64 PRIo64
+#endif
+#if !defined PRIuLEAST64 || PRI_MACROS_BROKEN
+# undef PRIuLEAST64
+# define PRIuLEAST64 PRIu64
+#endif
+#if !defined PRIxLEAST64 || PRI_MACROS_BROKEN
+# undef PRIxLEAST64
+# define PRIxLEAST64 PRIx64
+#endif
+#if !defined PRIXLEAST64 || PRI_MACROS_BROKEN
+# undef PRIXLEAST64
+# define PRIXLEAST64 PRIX64
+#endif
+#if !defined PRIdFAST8 || PRI_MACROS_BROKEN
+# undef PRIdFAST8
+# define PRIdFAST8 "d"
+#endif
+#if !defined PRIiFAST8 || PRI_MACROS_BROKEN
+# undef PRIiFAST8
+# define PRIiFAST8 "i"
+#endif
+#if !defined PRIoFAST8 || PRI_MACROS_BROKEN
+# undef PRIoFAST8
+# define PRIoFAST8 "o"
+#endif
+#if !defined PRIuFAST8 || PRI_MACROS_BROKEN
+# undef PRIuFAST8
+# define PRIuFAST8 "u"
+#endif
+#if !defined PRIxFAST8 || PRI_MACROS_BROKEN
+# undef PRIxFAST8
+# define PRIxFAST8 "x"
+#endif
+#if !defined PRIXFAST8 || PRI_MACROS_BROKEN
+# undef PRIXFAST8
+# define PRIXFAST8 "X"
+#endif
+#if !defined PRIdFAST16 || PRI_MACROS_BROKEN
+# undef PRIdFAST16
+# define PRIdFAST16 "d"
+#endif
+#if !defined PRIiFAST16 || PRI_MACROS_BROKEN
+# undef PRIiFAST16
+# define PRIiFAST16 "i"
+#endif
+#if !defined PRIoFAST16 || PRI_MACROS_BROKEN
+# undef PRIoFAST16
+# define PRIoFAST16 "o"
+#endif
+#if !defined PRIuFAST16 || PRI_MACROS_BROKEN
+# undef PRIuFAST16
+# define PRIuFAST16 "u"
+#endif
+#if !defined PRIxFAST16 || PRI_MACROS_BROKEN
+# undef PRIxFAST16
+# define PRIxFAST16 "x"
+#endif
+#if !defined PRIXFAST16 || PRI_MACROS_BROKEN
+# undef PRIXFAST16
+# define PRIXFAST16 "X"
+#endif
+#if !defined PRIdFAST32 || PRI_MACROS_BROKEN
+# undef PRIdFAST32
+# define PRIdFAST32 "d"
+#endif
+#if !defined PRIiFAST32 || PRI_MACROS_BROKEN
+# undef PRIiFAST32
+# define PRIiFAST32 "i"
+#endif
+#if !defined PRIoFAST32 || PRI_MACROS_BROKEN
+# undef PRIoFAST32
+# define PRIoFAST32 "o"
+#endif
+#if !defined PRIuFAST32 || PRI_MACROS_BROKEN
+# undef PRIuFAST32
+# define PRIuFAST32 "u"
+#endif
+#if !defined PRIxFAST32 || PRI_MACROS_BROKEN
+# undef PRIxFAST32
+# define PRIxFAST32 "x"
+#endif
+#if !defined PRIXFAST32 || PRI_MACROS_BROKEN
+# undef PRIXFAST32
+# define PRIXFAST32 "X"
+#endif
+#if !defined PRIdFAST64 || PRI_MACROS_BROKEN
+# undef PRIdFAST64
+# define PRIdFAST64 PRId64
+#endif
+#if !defined PRIiFAST64 || PRI_MACROS_BROKEN
+# undef PRIiFAST64
+# define PRIiFAST64 PRIi64
+#endif
+#if !defined PRIoFAST64 || PRI_MACROS_BROKEN
+# undef PRIoFAST64
+# define PRIoFAST64 PRIo64
+#endif
+#if !defined PRIuFAST64 || PRI_MACROS_BROKEN
+# undef PRIuFAST64
+# define PRIuFAST64 PRIu64
+#endif
+#if !defined PRIxFAST64 || PRI_MACROS_BROKEN
+# undef PRIxFAST64
+# define PRIxFAST64 PRIx64
+#endif
+#if !defined PRIXFAST64 || PRI_MACROS_BROKEN
+# undef PRIXFAST64
+# define PRIXFAST64 PRIX64
+#endif
+#if !defined PRIdMAX || PRI_MACROS_BROKEN
+# undef PRIdMAX
+# define PRIdMAX (sizeof (uintmax_t) == sizeof (long) ? "ld" : "lld")
+#endif
+#if !defined PRIiMAX || PRI_MACROS_BROKEN
+# undef PRIiMAX
+# define PRIiMAX (sizeof (uintmax_t) == sizeof (long) ? "li" : "lli")
+#endif
+#if !defined PRIoMAX || PRI_MACROS_BROKEN
+# undef PRIoMAX
+# define PRIoMAX (sizeof (uintmax_t) == sizeof (long) ? "lo" : "llo")
+#endif
+#if !defined PRIuMAX || PRI_MACROS_BROKEN
+# undef PRIuMAX
+# define PRIuMAX (sizeof (uintmax_t) == sizeof (long) ? "lu" : "llu")
+#endif
+#if !defined PRIxMAX || PRI_MACROS_BROKEN
+# undef PRIxMAX
+# define PRIxMAX (sizeof (uintmax_t) == sizeof (long) ? "lx" : "llx")
+#endif
+#if !defined PRIXMAX || PRI_MACROS_BROKEN
+# undef PRIXMAX
+# define PRIXMAX (sizeof (uintmax_t) == sizeof (long) ? "lX" : "llX")
+#endif
+#if !defined PRIdPTR || PRI_MACROS_BROKEN
+# undef PRIdPTR
+# define PRIdPTR \
+ (sizeof (void *) == sizeof (long) ? "ld" : \
+ sizeof (void *) == sizeof (int) ? "d" : \
+ "lld")
+#endif
+#if !defined PRIiPTR || PRI_MACROS_BROKEN
+# undef PRIiPTR
+# define PRIiPTR \
+ (sizeof (void *) == sizeof (long) ? "li" : \
+ sizeof (void *) == sizeof (int) ? "i" : \
+ "lli")
+#endif
+#if !defined PRIoPTR || PRI_MACROS_BROKEN
+# undef PRIoPTR
+# define PRIoPTR \
+ (sizeof (void *) == sizeof (long) ? "lo" : \
+ sizeof (void *) == sizeof (int) ? "o" : \
+ "llo")
+#endif
+#if !defined PRIuPTR || PRI_MACROS_BROKEN
+# undef PRIuPTR
+# define PRIuPTR \
+ (sizeof (void *) == sizeof (long) ? "lu" : \
+ sizeof (void *) == sizeof (int) ? "u" : \
+ "llu")
+#endif
+#if !defined PRIxPTR || PRI_MACROS_BROKEN
+# undef PRIxPTR
+# define PRIxPTR \
+ (sizeof (void *) == sizeof (long) ? "lx" : \
+ sizeof (void *) == sizeof (int) ? "x" : \
+ "llx")
+#endif
+#if !defined PRIXPTR || PRI_MACROS_BROKEN
+# undef PRIXPTR
+# define PRIXPTR \
+ (sizeof (void *) == sizeof (long) ? "lX" : \
+ sizeof (void *) == sizeof (int) ? "X" : \
+ "llX")
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ISO C functions. This is required by the standard
+ because some ISO C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define open(name, flags) open_not_cancel_2 (name, flags)
+# define close(fd) close_not_cancel_no_status (fd)
+# define read(fd, buf, n) read_not_cancel (fd, buf, n)
+# define mmap(addr, len, prot, flags, fd, offset) \
+ __mmap (addr, len, prot, flags, fd, offset)
+# define munmap(addr, len) __munmap (addr, len)
+#endif
+
+/* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+# define freea(p) /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+/* For systems that distinguish between text and binary I/O.
+ O_BINARY is usually declared in <fcntl.h>. */
+#if !defined O_BINARY && defined _O_BINARY
+ /* For MSC-compatible compilers. */
+# define O_BINARY _O_BINARY
+# define O_TEXT _O_TEXT
+#endif
+#ifdef __BEOS__
+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
+# undef O_BINARY
+# undef O_TEXT
+#endif
+/* On reasonable systems, binary I/O is the default. */
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
+
+/* We need a sign, whether a new catalog was loaded, which can be associated
+ with all translations. This is important if the translations are
+ cached by one of GCC's features. */
+int _nl_msg_cat_cntr;
+
+
+/* Expand a system dependent string segment. Return NULL if unsupported. */
+static const char *
+get_sysdep_segment_value (const char *name)
+{
+ /* Test for an ISO C 99 section 7.8.1 format string directive.
+ Syntax:
+ P R I { d | i | o | u | x | X }
+ { { | LEAST | FAST } { 8 | 16 | 32 | 64 } | MAX | PTR } */
+ /* We don't use a table of 14 times 6 'const char *' strings here, because
+ data relocations cost startup time. */
+ if (name[0] == 'P' && name[1] == 'R' && name[2] == 'I')
+ {
+ if (name[3] == 'd' || name[3] == 'i' || name[3] == 'o' || name[3] == 'u'
+ || name[3] == 'x' || name[3] == 'X')
+ {
+ if (name[4] == '8' && name[5] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRId8;
+ if (name[3] == 'i')
+ return PRIi8;
+ if (name[3] == 'o')
+ return PRIo8;
+ if (name[3] == 'u')
+ return PRIu8;
+ if (name[3] == 'x')
+ return PRIx8;
+ if (name[3] == 'X')
+ return PRIX8;
+ abort ();
+ }
+ if (name[4] == '1' && name[5] == '6' && name[6] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRId16;
+ if (name[3] == 'i')
+ return PRIi16;
+ if (name[3] == 'o')
+ return PRIo16;
+ if (name[3] == 'u')
+ return PRIu16;
+ if (name[3] == 'x')
+ return PRIx16;
+ if (name[3] == 'X')
+ return PRIX16;
+ abort ();
+ }
+ if (name[4] == '3' && name[5] == '2' && name[6] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRId32;
+ if (name[3] == 'i')
+ return PRIi32;
+ if (name[3] == 'o')
+ return PRIo32;
+ if (name[3] == 'u')
+ return PRIu32;
+ if (name[3] == 'x')
+ return PRIx32;
+ if (name[3] == 'X')
+ return PRIX32;
+ abort ();
+ }
+ if (name[4] == '6' && name[5] == '4' && name[6] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRId64;
+ if (name[3] == 'i')
+ return PRIi64;
+ if (name[3] == 'o')
+ return PRIo64;
+ if (name[3] == 'u')
+ return PRIu64;
+ if (name[3] == 'x')
+ return PRIx64;
+ if (name[3] == 'X')
+ return PRIX64;
+ abort ();
+ }
+ if (name[4] == 'L' && name[5] == 'E' && name[6] == 'A'
+ && name[7] == 'S' && name[8] == 'T')
+ {
+ if (name[9] == '8' && name[10] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdLEAST8;
+ if (name[3] == 'i')
+ return PRIiLEAST8;
+ if (name[3] == 'o')
+ return PRIoLEAST8;
+ if (name[3] == 'u')
+ return PRIuLEAST8;
+ if (name[3] == 'x')
+ return PRIxLEAST8;
+ if (name[3] == 'X')
+ return PRIXLEAST8;
+ abort ();
+ }
+ if (name[9] == '1' && name[10] == '6' && name[11] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdLEAST16;
+ if (name[3] == 'i')
+ return PRIiLEAST16;
+ if (name[3] == 'o')
+ return PRIoLEAST16;
+ if (name[3] == 'u')
+ return PRIuLEAST16;
+ if (name[3] == 'x')
+ return PRIxLEAST16;
+ if (name[3] == 'X')
+ return PRIXLEAST16;
+ abort ();
+ }
+ if (name[9] == '3' && name[10] == '2' && name[11] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdLEAST32;
+ if (name[3] == 'i')
+ return PRIiLEAST32;
+ if (name[3] == 'o')
+ return PRIoLEAST32;
+ if (name[3] == 'u')
+ return PRIuLEAST32;
+ if (name[3] == 'x')
+ return PRIxLEAST32;
+ if (name[3] == 'X')
+ return PRIXLEAST32;
+ abort ();
+ }
+ if (name[9] == '6' && name[10] == '4' && name[11] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdLEAST64;
+ if (name[3] == 'i')
+ return PRIiLEAST64;
+ if (name[3] == 'o')
+ return PRIoLEAST64;
+ if (name[3] == 'u')
+ return PRIuLEAST64;
+ if (name[3] == 'x')
+ return PRIxLEAST64;
+ if (name[3] == 'X')
+ return PRIXLEAST64;
+ abort ();
+ }
+ }
+ if (name[4] == 'F' && name[5] == 'A' && name[6] == 'S'
+ && name[7] == 'T')
+ {
+ if (name[8] == '8' && name[9] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdFAST8;
+ if (name[3] == 'i')
+ return PRIiFAST8;
+ if (name[3] == 'o')
+ return PRIoFAST8;
+ if (name[3] == 'u')
+ return PRIuFAST8;
+ if (name[3] == 'x')
+ return PRIxFAST8;
+ if (name[3] == 'X')
+ return PRIXFAST8;
+ abort ();
+ }
+ if (name[8] == '1' && name[9] == '6' && name[10] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdFAST16;
+ if (name[3] == 'i')
+ return PRIiFAST16;
+ if (name[3] == 'o')
+ return PRIoFAST16;
+ if (name[3] == 'u')
+ return PRIuFAST16;
+ if (name[3] == 'x')
+ return PRIxFAST16;
+ if (name[3] == 'X')
+ return PRIXFAST16;
+ abort ();
+ }
+ if (name[8] == '3' && name[9] == '2' && name[10] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdFAST32;
+ if (name[3] == 'i')
+ return PRIiFAST32;
+ if (name[3] == 'o')
+ return PRIoFAST32;
+ if (name[3] == 'u')
+ return PRIuFAST32;
+ if (name[3] == 'x')
+ return PRIxFAST32;
+ if (name[3] == 'X')
+ return PRIXFAST32;
+ abort ();
+ }
+ if (name[8] == '6' && name[9] == '4' && name[10] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdFAST64;
+ if (name[3] == 'i')
+ return PRIiFAST64;
+ if (name[3] == 'o')
+ return PRIoFAST64;
+ if (name[3] == 'u')
+ return PRIuFAST64;
+ if (name[3] == 'x')
+ return PRIxFAST64;
+ if (name[3] == 'X')
+ return PRIXFAST64;
+ abort ();
+ }
+ }
+ if (name[4] == 'M' && name[5] == 'A' && name[6] == 'X'
+ && name[7] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdMAX;
+ if (name[3] == 'i')
+ return PRIiMAX;
+ if (name[3] == 'o')
+ return PRIoMAX;
+ if (name[3] == 'u')
+ return PRIuMAX;
+ if (name[3] == 'x')
+ return PRIxMAX;
+ if (name[3] == 'X')
+ return PRIXMAX;
+ abort ();
+ }
+ if (name[4] == 'P' && name[5] == 'T' && name[6] == 'R'
+ && name[7] == '\0')
+ {
+ if (name[3] == 'd')
+ return PRIdPTR;
+ if (name[3] == 'i')
+ return PRIiPTR;
+ if (name[3] == 'o')
+ return PRIoPTR;
+ if (name[3] == 'u')
+ return PRIuPTR;
+ if (name[3] == 'x')
+ return PRIxPTR;
+ if (name[3] == 'X')
+ return PRIXPTR;
+ abort ();
+ }
+ }
+ }
+ /* Test for a glibc specific printf() format directive flag. */
+ if (name[0] == 'I' && name[1] == '\0')
+ {
+#if defined _LIBC || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)
+ /* The 'I' flag, in numeric format directives, replaces ASCII digits
+ with the 'outdigits' defined in the LC_CTYPE locale facet. This is
+ used for Farsi (Persian) and maybe Arabic. */
+ return "I";
+#else
+ return "";
+#endif
+ }
+ /* Other system dependent strings are not valid. */
+ return NULL;
+}
+
+/* Load the message catalogs specified by FILENAME. If it is no valid
+ message catalog do nothing. */
+void
+internal_function
+_nl_load_domain (struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding)
+{
+ __libc_lock_define_initialized_recursive (static, lock)
+ int fd = -1;
+ size_t size;
+#ifdef _LIBC
+ struct stat64 st;
+#else
+ struct stat st;
+#endif
+ struct mo_file_header *data = (struct mo_file_header *) -1;
+ int use_mmap = 0;
+ struct loaded_domain *domain;
+ int revision;
+ const char *nullentry;
+ size_t nullentrylen;
+
+ __libc_lock_lock_recursive (lock);
+ if (domain_file->decided != 0)
+ {
+ /* There are two possibilities:
+
+ + this is the same thread calling again during this initialization
+ via _nl_find_msg. We have initialized everything this call needs.
+
+ + this is another thread which tried to initialize this object.
+ Not necessary anymore since if the lock is available this
+ is finished.
+ */
+ goto done;
+ }
+
+ domain_file->decided = -1;
+ domain_file->data = NULL;
+
+ /* Note that it would be useless to store domainbinding in domain_file
+ because domainbinding might be == NULL now but != NULL later (after
+ a call to bind_textdomain_codeset). */
+
+ /* If the record does not represent a valid locale the FILENAME
+ might be NULL. This can happen when according to the given
+ specification the locale file name is different for XPG and CEN
+ syntax. */
+ if (domain_file->filename == NULL)
+ goto out;
+
+ /* Try to open the addressed file. */
+ fd = open (domain_file->filename, O_RDONLY | O_BINARY);
+ if (fd == -1)
+ goto out;
+
+ /* We must know about the size of the file. */
+ if (
+#ifdef _LIBC
+ __builtin_expect (fstat64 (fd, &st) != 0, 0)
+#else
+ __builtin_expect (fstat (fd, &st) != 0, 0)
+#endif
+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
+ || __builtin_expect (size < sizeof (struct mo_file_header), 0))
+ /* Something went wrong. */
+ goto out;
+
+#ifdef HAVE_MMAP
+ /* Now we are ready to load the file. If mmap() is available we try
+ this first. If not available or it failed we try to load it. */
+ data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
+ MAP_PRIVATE, fd, 0);
+
+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
+ {
+ /* mmap() call was successful. */
+ close (fd);
+ fd = -1;
+ use_mmap = 1;
+ }
+#endif
+
+ /* If the data is not yet available (i.e. mmap'ed) we try to load
+ it manually. */
+ if (data == (struct mo_file_header *) -1)
+ {
+ size_t to_read;
+ char *read_ptr;
+
+ data = (struct mo_file_header *) malloc (size);
+ if (data == NULL)
+ goto out;
+
+ to_read = size;
+ read_ptr = (char *) data;
+ do
+ {
+ long int nb = (long int) read (fd, read_ptr, to_read);
+ if (nb <= 0)
+ {
+#ifdef EINTR
+ if (nb == -1 && errno == EINTR)
+ continue;
+#endif
+ goto out;
+ }
+ read_ptr += nb;
+ to_read -= nb;
+ }
+ while (to_read > 0);
+
+ close (fd);
+ fd = -1;
+ }
+
+ /* Using the magic number we can test whether it really is a message
+ catalog file. */
+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
+ 0))
+ {
+ /* The magic number is wrong: not a message catalog file. */
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ goto out;
+ }
+
+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain == NULL)
+ goto out;
+ domain_file->data = domain;
+
+ domain->data = (char *) data;
+ domain->use_mmap = use_mmap;
+ domain->mmap_size = size;
+ domain->must_swap = data->magic != _MAGIC;
+ domain->malloced = NULL;
+
+ /* Fill in the information about the available tables. */
+ revision = W (domain->must_swap, data->revision);
+ /* We support only the major revisions 0 and 1. */
+ switch (revision >> 16)
+ {
+ case 0:
+ case 1:
+ domain->nstrings = W (domain->must_swap, data->nstrings);
+ domain->orig_tab = (const struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->orig_tab_offset));
+ domain->trans_tab = (const struct string_desc *)
+ ((char *) data + W (domain->must_swap, data->trans_tab_offset));
+ domain->hash_size = W (domain->must_swap, data->hash_tab_size);
+ domain->hash_tab =
+ (domain->hash_size > 2
+ ? (const nls_uint32 *)
+ ((char *) data + W (domain->must_swap, data->hash_tab_offset))
+ : NULL);
+ domain->must_swap_hash_tab = domain->must_swap;
+
+ /* Now dispatch on the minor revision. */
+ switch (revision & 0xffff)
+ {
+ case 0:
+ domain->n_sysdep_strings = 0;
+ domain->orig_sysdep_tab = NULL;
+ domain->trans_sysdep_tab = NULL;
+ break;
+ case 1:
+ default:
+ {
+ nls_uint32 n_sysdep_strings;
+
+ if (domain->hash_tab == NULL)
+ /* This is invalid. These minor revisions need a hash table. */
+ goto invalid;
+
+ n_sysdep_strings =
+ W (domain->must_swap, data->n_sysdep_strings);
+ if (n_sysdep_strings > 0)
+ {
+ nls_uint32 n_sysdep_segments;
+ const struct sysdep_segment *sysdep_segments;
+ const char **sysdep_segment_values;
+ const nls_uint32 *orig_sysdep_tab;
+ const nls_uint32 *trans_sysdep_tab;
+ nls_uint32 n_inmem_sysdep_strings;
+ size_t memneed;
+ char *mem;
+ struct sysdep_string_desc *inmem_orig_sysdep_tab;
+ struct sysdep_string_desc *inmem_trans_sysdep_tab;
+ nls_uint32 *inmem_hash_tab;
+ unsigned int i, j;
+
+ /* Get the values of the system dependent segments. */
+ n_sysdep_segments =
+ W (domain->must_swap, data->n_sysdep_segments);
+ sysdep_segments = (const struct sysdep_segment *)
+ ((char *) data
+ + W (domain->must_swap, data->sysdep_segments_offset));
+ sysdep_segment_values =
+ (const char **)
+ alloca (n_sysdep_segments * sizeof (const char *));
+ for (i = 0; i < n_sysdep_segments; i++)
+ {
+ const char *name =
+ (char *) data
+ + W (domain->must_swap, sysdep_segments[i].offset);
+ nls_uint32 namelen =
+ W (domain->must_swap, sysdep_segments[i].length);
+
+ if (!(namelen > 0 && name[namelen - 1] == '\0'))
+ {
+ freea (sysdep_segment_values);
+ goto invalid;
+ }
+
+ sysdep_segment_values[i] = get_sysdep_segment_value (name);
+ }
+
+ orig_sysdep_tab = (const nls_uint32 *)
+ ((char *) data
+ + W (domain->must_swap, data->orig_sysdep_tab_offset));
+ trans_sysdep_tab = (const nls_uint32 *)
+ ((char *) data
+ + W (domain->must_swap, data->trans_sysdep_tab_offset));
+
+ /* Compute the amount of additional memory needed for the
+ system dependent strings and the augmented hash table.
+ At the same time, also drop string pairs which refer to
+ an undefined system dependent segment. */
+ n_inmem_sysdep_strings = 0;
+ memneed = domain->hash_size * sizeof (nls_uint32);
+ for (i = 0; i < n_sysdep_strings; i++)
+ {
+ int valid = 1;
+ size_t needs[2];
+
+ for (j = 0; j < 2; j++)
+ {
+ const struct sysdep_string *sysdep_string =
+ (const struct sysdep_string *)
+ ((char *) data
+ + W (domain->must_swap,
+ j == 0
+ ? orig_sysdep_tab[i]
+ : trans_sysdep_tab[i]));
+ size_t need = 0;
+ const struct segment_pair *p = sysdep_string->segments;
+
+ if (W (domain->must_swap, p->sysdepref) != SEGMENTS_END)
+ for (p = sysdep_string->segments;; p++)
+ {
+ nls_uint32 sysdepref;
+
+ need += W (domain->must_swap, p->segsize);
+
+ sysdepref = W (domain->must_swap, p->sysdepref);
+ if (sysdepref == SEGMENTS_END)
+ break;
+
+ if (sysdepref >= n_sysdep_segments)
+ {
+ /* Invalid. */
+ freea (sysdep_segment_values);
+ goto invalid;
+ }
+
+ if (sysdep_segment_values[sysdepref] == NULL)
+ {
+ /* This particular string pair is invalid. */
+ valid = 0;
+ break;
+ }
+
+ need += strlen (sysdep_segment_values[sysdepref]);
+ }
+
+ needs[j] = need;
+ if (!valid)
+ break;
+ }
+
+ if (valid)
+ {
+ n_inmem_sysdep_strings++;
+ memneed += needs[0] + needs[1];
+ }
+ }
+ memneed += 2 * n_inmem_sysdep_strings
+ * sizeof (struct sysdep_string_desc);
+
+ if (n_inmem_sysdep_strings > 0)
+ {
+ unsigned int k;
+
+ /* Allocate additional memory. */
+ mem = (char *) malloc (memneed);
+ if (mem == NULL)
+ goto invalid;
+
+ domain->malloced = mem;
+ inmem_orig_sysdep_tab = (struct sysdep_string_desc *) mem;
+ mem += n_inmem_sysdep_strings
+ * sizeof (struct sysdep_string_desc);
+ inmem_trans_sysdep_tab = (struct sysdep_string_desc *) mem;
+ mem += n_inmem_sysdep_strings
+ * sizeof (struct sysdep_string_desc);
+ inmem_hash_tab = (nls_uint32 *) mem;
+ mem += domain->hash_size * sizeof (nls_uint32);
+
+ /* Compute the system dependent strings. */
+ k = 0;
+ for (i = 0; i < n_sysdep_strings; i++)
+ {
+ int valid = 1;
+
+ for (j = 0; j < 2; j++)
+ {
+ const struct sysdep_string *sysdep_string =
+ (const struct sysdep_string *)
+ ((char *) data
+ + W (domain->must_swap,
+ j == 0
+ ? orig_sysdep_tab[i]
+ : trans_sysdep_tab[i]));
+ const struct segment_pair *p =
+ sysdep_string->segments;
+
+ if (W (domain->must_swap, p->sysdepref)
+ != SEGMENTS_END)
+ for (p = sysdep_string->segments;; p++)
+ {
+ nls_uint32 sysdepref;
+
+ sysdepref =
+ W (domain->must_swap, p->sysdepref);
+ if (sysdepref == SEGMENTS_END)
+ break;
+
+ if (sysdep_segment_values[sysdepref] == NULL)
+ {
+ /* This particular string pair is
+ invalid. */
+ valid = 0;
+ break;
+ }
+ }
+
+ if (!valid)
+ break;
+ }
+
+ if (valid)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ const struct sysdep_string *sysdep_string =
+ (const struct sysdep_string *)
+ ((char *) data
+ + W (domain->must_swap,
+ j == 0
+ ? orig_sysdep_tab[i]
+ : trans_sysdep_tab[i]));
+ const char *static_segments =
+ (char *) data
+ + W (domain->must_swap, sysdep_string->offset);
+ const struct segment_pair *p =
+ sysdep_string->segments;
+
+ /* Concatenate the segments, and fill
+ inmem_orig_sysdep_tab[k] (for j == 0) and
+ inmem_trans_sysdep_tab[k] (for j == 1). */
+
+ struct sysdep_string_desc *inmem_tab_entry =
+ (j == 0
+ ? inmem_orig_sysdep_tab
+ : inmem_trans_sysdep_tab)
+ + k;
+
+ if (W (domain->must_swap, p->sysdepref)
+ == SEGMENTS_END)
+ {
+ /* Only one static segment. */
+ inmem_tab_entry->length =
+ W (domain->must_swap, p->segsize);
+ inmem_tab_entry->pointer = static_segments;
+ }
+ else
+ {
+ inmem_tab_entry->pointer = mem;
+
+ for (p = sysdep_string->segments;; p++)
+ {
+ nls_uint32 segsize =
+ W (domain->must_swap, p->segsize);
+ nls_uint32 sysdepref =
+ W (domain->must_swap, p->sysdepref);
+ size_t n;
+
+ if (segsize > 0)
+ {
+ memcpy (mem, static_segments, segsize);
+ mem += segsize;
+ static_segments += segsize;
+ }
+
+ if (sysdepref == SEGMENTS_END)
+ break;
+
+ n = strlen (sysdep_segment_values[sysdepref]);
+ memcpy (mem, sysdep_segment_values[sysdepref], n);
+ mem += n;
+ }
+
+ inmem_tab_entry->length =
+ mem - inmem_tab_entry->pointer;
+ }
+ }
+
+ k++;
+ }
+ }
+ if (k != n_inmem_sysdep_strings)
+ abort ();
+
+ /* Compute the augmented hash table. */
+ for (i = 0; i < domain->hash_size; i++)
+ inmem_hash_tab[i] =
+ W (domain->must_swap_hash_tab, domain->hash_tab[i]);
+ for (i = 0; i < n_inmem_sysdep_strings; i++)
+ {
+ const char *msgid = inmem_orig_sysdep_tab[i].pointer;
+ nls_uint32 hash_val = __hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr =
+ 1 + (hash_val % (domain->hash_size - 2));
+
+ for (;;)
+ {
+ if (inmem_hash_tab[idx] == 0)
+ {
+ /* Hash table entry is empty. Use it. */
+ inmem_hash_tab[idx] = 1 + domain->nstrings + i;
+ break;
+ }
+
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+ }
+ }
+
+ domain->n_sysdep_strings = n_inmem_sysdep_strings;
+ domain->orig_sysdep_tab = inmem_orig_sysdep_tab;
+ domain->trans_sysdep_tab = inmem_trans_sysdep_tab;
+
+ domain->hash_tab = inmem_hash_tab;
+ domain->must_swap_hash_tab = 0;
+ }
+ else
+ {
+ domain->n_sysdep_strings = 0;
+ domain->orig_sysdep_tab = NULL;
+ domain->trans_sysdep_tab = NULL;
+ }
+
+ freea (sysdep_segment_values);
+ }
+ else
+ {
+ domain->n_sysdep_strings = 0;
+ domain->orig_sysdep_tab = NULL;
+ domain->trans_sysdep_tab = NULL;
+ }
+ }
+ break;
+ }
+ break;
+ default:
+ /* This is an invalid revision. */
+ invalid:
+ /* This is an invalid .mo file. */
+ if (domain->malloced)
+ free (domain->malloced);
+#ifdef HAVE_MMAP
+ if (use_mmap)
+ munmap ((caddr_t) data, size);
+ else
+#endif
+ free (data);
+ free (domain);
+ domain_file->data = NULL;
+ goto out;
+ }
+
+ /* No caches of converted translations so far. */
+ domain->conversions = NULL;
+ domain->nconversions = 0;
+ gl_rwlock_init (domain->conversions_lock);
+
+ /* Get the header entry and look for a plural specification. */
+#ifdef IN_LIBGLOCALE
+ nullentry =
+ _nl_find_msg (domain_file, domainbinding, NULL, "", &nullentrylen);
+#else
+ nullentry = _nl_find_msg (domain_file, domainbinding, "", 0, &nullentrylen);
+#endif
+ EXTRACT_PLURAL_EXPRESSION (nullentry, &domain->plural, &domain->nplurals);
+
+ out:
+ if (fd != -1)
+ close (fd);
+
+ domain_file->decided = 1;
+
+ done:
+ __libc_lock_unlock_recursive (lock);
+}
+
+
+#ifdef _LIBC
+void
+internal_function __libc_freeres_fn_section
+_nl_unload_domain (struct loaded_domain *domain)
+{
+ size_t i;
+
+ if (domain->plural != &__gettext_germanic_plural)
+ __gettext_free_exp ((struct expression *) domain->plural);
+
+ for (i = 0; i < domain->nconversions; i++)
+ {
+ struct converted_domain *convd = &domain->conversions[i];
+
+ free (convd->encoding);
+ if (convd->conv_tab != NULL && convd->conv_tab != (char **) -1)
+ free (convd->conv_tab);
+ if (convd->conv != (__gconv_t) -1)
+ __gconv_close (convd->conv);
+ }
+ if (domain->conversions != NULL)
+ free (domain->conversions);
+ __libc_rwlock_fini (domain->conversions_lock);
+
+ if (domain->malloced)
+ free (domain->malloced);
+
+# ifdef _POSIX_MAPPED_FILES
+ if (domain->use_mmap)
+ munmap ((caddr_t) domain->data, domain->mmap_size);
+ else
+# endif /* _POSIX_MAPPED_FILES */
+ free ((void *) domain->data);
+
+ free (domain);
+}
+#endif
diff --git a/intl/localcharset.c b/intl/localcharset.c
new file mode 100644
index 0000000..e796ae7
--- /dev/null
+++ b/intl/localcharset.c
@@ -0,0 +1,461 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+ Copyright (C) 2000-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Bruno Haible <bruno at clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "localcharset.h"
+
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#if defined __EMX__
+/* Assume EMX program runs on OS/2, even if compiled under DOS. */
+# define OS2
+#endif
+
+#if !defined WIN32_NATIVE
+# if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+# else
+# if 0 /* see comment below */
+# include <locale.h>
+# endif
+# endif
+# ifdef __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+# endif
+#elif defined WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+#if defined OS2
+# define INCL_DOS
+# include <os2.h>
+#endif
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* Get LIBDIR. */
+#ifndef LIBDIR
+# include "configmake.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+#if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc getc_unlocked
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+ possible multithread problem in the function get_charset_aliases. If we
+ are running in a threaded environment, and if two threads initialize
+ 'charset_aliases' simultaneously, both will produce the same value,
+ and everything will be ok if the two assignments to 'charset_aliases'
+ are atomic. But I don't know what will happen if the two assignments mix. */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+ read, else NULL. Its format is:
+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file. */
+static const char *
+get_charset_aliases (void)
+{
+ const char *cp;
+
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+ FILE *fp;
+ const char *dir;
+ const char *base = "charset.alias";
+ char *file_name;
+
+ /* Make it possible to override the charset.alias location. This is
+ necessary for running the testsuite before "make install". */
+ dir = getenv ("CHARSETALIASDIR");
+ if (dir == NULL || dir[0] == '\0')
+ dir = relocate (LIBDIR);
+
+ /* Concatenate dir and base into freshly allocated file_name. */
+ {
+ size_t dir_len = strlen (dir);
+ size_t base_len = strlen (base);
+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+ if (file_name != NULL)
+ {
+ memcpy (file_name, dir, dir_len);
+ if (add_slash)
+ file_name[dir_len] = DIRECTORY_SEPARATOR;
+ memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+ }
+ }
+
+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+ /* Out of memory or file not found, treat it as empty. */
+ cp = "";
+ else
+ {
+ /* Parse the file's contents. */
+ char *res_ptr = NULL;
+ size_t res_size = 0;
+
+ for (;;)
+ {
+ int c;
+ char buf1[50+1];
+ char buf2[50+1];
+ size_t l1, l2;
+ char *old_res_ptr;
+
+ c = getc (fp);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#')
+ {
+ /* Skip comment, to end of line. */
+ do
+ c = getc (fp);
+ while (!(c == EOF || c == '\n'));
+ if (c == EOF)
+ break;
+ continue;
+ }
+ ungetc (c, fp);
+ if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+ break;
+ l1 = strlen (buf1);
+ l2 = strlen (buf2);
+ old_res_ptr = res_ptr;
+ if (res_size == 0)
+ {
+ res_size = l1 + 1 + l2 + 1;
+ res_ptr = (char *) malloc (res_size + 1);
+ }
+ else
+ {
+ res_size += l1 + 1 + l2 + 1;
+ res_ptr = (char *) realloc (res_ptr, res_size + 1);
+ }
+ if (res_ptr == NULL)
+ {
+ /* Out of memory. */
+ res_size = 0;
+ if (old_res_ptr != NULL)
+ free (old_res_ptr);
+ break;
+ }
+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+ strcpy (res_ptr + res_size - (l2 + 1), buf2);
+ }
+ fclose (fp);
+ if (res_size == 0)
+ cp = "";
+ else
+ {
+ *(res_ptr + res_size) = '\0';
+ cp = res_ptr;
+ }
+ }
+
+ if (file_name != NULL)
+ free (file_name);
+
+#else
+
+# if defined VMS
+ /* To avoid the troubles of an extra file charset.alias_vms in the
+ sources of many GNU packages, simply inline the aliases here. */
+ /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+ "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+ section 10.7 "Handling Different Character Sets". */
+ cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+ "ISO8859-2" "\0" "ISO-8859-2" "\0"
+ "ISO8859-5" "\0" "ISO-8859-5" "\0"
+ "ISO8859-7" "\0" "ISO-8859-7" "\0"
+ "ISO8859-8" "\0" "ISO-8859-8" "\0"
+ "ISO8859-9" "\0" "ISO-8859-9" "\0"
+ /* Japanese */
+ "eucJP" "\0" "EUC-JP" "\0"
+ "SJIS" "\0" "SHIFT_JIS" "\0"
+ "DECKANJI" "\0" "DEC-KANJI" "\0"
+ "SDECKANJI" "\0" "EUC-JP" "\0"
+ /* Chinese */
+ "eucTW" "\0" "EUC-TW" "\0"
+ "DECHANYU" "\0" "DEC-HANYU" "\0"
+ "DECHANZI" "\0" "GB2312" "\0"
+ /* Korean */
+ "DECKOREAN" "\0" "EUC-KR" "\0";
+# endif
+
+# if defined WIN32_NATIVE || defined __CYGWIN__
+ /* To avoid the troubles of installing a separate file in the same
+ directory as the DLL and of retrieving the DLL's directory at
+ runtime, simply inline the aliases here. */
+
+ cp = "CP936" "\0" "GBK" "\0"
+ "CP1361" "\0" "JOHAB" "\0"
+ "CP20127" "\0" "ASCII" "\0"
+ "CP20866" "\0" "KOI8-R" "\0"
+ "CP20936" "\0" "GB2312" "\0"
+ "CP21866" "\0" "KOI8-RU" "\0"
+ "CP28591" "\0" "ISO-8859-1" "\0"
+ "CP28592" "\0" "ISO-8859-2" "\0"
+ "CP28593" "\0" "ISO-8859-3" "\0"
+ "CP28594" "\0" "ISO-8859-4" "\0"
+ "CP28595" "\0" "ISO-8859-5" "\0"
+ "CP28596" "\0" "ISO-8859-6" "\0"
+ "CP28597" "\0" "ISO-8859-7" "\0"
+ "CP28598" "\0" "ISO-8859-8" "\0"
+ "CP28599" "\0" "ISO-8859-9" "\0"
+ "CP28605" "\0" "ISO-8859-15" "\0"
+ "CP38598" "\0" "ISO-8859-8" "\0"
+ "CP51932" "\0" "EUC-JP" "\0"
+ "CP51936" "\0" "GB2312" "\0"
+ "CP51949" "\0" "EUC-KR" "\0"
+ "CP51950" "\0" "EUC-TW" "\0"
+ "CP54936" "\0" "GB18030" "\0"
+ "CP65001" "\0" "UTF-8" "\0";
+# endif
+#endif
+
+ charset_aliases = cp;
+ }
+
+ return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset (void)
+{
+ const char *codeset;
+ const char *aliases;
+
+#if !(defined WIN32_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# ifdef __CYGWIN__
+ /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always
+ returns "US-ASCII". As long as this is not fixed, return the suffix
+ of the locale name from the environment variables (if present) or
+ the codepage as a number. */
+ if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+ {
+ const char *locale;
+ static char buf[2 + 10 + 1];
+
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ if (locale != NULL && locale[0] != '\0')
+ {
+ /* If the locale name contains an encoding after the dot, return
+ it. */
+ const char *dot = strchr (locale, '.');
+
+ if (dot != NULL)
+ {
+ const char *modifier;
+
+ dot++;
+ /* Look for the possible @... trailer and remove it, if any. */
+ modifier = strchr (dot, '@');
+ if (modifier == NULL)
+ return dot;
+ if (modifier - dot < sizeof (buf))
+ {
+ memcpy (buf, dot, modifier - dot);
+ buf [modifier - dot] = '\0';
+ return buf;
+ }
+ }
+ }
+
+ /* Woe32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+ }
+# endif
+
+# else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+ const char *locale = NULL;
+
+ /* But most old systems don't have a complete set of locales. Some
+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
+ use setlocale here; it would return "C" when it doesn't support the
+ locale name the user has set. */
+# if 0
+ locale = setlocale (LC_CTYPE, NULL);
+# endif
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ }
+
+ /* On some old systems, one used to set locale = "iso8859_1". On others,
+ you set it to "language_COUNTRY.charset". In any case, we resolve it
+ through the charset.alias file. */
+ codeset = locale;
+
+# endif
+
+#elif defined WIN32_NATIVE
+
+ static char buf[2 + 10 + 1];
+
+ /* Woe32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+
+#elif defined OS2
+
+ const char *locale;
+ static char buf[2 + 10 + 1];
+ ULONG cp[3];
+ ULONG cplen;
+
+ /* Allow user to override the codeset, as set in the operating system,
+ with standard language environment variables. */
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ if (locale != NULL && locale[0] != '\0')
+ {
+ /* If the locale name contains an encoding after the dot, return it. */
+ const char *dot = strchr (locale, '.');
+
+ if (dot != NULL)
+ {
+ const char *modifier;
+
+ dot++;
+ /* Look for the possible @... trailer and remove it, if any. */
+ modifier = strchr (dot, '@');
+ if (modifier == NULL)
+ return dot;
+ if (modifier - dot < sizeof (buf))
+ {
+ memcpy (buf, dot, modifier - dot);
+ buf [modifier - dot] = '\0';
+ return buf;
+ }
+ }
+
+ /* Resolve through the charset.alias file. */
+ codeset = locale;
+ }
+ else
+ {
+ /* OS/2 has a function returning the locale's codepage as a number. */
+ if (DosQueryCp (sizeof (cp), cp, &cplen))
+ codeset = "";
+ else
+ {
+ sprintf (buf, "CP%u", cp[0]);
+ codeset = buf;
+ }
+ }
+
+#endif
+
+ if (codeset == NULL)
+ /* The canonical name cannot be determined. */
+ codeset = "";
+
+ /* Resolve alias. */
+ for (aliases = get_charset_aliases ();
+ *aliases != '\0';
+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+ if (strcmp (codeset, aliases) == 0
+ || (aliases[0] == '*' && aliases[1] == '\0'))
+ {
+ codeset = aliases + strlen (aliases) + 1;
+ break;
+ }
+
+ /* Don't return an empty string. GNU libc and GNU libiconv interpret
+ the empty string as denoting "the locale's character encoding",
+ thus GNU libiconv would call this function a second time. */
+ if (codeset[0] == '\0')
+ codeset = "ASCII";
+
+ return codeset;
+}
diff --git a/intl/localcharset.h b/intl/localcharset.h
new file mode 100644
index 0000000..129e4a4
--- /dev/null
+++ b/intl/localcharset.h
@@ -0,0 +1,42 @@
+/* Determine a canonical name for the current locale's character encoding.
+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
+ This file is part of the GNU CHARSET Library.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/intl/locale.alias b/intl/locale.alias
new file mode 100644
index 0000000..1044a40
--- /dev/null
+++ b/intl/locale.alias
@@ -0,0 +1,77 @@
+# Locale name alias data base.
+# Copyright (C) 1996-2001,2003,2007 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+
+# The format of this file is the same as for the corresponding file of
+# the X Window System, which normally can be found in
+# /usr/lib/X11/locale/locale.alias
+# A single line contains two fields: an alias and a substitution value.
+# All entries are case independent.
+
+# Note: This file is obsolete and is kept around for the time being for
+# backward compatibility. Nobody should rely on the names defined here.
+# Locales should always be specified by their full name.
+
+# Packages using this file:
+
+bokmal nb_NO.ISO-8859-1
+bokmål nb_NO.ISO-8859-1
+catalan ca_ES.ISO-8859-1
+croatian hr_HR.ISO-8859-2
+czech cs_CZ.ISO-8859-2
+danish da_DK.ISO-8859-1
+dansk da_DK.ISO-8859-1
+deutsch de_DE.ISO-8859-1
+dutch nl_NL.ISO-8859-1
+eesti et_EE.ISO-8859-1
+estonian et_EE.ISO-8859-1
+finnish fi_FI.ISO-8859-1
+français fr_FR.ISO-8859-1
+french fr_FR.ISO-8859-1
+galego gl_ES.ISO-8859-1
+galician gl_ES.ISO-8859-1
+german de_DE.ISO-8859-1
+greek el_GR.ISO-8859-7
+hebrew he_IL.ISO-8859-8
+hrvatski hr_HR.ISO-8859-2
+hungarian hu_HU.ISO-8859-2
+icelandic is_IS.ISO-8859-1
+italian it_IT.ISO-8859-1
+japanese ja_JP.eucJP
+japanese.euc ja_JP.eucJP
+ja_JP ja_JP.eucJP
+ja_JP.ujis ja_JP.eucJP
+japanese.sjis ja_JP.SJIS
+korean ko_KR.eucKR
+korean.euc ko_KR.eucKR
+ko_KR ko_KR.eucKR
+lithuanian lt_LT.ISO-8859-13
+no_NO nb_NO.ISO-8859-1
+no_NO.ISO-8859-1 nb_NO.ISO-8859-1
+norwegian nb_NO.ISO-8859-1
+nynorsk nn_NO.ISO-8859-1
+polish pl_PL.ISO-8859-2
+portuguese pt_PT.ISO-8859-1
+romanian ro_RO.ISO-8859-2
+russian ru_RU.ISO-8859-5
+slovak sk_SK.ISO-8859-2
+slovene sl_SI.ISO-8859-2
+slovenian sl_SI.ISO-8859-2
+spanish es_ES.ISO-8859-1
+swedish sv_SE.ISO-8859-1
+thai th_TH.TIS-620
+turkish tr_TR.ISO-8859-9
diff --git a/intl/localealias.c b/intl/localealias.c
new file mode 100644
index 0000000..910db53
--- /dev/null
+++ b/intl/localealias.c
@@ -0,0 +1,439 @@
+/* Handle aliases for locale names.
+ Copyright (C) 1995-1999, 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdio.h>
+#if defined _LIBC || defined HAVE___FSETLOCKING
+# include <stdio_ext.h>
+#endif
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# undef alloca
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "gettextP.h"
+
+#if ENABLE_RELOCATABLE
+# include "relocatable.h"
+#else
+# define relocate(pathname) (pathname)
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define strcasecmp __strcasecmp
+
+# ifndef mempcpy
+# define mempcpy __mempcpy
+# endif
+# define HAVE_MEMPCPY 1
+# define HAVE___FSETLOCKING 1
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+# include "lock.h"
+#endif
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* Some optimizations for glibc. */
+#ifdef _LIBC
+# define FEOF(fp) feof_unlocked (fp)
+# define FGETS(buf, n, fp) fgets_unlocked (buf, n, fp)
+#else
+# define FEOF(fp) feof (fp)
+# define FGETS(buf, n, fp) fgets (buf, n, fp)
+#endif
+
+/* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+# define freea(p) /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+#if defined _LIBC_REENTRANT || HAVE_DECL_FGETS_UNLOCKED
+# undef fgets
+# define fgets(buf, len, s) fgets_unlocked (buf, len, s)
+#endif
+#if defined _LIBC_REENTRANT || HAVE_DECL_FEOF_UNLOCKED
+# undef feof
+# define feof(s) feof_unlocked (s)
+#endif
+
+
+__libc_lock_define_initialized (static, lock)
+
+
+struct alias_map
+{
+ const char *alias;
+ const char *value;
+};
+
+
+#ifndef _LIBC
+# define libc_freeres_ptr(decl) decl
+#endif
+
+libc_freeres_ptr (static char *string_space);
+static size_t string_space_act;
+static size_t string_space_max;
+libc_freeres_ptr (static struct alias_map *map);
+static size_t nmap;
+static size_t maxmap;
+
+
+/* Prototypes for local functions. */
+static size_t read_alias_file (const char *fname, int fname_len)
+ internal_function;
+static int extend_alias_table (void);
+static int alias_compare (const struct alias_map *map1,
+ const struct alias_map *map2);
+
+
+const char *
+_nl_expand_alias (const char *name)
+{
+ static const char *locale_alias_path;
+ struct alias_map *retval;
+ const char *result = NULL;
+ size_t added;
+
+ __libc_lock_lock (lock);
+
+ if (locale_alias_path == NULL)
+ locale_alias_path = LOCALE_ALIAS_PATH;
+
+ do
+ {
+ struct alias_map item;
+
+ item.alias = name;
+
+ if (nmap > 0)
+ retval = (struct alias_map *) bsearch (&item, map, nmap,
+ sizeof (struct alias_map),
+ (int (*) (const void *,
+ const void *)
+ ) alias_compare);
+ else
+ retval = NULL;
+
+ /* We really found an alias. Return the value. */
+ if (retval != NULL)
+ {
+ result = retval->value;
+ break;
+ }
+
+ /* Perhaps we can find another alias file. */
+ added = 0;
+ while (added == 0 && locale_alias_path[0] != '\0')
+ {
+ const char *start;
+
+ while (locale_alias_path[0] == PATH_SEPARATOR)
+ ++locale_alias_path;
+ start = locale_alias_path;
+
+ while (locale_alias_path[0] != '\0'
+ && locale_alias_path[0] != PATH_SEPARATOR)
+ ++locale_alias_path;
+
+ if (start < locale_alias_path)
+ added = read_alias_file (start, locale_alias_path - start);
+ }
+ }
+ while (added != 0);
+
+ __libc_lock_unlock (lock);
+
+ return result;
+}
+
+
+static size_t
+internal_function
+read_alias_file (const char *fname, int fname_len)
+{
+ FILE *fp;
+ char *full_fname;
+ size_t added;
+ static const char aliasfile[] = "/locale.alias";
+
+ full_fname = (char *) alloca (fname_len + sizeof aliasfile);
+#ifdef HAVE_MEMPCPY
+ mempcpy (mempcpy (full_fname, fname, fname_len),
+ aliasfile, sizeof aliasfile);
+#else
+ memcpy (full_fname, fname, fname_len);
+ memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
+#endif
+
+#ifdef _LIBC
+ /* Note the file is opened with cancellation in the I/O functions
+ disabled. */
+ fp = fopen (relocate (full_fname), "rc");
+#else
+ fp = fopen (relocate (full_fname), "r");
+#endif
+ freea (full_fname);
+ if (fp == NULL)
+ return 0;
+
+#ifdef HAVE___FSETLOCKING
+ /* No threads present. */
+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
+#endif
+
+ added = 0;
+ while (!FEOF (fp))
+ {
+ /* It is a reasonable approach to use a fix buffer here because
+ a) we are only interested in the first two fields
+ b) these fields must be usable as file names and so must not
+ be that long
+ We avoid a multi-kilobyte buffer here since this would use up
+ stack space which we might not have if the program ran out of
+ memory. */
+ char buf[400];
+ char *alias;
+ char *value;
+ char *cp;
+ int complete_line;
+
+ if (FGETS (buf, sizeof buf, fp) == NULL)
+ /* EOF reached. */
+ break;
+
+ /* Determine whether the line is complete. */
+ complete_line = strchr (buf, '\n') != NULL;
+
+ cp = buf;
+ /* Ignore leading white space. */
+ while (isspace ((unsigned char) cp[0]))
+ ++cp;
+
+ /* A leading '#' signals a comment line. */
+ if (cp[0] != '\0' && cp[0] != '#')
+ {
+ alias = cp++;
+ while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
+ ++cp;
+ /* Terminate alias name. */
+ if (cp[0] != '\0')
+ *cp++ = '\0';
+
+ /* Now look for the beginning of the value. */
+ while (isspace ((unsigned char) cp[0]))
+ ++cp;
+
+ if (cp[0] != '\0')
+ {
+ value = cp++;
+ while (cp[0] != '\0' && !isspace ((unsigned char) cp[0]))
+ ++cp;
+ /* Terminate value. */
+ if (cp[0] == '\n')
+ {
+ /* This has to be done to make the following test
+ for the end of line possible. We are looking for
+ the terminating '\n' which do not overwrite here. */
+ *cp++ = '\0';
+ *cp = '\n';
+ }
+ else if (cp[0] != '\0')
+ *cp++ = '\0';
+
+#ifdef IN_LIBGLOCALE
+ /* glibc's locale.alias contains entries for ja_JP and ko_KR
+ that make it impossible to use a Japanese or Korean UTF-8
+ locale under the name "ja_JP" or "ko_KR". Ignore these
+ entries. */
+ if (strchr (alias, '_') == NULL)
+#endif
+ {
+ size_t alias_len;
+ size_t value_len;
+
+ if (nmap >= maxmap)
+ if (__builtin_expect (extend_alias_table (), 0))
+ goto out;
+
+ alias_len = strlen (alias) + 1;
+ value_len = strlen (value) + 1;
+
+ if (string_space_act + alias_len + value_len > string_space_max)
+ {
+ /* Increase size of memory pool. */
+ size_t new_size = (string_space_max
+ + (alias_len + value_len > 1024
+ ? alias_len + value_len : 1024));
+ char *new_pool = (char *) realloc (string_space, new_size);
+ if (new_pool == NULL)
+ goto out;
+
+ if (__builtin_expect (string_space != new_pool, 0))
+ {
+ size_t i;
+
+ for (i = 0; i < nmap; i++)
+ {
+ map[i].alias += new_pool - string_space;
+ map[i].value += new_pool - string_space;
+ }
+ }
+
+ string_space = new_pool;
+ string_space_max = new_size;
+ }
+
+ map[nmap].alias =
+ (const char *) memcpy (&string_space[string_space_act],
+ alias, alias_len);
+ string_space_act += alias_len;
+
+ map[nmap].value =
+ (const char *) memcpy (&string_space[string_space_act],
+ value, value_len);
+ string_space_act += value_len;
+
+ ++nmap;
+ ++added;
+ }
+ }
+ }
+
+ /* Possibly not the whole line fits into the buffer. Ignore
+ the rest of the line. */
+ if (! complete_line)
+ do
+ if (FGETS (buf, sizeof buf, fp) == NULL)
+ /* Make sure the inner loop will be left. The outer loop
+ will exit at the `feof' test. */
+ break;
+ while (strchr (buf, '\n') == NULL);
+ }
+
+ out:
+ /* Should we test for ferror()? I think we have to silently ignore
+ errors. --drepper */
+ fclose (fp);
+
+ if (added > 0)
+ qsort (map, nmap, sizeof (struct alias_map),
+ (int (*) (const void *, const void *)) alias_compare);
+
+ return added;
+}
+
+
+static int
+extend_alias_table ()
+{
+ size_t new_size;
+ struct alias_map *new_map;
+
+ new_size = maxmap == 0 ? 100 : 2 * maxmap;
+ new_map = (struct alias_map *) realloc (map, (new_size
+ * sizeof (struct alias_map)));
+ if (new_map == NULL)
+ /* Simply don't extend: we don't have any more core. */
+ return -1;
+
+ map = new_map;
+ maxmap = new_size;
+ return 0;
+}
+
+
+static int
+alias_compare (const struct alias_map *map1, const struct alias_map *map2)
+{
+#if defined _LIBC || defined HAVE_STRCASECMP
+ return strcasecmp (map1->alias, map2->alias);
+#else
+ const unsigned char *p1 = (const unsigned char *) map1->alias;
+ const unsigned char *p2 = (const unsigned char *) map2->alias;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ /* I know this seems to be odd but the tolower() function in
+ some systems libc cannot handle nonalpha characters. */
+ c1 = isupper (*p1) ? tolower (*p1) : *p1;
+ c2 = isupper (*p2) ? tolower (*p2) : *p2;
+ if (c1 == '\0')
+ break;
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ return c1 - c2;
+#endif
+}
diff --git a/intl/localename.c b/intl/localename.c
new file mode 100644
index 0000000..af4c229
--- /dev/null
+++ b/intl/localename.c
@@ -0,0 +1,1507 @@
+/* Determine name of the currently selected locale.
+ Copyright (C) 1995-1999, 2000-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Ulrich Drepper <drepper at gnu.org>, 1995. */
+/* Win32 code written by Tor Lillqvist <tml at iki.fi>. */
+/* MacOS X code written by Bruno Haible <bruno at clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#ifdef IN_LIBINTL
+# include "gettextP.h"
+#else
+# include "localename.h"
+#endif
+
+#include <stdlib.h>
+#include <locale.h>
+
+#if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <string.h>
+# include <CoreFoundation/CFString.h>
+# if HAVE_CFLOCALECOPYCURRENT
+# include <CoreFoundation/CFLocale.h>
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <CoreFoundation/CFPreferences.h>
+# endif
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#ifdef WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* List of language codes, sorted by value:
+ 0x01 LANG_ARABIC
+ 0x02 LANG_BULGARIAN
+ 0x03 LANG_CATALAN
+ 0x04 LANG_CHINESE
+ 0x05 LANG_CZECH
+ 0x06 LANG_DANISH
+ 0x07 LANG_GERMAN
+ 0x08 LANG_GREEK
+ 0x09 LANG_ENGLISH
+ 0x0a LANG_SPANISH
+ 0x0b LANG_FINNISH
+ 0x0c LANG_FRENCH
+ 0x0d LANG_HEBREW
+ 0x0e LANG_HUNGARIAN
+ 0x0f LANG_ICELANDIC
+ 0x10 LANG_ITALIAN
+ 0x11 LANG_JAPANESE
+ 0x12 LANG_KOREAN
+ 0x13 LANG_DUTCH
+ 0x14 LANG_NORWEGIAN
+ 0x15 LANG_POLISH
+ 0x16 LANG_PORTUGUESE
+ 0x17 LANG_RHAETO_ROMANCE
+ 0x18 LANG_ROMANIAN
+ 0x19 LANG_RUSSIAN
+ 0x1a LANG_CROATIAN == LANG_SERBIAN
+ 0x1b LANG_SLOVAK
+ 0x1c LANG_ALBANIAN
+ 0x1d LANG_SWEDISH
+ 0x1e LANG_THAI
+ 0x1f LANG_TURKISH
+ 0x20 LANG_URDU
+ 0x21 LANG_INDONESIAN
+ 0x22 LANG_UKRAINIAN
+ 0x23 LANG_BELARUSIAN
+ 0x24 LANG_SLOVENIAN
+ 0x25 LANG_ESTONIAN
+ 0x26 LANG_LATVIAN
+ 0x27 LANG_LITHUANIAN
+ 0x28 LANG_TAJIK
+ 0x29 LANG_FARSI
+ 0x2a LANG_VIETNAMESE
+ 0x2b LANG_ARMENIAN
+ 0x2c LANG_AZERI
+ 0x2d LANG_BASQUE
+ 0x2e LANG_SORBIAN
+ 0x2f LANG_MACEDONIAN
+ 0x30 LANG_SUTU
+ 0x31 LANG_TSONGA
+ 0x32 LANG_TSWANA
+ 0x33 LANG_VENDA
+ 0x34 LANG_XHOSA
+ 0x35 LANG_ZULU
+ 0x36 LANG_AFRIKAANS
+ 0x37 LANG_GEORGIAN
+ 0x38 LANG_FAEROESE
+ 0x39 LANG_HINDI
+ 0x3a LANG_MALTESE
+ 0x3b LANG_SAAMI
+ 0x3c LANG_GAELIC
+ 0x3d LANG_YIDDISH
+ 0x3e LANG_MALAY
+ 0x3f LANG_KAZAK
+ 0x40 LANG_KYRGYZ
+ 0x41 LANG_SWAHILI
+ 0x42 LANG_TURKMEN
+ 0x43 LANG_UZBEK
+ 0x44 LANG_TATAR
+ 0x45 LANG_BENGALI
+ 0x46 LANG_PUNJABI
+ 0x47 LANG_GUJARATI
+ 0x48 LANG_ORIYA
+ 0x49 LANG_TAMIL
+ 0x4a LANG_TELUGU
+ 0x4b LANG_KANNADA
+ 0x4c LANG_MALAYALAM
+ 0x4d LANG_ASSAMESE
+ 0x4e LANG_MARATHI
+ 0x4f LANG_SANSKRIT
+ 0x50 LANG_MONGOLIAN
+ 0x51 LANG_TIBETAN
+ 0x52 LANG_WELSH
+ 0x53 LANG_CAMBODIAN
+ 0x54 LANG_LAO
+ 0x55 LANG_BURMESE
+ 0x56 LANG_GALICIAN
+ 0x57 LANG_KONKANI
+ 0x58 LANG_MANIPURI
+ 0x59 LANG_SINDHI
+ 0x5a LANG_SYRIAC
+ 0x5b LANG_SINHALESE
+ 0x5c LANG_CHEROKEE
+ 0x5d LANG_INUKTITUT
+ 0x5e LANG_AMHARIC
+ 0x5f LANG_TAMAZIGHT
+ 0x60 LANG_KASHMIRI
+ 0x61 LANG_NEPALI
+ 0x62 LANG_FRISIAN
+ 0x63 LANG_PASHTO
+ 0x64 LANG_TAGALOG
+ 0x65 LANG_DIVEHI
+ 0x66 LANG_EDO
+ 0x67 LANG_FULFULDE
+ 0x68 LANG_HAUSA
+ 0x69 LANG_IBIBIO
+ 0x6a LANG_YORUBA
+ 0x70 LANG_IGBO
+ 0x71 LANG_KANURI
+ 0x72 LANG_OROMO
+ 0x73 LANG_TIGRINYA
+ 0x74 LANG_GUARANI
+ 0x75 LANG_HAWAIIAN
+ 0x76 LANG_LATIN
+ 0x77 LANG_SOMALI
+ 0x78 LANG_YI
+ 0x79 LANG_PAPIAMENTU
+*/
+/* Mingw headers don't have latest language and sublanguage codes. */
+# ifndef LANG_AFRIKAANS
+# define LANG_AFRIKAANS 0x36
+# endif
+# ifndef LANG_ALBANIAN
+# define LANG_ALBANIAN 0x1c
+# endif
+# ifndef LANG_AMHARIC
+# define LANG_AMHARIC 0x5e
+# endif
+# ifndef LANG_ARABIC
+# define LANG_ARABIC 0x01
+# endif
+# ifndef LANG_ARMENIAN
+# define LANG_ARMENIAN 0x2b
+# endif
+# ifndef LANG_ASSAMESE
+# define LANG_ASSAMESE 0x4d
+# endif
+# ifndef LANG_AZERI
+# define LANG_AZERI 0x2c
+# endif
+# ifndef LANG_BASQUE
+# define LANG_BASQUE 0x2d
+# endif
+# ifndef LANG_BELARUSIAN
+# define LANG_BELARUSIAN 0x23
+# endif
+# ifndef LANG_BENGALI
+# define LANG_BENGALI 0x45
+# endif
+# ifndef LANG_BURMESE
+# define LANG_BURMESE 0x55
+# endif
+# ifndef LANG_CAMBODIAN
+# define LANG_CAMBODIAN 0x53
+# endif
+# ifndef LANG_CATALAN
+# define LANG_CATALAN 0x03
+# endif
+# ifndef LANG_CHEROKEE
+# define LANG_CHEROKEE 0x5c
+# endif
+# ifndef LANG_DIVEHI
+# define LANG_DIVEHI 0x65
+# endif
+# ifndef LANG_EDO
+# define LANG_EDO 0x66
+# endif
+# ifndef LANG_ESTONIAN
+# define LANG_ESTONIAN 0x25
+# endif
+# ifndef LANG_FAEROESE
+# define LANG_FAEROESE 0x38
+# endif
+# ifndef LANG_FARSI
+# define LANG_FARSI 0x29
+# endif
+# ifndef LANG_FRISIAN
+# define LANG_FRISIAN 0x62
+# endif
+# ifndef LANG_FULFULDE
+# define LANG_FULFULDE 0x67
+# endif
+# ifndef LANG_GAELIC
+# define LANG_GAELIC 0x3c
+# endif
+# ifndef LANG_GALICIAN
+# define LANG_GALICIAN 0x56
+# endif
+# ifndef LANG_GEORGIAN
+# define LANG_GEORGIAN 0x37
+# endif
+# ifndef LANG_GUARANI
+# define LANG_GUARANI 0x74
+# endif
+# ifndef LANG_GUJARATI
+# define LANG_GUJARATI 0x47
+# endif
+# ifndef LANG_HAUSA
+# define LANG_HAUSA 0x68
+# endif
+# ifndef LANG_HAWAIIAN
+# define LANG_HAWAIIAN 0x75
+# endif
+# ifndef LANG_HEBREW
+# define LANG_HEBREW 0x0d
+# endif
+# ifndef LANG_HINDI
+# define LANG_HINDI 0x39
+# endif
+# ifndef LANG_IBIBIO
+# define LANG_IBIBIO 0x69
+# endif
+# ifndef LANG_IGBO
+# define LANG_IGBO 0x70
+# endif
+# ifndef LANG_INDONESIAN
+# define LANG_INDONESIAN 0x21
+# endif
+# ifndef LANG_INUKTITUT
+# define LANG_INUKTITUT 0x5d
+# endif
+# ifndef LANG_KANNADA
+# define LANG_KANNADA 0x4b
+# endif
+# ifndef LANG_KANURI
+# define LANG_KANURI 0x71
+# endif
+# ifndef LANG_KASHMIRI
+# define LANG_KASHMIRI 0x60
+# endif
+# ifndef LANG_KAZAK
+# define LANG_KAZAK 0x3f
+# endif
+# ifndef LANG_KONKANI
+# define LANG_KONKANI 0x57
+# endif
+# ifndef LANG_KYRGYZ
+# define LANG_KYRGYZ 0x40
+# endif
+# ifndef LANG_LAO
+# define LANG_LAO 0x54
+# endif
+# ifndef LANG_LATIN
+# define LANG_LATIN 0x76
+# endif
+# ifndef LANG_LATVIAN
+# define LANG_LATVIAN 0x26
+# endif
+# ifndef LANG_LITHUANIAN
+# define LANG_LITHUANIAN 0x27
+# endif
+# ifndef LANG_MACEDONIAN
+# define LANG_MACEDONIAN 0x2f
+# endif
+# ifndef LANG_MALAY
+# define LANG_MALAY 0x3e
+# endif
+# ifndef LANG_MALAYALAM
+# define LANG_MALAYALAM 0x4c
+# endif
+# ifndef LANG_MALTESE
+# define LANG_MALTESE 0x3a
+# endif
+# ifndef LANG_MANIPURI
+# define LANG_MANIPURI 0x58
+# endif
+# ifndef LANG_MARATHI
+# define LANG_MARATHI 0x4e
+# endif
+# ifndef LANG_MONGOLIAN
+# define LANG_MONGOLIAN 0x50
+# endif
+# ifndef LANG_NEPALI
+# define LANG_NEPALI 0x61
+# endif
+# ifndef LANG_ORIYA
+# define LANG_ORIYA 0x48
+# endif
+# ifndef LANG_OROMO
+# define LANG_OROMO 0x72
+# endif
+# ifndef LANG_PAPIAMENTU
+# define LANG_PAPIAMENTU 0x79
+# endif
+# ifndef LANG_PASHTO
+# define LANG_PASHTO 0x63
+# endif
+# ifndef LANG_PUNJABI
+# define LANG_PUNJABI 0x46
+# endif
+# ifndef LANG_RHAETO_ROMANCE
+# define LANG_RHAETO_ROMANCE 0x17
+# endif
+# ifndef LANG_SAAMI
+# define LANG_SAAMI 0x3b
+# endif
+# ifndef LANG_SANSKRIT
+# define LANG_SANSKRIT 0x4f
+# endif
+# ifndef LANG_SERBIAN
+# define LANG_SERBIAN 0x1a
+# endif
+# ifndef LANG_SINDHI
+# define LANG_SINDHI 0x59
+# endif
+# ifndef LANG_SINHALESE
+# define LANG_SINHALESE 0x5b
+# endif
+# ifndef LANG_SLOVAK
+# define LANG_SLOVAK 0x1b
+# endif
+# ifndef LANG_SOMALI
+# define LANG_SOMALI 0x77
+# endif
+# ifndef LANG_SORBIAN
+# define LANG_SORBIAN 0x2e
+# endif
+# ifndef LANG_SUTU
+# define LANG_SUTU 0x30
+# endif
+# ifndef LANG_SWAHILI
+# define LANG_SWAHILI 0x41
+# endif
+# ifndef LANG_SYRIAC
+# define LANG_SYRIAC 0x5a
+# endif
+# ifndef LANG_TAGALOG
+# define LANG_TAGALOG 0x64
+# endif
+# ifndef LANG_TAJIK
+# define LANG_TAJIK 0x28
+# endif
+# ifndef LANG_TAMAZIGHT
+# define LANG_TAMAZIGHT 0x5f
+# endif
+# ifndef LANG_TAMIL
+# define LANG_TAMIL 0x49
+# endif
+# ifndef LANG_TATAR
+# define LANG_TATAR 0x44
+# endif
+# ifndef LANG_TELUGU
+# define LANG_TELUGU 0x4a
+# endif
+# ifndef LANG_THAI
+# define LANG_THAI 0x1e
+# endif
+# ifndef LANG_TIBETAN
+# define LANG_TIBETAN 0x51
+# endif
+# ifndef LANG_TIGRINYA
+# define LANG_TIGRINYA 0x73
+# endif
+# ifndef LANG_TSONGA
+# define LANG_TSONGA 0x31
+# endif
+# ifndef LANG_TSWANA
+# define LANG_TSWANA 0x32
+# endif
+# ifndef LANG_TURKMEN
+# define LANG_TURKMEN 0x42
+# endif
+# ifndef LANG_UKRAINIAN
+# define LANG_UKRAINIAN 0x22
+# endif
+# ifndef LANG_URDU
+# define LANG_URDU 0x20
+# endif
+# ifndef LANG_UZBEK
+# define LANG_UZBEK 0x43
+# endif
+# ifndef LANG_VENDA
+# define LANG_VENDA 0x33
+# endif
+# ifndef LANG_VIETNAMESE
+# define LANG_VIETNAMESE 0x2a
+# endif
+# ifndef LANG_WELSH
+# define LANG_WELSH 0x52
+# endif
+# ifndef LANG_XHOSA
+# define LANG_XHOSA 0x34
+# endif
+# ifndef LANG_YI
+# define LANG_YI 0x78
+# endif
+# ifndef LANG_YIDDISH
+# define LANG_YIDDISH 0x3d
+# endif
+# ifndef LANG_YORUBA
+# define LANG_YORUBA 0x6a
+# endif
+# ifndef LANG_ZULU
+# define LANG_ZULU 0x35
+# endif
+# ifndef SUBLANG_ARABIC_SAUDI_ARABIA
+# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+# endif
+# ifndef SUBLANG_ARABIC_IRAQ
+# define SUBLANG_ARABIC_IRAQ 0x02
+# endif
+# ifndef SUBLANG_ARABIC_EGYPT
+# define SUBLANG_ARABIC_EGYPT 0x03
+# endif
+# ifndef SUBLANG_ARABIC_LIBYA
+# define SUBLANG_ARABIC_LIBYA 0x04
+# endif
+# ifndef SUBLANG_ARABIC_ALGERIA
+# define SUBLANG_ARABIC_ALGERIA 0x05
+# endif
+# ifndef SUBLANG_ARABIC_MOROCCO
+# define SUBLANG_ARABIC_MOROCCO 0x06
+# endif
+# ifndef SUBLANG_ARABIC_TUNISIA
+# define SUBLANG_ARABIC_TUNISIA 0x07
+# endif
+# ifndef SUBLANG_ARABIC_OMAN
+# define SUBLANG_ARABIC_OMAN 0x08
+# endif
+# ifndef SUBLANG_ARABIC_YEMEN
+# define SUBLANG_ARABIC_YEMEN 0x09
+# endif
+# ifndef SUBLANG_ARABIC_SYRIA
+# define SUBLANG_ARABIC_SYRIA 0x0a
+# endif
+# ifndef SUBLANG_ARABIC_JORDAN
+# define SUBLANG_ARABIC_JORDAN 0x0b
+# endif
+# ifndef SUBLANG_ARABIC_LEBANON
+# define SUBLANG_ARABIC_LEBANON 0x0c
+# endif
+# ifndef SUBLANG_ARABIC_KUWAIT
+# define SUBLANG_ARABIC_KUWAIT 0x0d
+# endif
+# ifndef SUBLANG_ARABIC_UAE
+# define SUBLANG_ARABIC_UAE 0x0e
+# endif
+# ifndef SUBLANG_ARABIC_BAHRAIN
+# define SUBLANG_ARABIC_BAHRAIN 0x0f
+# endif
+# ifndef SUBLANG_ARABIC_QATAR
+# define SUBLANG_ARABIC_QATAR 0x10
+# endif
+# ifndef SUBLANG_AZERI_LATIN
+# define SUBLANG_AZERI_LATIN 0x01
+# endif
+# ifndef SUBLANG_AZERI_CYRILLIC
+# define SUBLANG_AZERI_CYRILLIC 0x02
+# endif
+# ifndef SUBLANG_BENGALI_INDIA
+# define SUBLANG_BENGALI_INDIA 0x01
+# endif
+# ifndef SUBLANG_BENGALI_BANGLADESH
+# define SUBLANG_BENGALI_BANGLADESH 0x02
+# endif
+# ifndef SUBLANG_CHINESE_MACAU
+# define SUBLANG_CHINESE_MACAU 0x05
+# endif
+# ifndef SUBLANG_ENGLISH_SOUTH_AFRICA
+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
+# endif
+# ifndef SUBLANG_ENGLISH_JAMAICA
+# define SUBLANG_ENGLISH_JAMAICA 0x08
+# endif
+# ifndef SUBLANG_ENGLISH_CARIBBEAN
+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
+# endif
+# ifndef SUBLANG_ENGLISH_BELIZE
+# define SUBLANG_ENGLISH_BELIZE 0x0a
+# endif
+# ifndef SUBLANG_ENGLISH_TRINIDAD
+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
+# endif
+# ifndef SUBLANG_ENGLISH_ZIMBABWE
+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
+# endif
+# ifndef SUBLANG_ENGLISH_PHILIPPINES
+# define SUBLANG_ENGLISH_PHILIPPINES 0x0d
+# endif
+# ifndef SUBLANG_ENGLISH_INDONESIA
+# define SUBLANG_ENGLISH_INDONESIA 0x0e
+# endif
+# ifndef SUBLANG_ENGLISH_HONGKONG
+# define SUBLANG_ENGLISH_HONGKONG 0x0f
+# endif
+# ifndef SUBLANG_ENGLISH_INDIA
+# define SUBLANG_ENGLISH_INDIA 0x10
+# endif
+# ifndef SUBLANG_ENGLISH_MALAYSIA
+# define SUBLANG_ENGLISH_MALAYSIA 0x11
+# endif
+# ifndef SUBLANG_ENGLISH_SINGAPORE
+# define SUBLANG_ENGLISH_SINGAPORE 0x12
+# endif
+# ifndef SUBLANG_FRENCH_LUXEMBOURG
+# define SUBLANG_FRENCH_LUXEMBOURG 0x05
+# endif
+# ifndef SUBLANG_FRENCH_MONACO
+# define SUBLANG_FRENCH_MONACO 0x06
+# endif
+# ifndef SUBLANG_FRENCH_WESTINDIES
+# define SUBLANG_FRENCH_WESTINDIES 0x07
+# endif
+# ifndef SUBLANG_FRENCH_REUNION
+# define SUBLANG_FRENCH_REUNION 0x08
+# endif
+# ifndef SUBLANG_FRENCH_CONGO
+# define SUBLANG_FRENCH_CONGO 0x09
+# endif
+# ifndef SUBLANG_FRENCH_SENEGAL
+# define SUBLANG_FRENCH_SENEGAL 0x0a
+# endif
+# ifndef SUBLANG_FRENCH_CAMEROON
+# define SUBLANG_FRENCH_CAMEROON 0x0b
+# endif
+# ifndef SUBLANG_FRENCH_COTEDIVOIRE
+# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
+# endif
+# ifndef SUBLANG_FRENCH_MALI
+# define SUBLANG_FRENCH_MALI 0x0d
+# endif
+# ifndef SUBLANG_FRENCH_MOROCCO
+# define SUBLANG_FRENCH_MOROCCO 0x0e
+# endif
+# ifndef SUBLANG_FRENCH_HAITI
+# define SUBLANG_FRENCH_HAITI 0x0f
+# endif
+# ifndef SUBLANG_GERMAN_LUXEMBOURG
+# define SUBLANG_GERMAN_LUXEMBOURG 0x04
+# endif
+# ifndef SUBLANG_GERMAN_LIECHTENSTEIN
+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+# endif
+# ifndef SUBLANG_KASHMIRI_INDIA
+# define SUBLANG_KASHMIRI_INDIA 0x02
+# endif
+# ifndef SUBLANG_MALAY_MALAYSIA
+# define SUBLANG_MALAY_MALAYSIA 0x01
+# endif
+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+# endif
+# ifndef SUBLANG_NEPALI_INDIA
+# define SUBLANG_NEPALI_INDIA 0x02
+# endif
+# ifndef SUBLANG_PUNJABI_INDIA
+# define SUBLANG_PUNJABI_INDIA 0x01
+# endif
+# ifndef SUBLANG_PUNJABI_PAKISTAN
+# define SUBLANG_PUNJABI_PAKISTAN 0x02
+# endif
+# ifndef SUBLANG_ROMANIAN_ROMANIA
+# define SUBLANG_ROMANIAN_ROMANIA 0x01
+# endif
+# ifndef SUBLANG_ROMANIAN_MOLDOVA
+# define SUBLANG_ROMANIAN_MOLDOVA 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_LATIN
+# define SUBLANG_SERBIAN_LATIN 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_CYRILLIC
+# define SUBLANG_SERBIAN_CYRILLIC 0x03
+# endif
+# ifndef SUBLANG_SINDHI_PAKISTAN
+# define SUBLANG_SINDHI_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_SINDHI_AFGHANISTAN
+# define SUBLANG_SINDHI_AFGHANISTAN 0x02
+# endif
+# ifndef SUBLANG_SPANISH_GUATEMALA
+# define SUBLANG_SPANISH_GUATEMALA 0x04
+# endif
+# ifndef SUBLANG_SPANISH_COSTA_RICA
+# define SUBLANG_SPANISH_COSTA_RICA 0x05
+# endif
+# ifndef SUBLANG_SPANISH_PANAMA
+# define SUBLANG_SPANISH_PANAMA 0x06
+# endif
+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+# endif
+# ifndef SUBLANG_SPANISH_VENEZUELA
+# define SUBLANG_SPANISH_VENEZUELA 0x08
+# endif
+# ifndef SUBLANG_SPANISH_COLOMBIA
+# define SUBLANG_SPANISH_COLOMBIA 0x09
+# endif
+# ifndef SUBLANG_SPANISH_PERU
+# define SUBLANG_SPANISH_PERU 0x0a
+# endif
+# ifndef SUBLANG_SPANISH_ARGENTINA
+# define SUBLANG_SPANISH_ARGENTINA 0x0b
+# endif
+# ifndef SUBLANG_SPANISH_ECUADOR
+# define SUBLANG_SPANISH_ECUADOR 0x0c
+# endif
+# ifndef SUBLANG_SPANISH_CHILE
+# define SUBLANG_SPANISH_CHILE 0x0d
+# endif
+# ifndef SUBLANG_SPANISH_URUGUAY
+# define SUBLANG_SPANISH_URUGUAY 0x0e
+# endif
+# ifndef SUBLANG_SPANISH_PARAGUAY
+# define SUBLANG_SPANISH_PARAGUAY 0x0f
+# endif
+# ifndef SUBLANG_SPANISH_BOLIVIA
+# define SUBLANG_SPANISH_BOLIVIA 0x10
+# endif
+# ifndef SUBLANG_SPANISH_EL_SALVADOR
+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
+# endif
+# ifndef SUBLANG_SPANISH_HONDURAS
+# define SUBLANG_SPANISH_HONDURAS 0x12
+# endif
+# ifndef SUBLANG_SPANISH_NICARAGUA
+# define SUBLANG_SPANISH_NICARAGUA 0x13
+# endif
+# ifndef SUBLANG_SPANISH_PUERTO_RICO
+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
+# endif
+# ifndef SUBLANG_SWEDISH_FINLAND
+# define SUBLANG_SWEDISH_FINLAND 0x02
+# endif
+# ifndef SUBLANG_TAMAZIGHT_ARABIC
+# define SUBLANG_TAMAZIGHT_ARABIC 0x01
+# endif
+# ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN
+# define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
+# endif
+# ifndef SUBLANG_TIGRINYA_ETHIOPIA
+# define SUBLANG_TIGRINYA_ETHIOPIA 0x01
+# endif
+# ifndef SUBLANG_TIGRINYA_ERITREA
+# define SUBLANG_TIGRINYA_ERITREA 0x02
+# endif
+# ifndef SUBLANG_URDU_PAKISTAN
+# define SUBLANG_URDU_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_URDU_INDIA
+# define SUBLANG_URDU_INDIA 0x02
+# endif
+# ifndef SUBLANG_UZBEK_LATIN
+# define SUBLANG_UZBEK_LATIN 0x01
+# endif
+# ifndef SUBLANG_UZBEK_CYRILLIC
+# define SUBLANG_UZBEK_CYRILLIC 0x02
+# endif
+#endif
+
+# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+/* MacOS X 10.2 or newer */
+
+/* Canonicalize a MacOS X locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+ On input, it contains the MacOS X locale name.
+ On output, it contains the Unix locale name. */
+# if !defined IN_LIBINTL
+static
+# endif
+void
+gl_locale_name_canonicalize (char *name)
+{
+ /* This conversion is based on a posting by
+ Deborah GoldSmith <goldsmit at apple.com> on 2005-03-08,
+ http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
+
+ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
+ ISO 3166) names. Prior to MacOS X 10.3, there is no API for doing this.
+ Therefore we do it ourselves, using a table based on the results of the
+ MacOS X 10.3.8 function
+ CFLocaleCreateCanonicalLocaleIdentifierFromString(). */
+ typedef struct { const char legacy[21+1]; const char unixy[5+1]; }
+ legacy_entry;
+ static const legacy_entry legacy_table[] = {
+ { "Afrikaans", "af" },
+ { "Albanian", "sq" },
+ { "Amharic", "am" },
+ { "Arabic", "ar" },
+ { "Armenian", "hy" },
+ { "Assamese", "as" },
+ { "Aymara", "ay" },
+ { "Azerbaijani", "az" },
+ { "Basque", "eu" },
+ { "Belarusian", "be" },
+ { "Belorussian", "be" },
+ { "Bengali", "bn" },
+ { "Brazilian Portugese", "pt_BR" },
+ { "Brazilian Portuguese", "pt_BR" },
+ { "Breton", "br" },
+ { "Bulgarian", "bg" },
+ { "Burmese", "my" },
+ { "Byelorussian", "be" },
+ { "Catalan", "ca" },
+ { "Chewa", "ny" },
+ { "Chichewa", "ny" },
+ { "Chinese", "zh" },
+ { "Chinese, Simplified", "zh_CN" },
+ { "Chinese, Traditional", "zh_TW" },
+ { "Chinese, Tradtional", "zh_TW" },
+ { "Croatian", "hr" },
+ { "Czech", "cs" },
+ { "Danish", "da" },
+ { "Dutch", "nl" },
+ { "Dzongkha", "dz" },
+ { "English", "en" },
+ { "Esperanto", "eo" },
+ { "Estonian", "et" },
+ { "Faroese", "fo" },
+ { "Farsi", "fa" },
+ { "Finnish", "fi" },
+ { "Flemish", "nl_BE" },
+ { "French", "fr" },
+ { "Galician", "gl" },
+ { "Gallegan", "gl" },
+ { "Georgian", "ka" },
+ { "German", "de" },
+ { "Greek", "el" },
+ { "Greenlandic", "kl" },
+ { "Guarani", "gn" },
+ { "Gujarati", "gu" },
+ { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */
+ { "Hebrew", "he" },
+ { "Hindi", "hi" },
+ { "Hungarian", "hu" },
+ { "Icelandic", "is" },
+ { "Indonesian", "id" },
+ { "Inuktitut", "iu" },
+ { "Irish", "ga" },
+ { "Italian", "it" },
+ { "Japanese", "ja" },
+ { "Javanese", "jv" },
+ { "Kalaallisut", "kl" },
+ { "Kannada", "kn" },
+ { "Kashmiri", "ks" },
+ { "Kazakh", "kk" },
+ { "Khmer", "km" },
+ { "Kinyarwanda", "rw" },
+ { "Kirghiz", "ky" },
+ { "Korean", "ko" },
+ { "Kurdish", "ku" },
+ { "Latin", "la" },
+ { "Latvian", "lv" },
+ { "Lithuanian", "lt" },
+ { "Macedonian", "mk" },
+ { "Malagasy", "mg" },
+ { "Malay", "ms" },
+ { "Malayalam", "ml" },
+ { "Maltese", "mt" },
+ { "Manx", "gv" },
+ { "Marathi", "mr" },
+ { "Moldavian", "mo" },
+ { "Mongolian", "mn" },
+ { "Nepali", "ne" },
+ { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */
+ { "Nyanja", "ny" },
+ { "Nynorsk", "nn" },
+ { "Oriya", "or" },
+ { "Oromo", "om" },
+ { "Panjabi", "pa" },
+ { "Pashto", "ps" },
+ { "Persian", "fa" },
+ { "Polish", "pl" },
+ { "Portuguese", "pt" },
+ { "Portuguese, Brazilian", "pt_BR" },
+ { "Punjabi", "pa" },
+ { "Pushto", "ps" },
+ { "Quechua", "qu" },
+ { "Romanian", "ro" },
+ { "Ruanda", "rw" },
+ { "Rundi", "rn" },
+ { "Russian", "ru" },
+ { "Sami", "se_NO" }, /* Not just "se". */
+ { "Sanskrit", "sa" },
+ { "Scottish", "gd" },
+ { "Serbian", "sr" },
+ { "Simplified Chinese", "zh_CN" },
+ { "Sindhi", "sd" },
+ { "Sinhalese", "si" },
+ { "Slovak", "sk" },
+ { "Slovenian", "sl" },
+ { "Somali", "so" },
+ { "Spanish", "es" },
+ { "Sundanese", "su" },
+ { "Swahili", "sw" },
+ { "Swedish", "sv" },
+ { "Tagalog", "tl" },
+ { "Tajik", "tg" },
+ { "Tajiki", "tg" },
+ { "Tamil", "ta" },
+ { "Tatar", "tt" },
+ { "Telugu", "te" },
+ { "Thai", "th" },
+ { "Tibetan", "bo" },
+ { "Tigrinya", "ti" },
+ { "Tongan", "to" },
+ { "Traditional Chinese", "zh_TW" },
+ { "Turkish", "tr" },
+ { "Turkmen", "tk" },
+ { "Uighur", "ug" },
+ { "Ukrainian", "uk" },
+ { "Urdu", "ur" },
+ { "Uzbek", "uz" },
+ { "Vietnamese", "vi" },
+ { "Welsh", "cy" },
+ { "Yiddish", "yi" }
+ };
+
+ /* Convert new-style locale names with language tags (ISO 639 and ISO 15924)
+ to Unix (ISO 639 and ISO 3166) names. */
+ typedef struct { const char langtag[7+1]; const char unixy[12+1]; }
+ langtag_entry;
+ static const langtag_entry langtag_table[] = {
+ /* MacOS X has "az-Arab", "az-Cyrl", "az-Latn".
+ The default script for az on Unix is Latin. */
+ { "az-Latn", "az" },
+ /* MacOS X has "ga-dots". Does not yet exist on Unix. */
+ { "ga-dots", "ga" },
+ /* MacOS X has "kk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "mn-Cyrl", "mn-Mong".
+ The default script for mn on Unix is Cyrillic. */
+ { "mn-Cyrl", "mn" },
+ /* MacOS X has "ms-Arab", "ms-Latn".
+ The default script for ms on Unix is Latin. */
+ { "ms-Latn", "ms" },
+ /* MacOS X has "tg-Cyrl".
+ The default script for tg on Unix is Cyrillic. */
+ { "tg-Cyrl", "tg" },
+ /* MacOS X has "tk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "tt-Cyrl".
+ The default script for tt on Unix is Cyrillic. */
+ { "tt-Cyrl", "tt" },
+ /* MacOS X has "zh-Hans", "zh-Hant".
+ Country codes are used to distinguish these on Unix. */
+ { "zh-Hans", "zh_CN" },
+ { "zh-Hant", "zh_TW" }
+ };
+
+ /* Convert script names (ISO 15924) to Unix conventions.
+ See http://www.unicode.org/iso15924/iso15924-codes.html */
+ typedef struct { const char script[4+1]; const char unixy[9+1]; }
+ script_entry;
+ static const script_entry script_table[] = {
+ { "Arab", "arabic" },
+ { "Cyrl", "cyrillic" },
+ { "Mong", "mongolian" }
+ };
+
+ /* Step 1: Convert using legacy_table. */
+ if (name[0] >= 'A' && name[0] <= 'Z')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (legacy_table) / sizeof (legacy_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in legacy_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const legacy_entry *p = &legacy_table[i];
+ if (strcmp (name, p->legacy) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, legacy_table[i1].legacy) == 0)
+ {
+ strcpy (name, legacy_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 2: Convert using langtag_table and script_table. */
+ if (strlen (name) == 7 && name[2] == '-')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (langtag_table) / sizeof (langtag_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in langtag_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const langtag_entry *p = &langtag_table[i];
+ if (strcmp (name, p->langtag) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, langtag_table[i1].langtag) == 0)
+ {
+ strcpy (name, langtag_table[i1].unixy);
+ return;
+ }
+
+ i1 = 0;
+ i2 = sizeof (script_table) / sizeof (script_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if (name + 3) occurs in script_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const script_entry *p = &script_table[i];
+ if (strcmp (name + 3, p->script) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name + 3, script_table[i1].script) == 0)
+ {
+ name[2] = '@';
+ strcpy (name + 3, script_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 3: Convert new-style dash to Unix underscore. */
+ {
+ char *p;
+ for (p = name; *p != '\0'; p++)
+ if (*p == '-')
+ *p = '_';
+ }
+}
+
+#endif
+
+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
+ "Directs 'setlocale()' to query 'category' and return the current
+ setting of 'local'."
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Determine the current locale's name, and canonicalize it into XPG syntax
+ language[_territory][.codeset][@modifier]
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+
+const char *
+gl_locale_name_posix (int category, const char *categoryname)
+{
+ /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
+ On some systems this can be done by the 'setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ const char *retval;
+
+ /* Setting of LC_ALL overrides all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ return NULL;
+#endif
+}
+
+const char *
+gl_locale_name_default (void)
+{
+ /* POSIX:2001 says:
+ "All implementations shall define a locale as the default locale, to be
+ invoked when no environment variables are set, or set to the empty
+ string. This default locale can be the POSIX locale or any other
+ implementation-defined locale. Some implementations may provide
+ facilities for local installation administrators to set the default
+ locale, customizing it for each location. POSIX:2001 does not require
+ such a facility. */
+
+#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined(WIN32_NATIVE))
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+ return "C";
+
+#else
+
+ /* Return an XPG style locale name language[_territory][@modifier].
+ Don't even bother determining the codeset; it's not useful in this
+ context, because message catalogs are not specific to a single
+ codeset. */
+
+# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+ /* MacOS X 10.2 or newer */
+ {
+ /* Cache the locale name, since CoreFoundation calls are expensive. */
+ static const char *cached_localename;
+
+ if (cached_localename == NULL)
+ {
+ char namebuf[256];
+# if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */
+ CFLocaleRef locale = CFLocaleCopyCurrent ();
+ CFStringRef name = CFLocaleGetIdentifier (locale);
+
+ if (CFStringGetCString (name, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ gl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+ CFRelease (locale);
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
+ CFTypeRef value =
+ CFPreferencesCopyAppValue (CFSTR ("AppleLocale"),
+ kCFPreferencesCurrentApplication);
+ if (value != NULL
+ && CFGetTypeID (value) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)value, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ gl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+# endif
+ if (cached_localename == NULL)
+ cached_localename = "C";
+ }
+ return cached_localename;
+ }
+
+# endif
+
+# if defined(WIN32_NATIVE) /* WIN32, not Cygwin */
+ {
+ LCID lcid;
+ LANGID langid;
+ int primary, sub;
+
+ /* Use native Win32 API locale ID. */
+ lcid = GetThreadLocale ();
+
+ /* Strip off the sorting rules, keep only the language part. */
+ langid = LANGIDFROMLCID (lcid);
+
+ /* Split into language and territory part. */
+ primary = PRIMARYLANGID (langid);
+ sub = SUBLANGID (langid);
+
+ /* Dispatch on language.
+ See also http://www.unicode.org/unicode/onlinedat/languages.html .
+ For details about languages, see http://www.ethnologue.com/ . */
+ switch (primary)
+ {
+ case LANG_AFRIKAANS: return "af_ZA";
+ case LANG_ALBANIAN: return "sq_AL";
+ case LANG_AMHARIC: return "am_ET";
+ case LANG_ARABIC:
+ switch (sub)
+ {
+ case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
+ case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
+ case SUBLANG_ARABIC_EGYPT: return "ar_EG";
+ case SUBLANG_ARABIC_LIBYA: return "ar_LY";
+ case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
+ case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
+ case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
+ case SUBLANG_ARABIC_OMAN: return "ar_OM";
+ case SUBLANG_ARABIC_YEMEN: return "ar_YE";
+ case SUBLANG_ARABIC_SYRIA: return "ar_SY";
+ case SUBLANG_ARABIC_JORDAN: return "ar_JO";
+ case SUBLANG_ARABIC_LEBANON: return "ar_LB";
+ case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
+ case SUBLANG_ARABIC_UAE: return "ar_AE";
+ case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
+ case SUBLANG_ARABIC_QATAR: return "ar_QA";
+ }
+ return "ar";
+ case LANG_ARMENIAN: return "hy_AM";
+ case LANG_ASSAMESE: return "as_IN";
+ case LANG_AZERI:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */
+ case SUBLANG_AZERI_LATIN: return "az_AZ at latin";
+ case SUBLANG_AZERI_CYRILLIC: return "az_AZ at cyrillic";
+ }
+ return "az";
+ case LANG_BASQUE:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "eu_ES";
+ }
+ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
+ case LANG_BELARUSIAN: return "be_BY";
+ case LANG_BENGALI:
+ switch (sub)
+ {
+ case SUBLANG_BENGALI_INDIA: return "bn_IN";
+ case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
+ }
+ return "bn";
+ case LANG_BULGARIAN: return "bg_BG";
+ case LANG_BURMESE: return "my_MM";
+ case LANG_CAMBODIAN: return "km_KH";
+ case LANG_CATALAN: return "ca_ES";
+ case LANG_CHEROKEE: return "chr_US";
+ case LANG_CHINESE:
+ switch (sub)
+ {
+ case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
+ case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
+ case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
+ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
+ case SUBLANG_CHINESE_MACAU: return "zh_MO";
+ }
+ return "zh";
+ case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN
+ * What used to be called Serbo-Croatian
+ * should really now be two separate
+ * languages because of political reasons.
+ * (Says tml, who knows nothing about Serbian
+ * or Croatian.)
+ * (I can feel those flames coming already.)
+ */
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "hr_HR";
+ case SUBLANG_SERBIAN_LATIN: return "sr_CS";
+ case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS at cyrillic";
+ }
+ return "hr";
+ case LANG_CZECH: return "cs_CZ";
+ case LANG_DANISH: return "da_DK";
+ case LANG_DIVEHI: return "dv_MV";
+ case LANG_DUTCH:
+ switch (sub)
+ {
+ case SUBLANG_DUTCH: return "nl_NL";
+ case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
+ }
+ return "nl";
+ case LANG_EDO: return "bin_NG";
+ case LANG_ENGLISH:
+ switch (sub)
+ {
+ /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
+ * English was the language spoken in England.
+ * Oh well.
+ */
+ case SUBLANG_ENGLISH_US: return "en_US";
+ case SUBLANG_ENGLISH_UK: return "en_GB";
+ case SUBLANG_ENGLISH_AUS: return "en_AU";
+ case SUBLANG_ENGLISH_CAN: return "en_CA";
+ case SUBLANG_ENGLISH_NZ: return "en_NZ";
+ case SUBLANG_ENGLISH_EIRE: return "en_IE";
+ case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
+ case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
+ case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
+ case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
+ case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
+ case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
+ case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
+ case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
+ case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
+ case SUBLANG_ENGLISH_INDIA: return "en_IN";
+ case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
+ case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
+ }
+ return "en";
+ case LANG_ESTONIAN: return "et_EE";
+ case LANG_FAEROESE: return "fo_FO";
+ case LANG_FARSI: return "fa_IR";
+ case LANG_FINNISH: return "fi_FI";
+ case LANG_FRENCH:
+ switch (sub)
+ {
+ case SUBLANG_FRENCH: return "fr_FR";
+ case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE";
+ case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
+ case SUBLANG_FRENCH_SWISS: return "fr_CH";
+ case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
+ case SUBLANG_FRENCH_MONACO: return "fr_MC";
+ case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
+ case SUBLANG_FRENCH_REUNION: return "fr_RE";
+ case SUBLANG_FRENCH_CONGO: return "fr_CG";
+ case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
+ case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
+ case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
+ case SUBLANG_FRENCH_MALI: return "fr_ML";
+ case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
+ case SUBLANG_FRENCH_HAITI: return "fr_HT";
+ }
+ return "fr";
+ case LANG_FRISIAN: return "fy_NL";
+ case LANG_FULFULDE:
+ /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
+ return "ff_NG";
+ case LANG_GAELIC:
+ switch (sub)
+ {
+ case 0x01: /* SCOTTISH */ return "gd_GB";
+ case 0x02: /* IRISH */ return "ga_IE";
+ }
+ return "C";
+ case LANG_GALICIAN: return "gl_ES";
+ case LANG_GEORGIAN: return "ka_GE";
+ case LANG_GERMAN:
+ switch (sub)
+ {
+ case SUBLANG_GERMAN: return "de_DE";
+ case SUBLANG_GERMAN_SWISS: return "de_CH";
+ case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
+ case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
+ case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
+ }
+ return "de";
+ case LANG_GREEK: return "el_GR";
+ case LANG_GUARANI: return "gn_PY";
+ case LANG_GUJARATI: return "gu_IN";
+ case LANG_HAUSA: return "ha_NG";
+ case LANG_HAWAIIAN:
+ /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
+ or Hawaii Creole English ("cpe_US", 600000 speakers)? */
+ return "cpe_US";
+ case LANG_HEBREW: return "he_IL";
+ case LANG_HINDI: return "hi_IN";
+ case LANG_HUNGARIAN: return "hu_HU";
+ case LANG_IBIBIO: return "nic_NG";
+ case LANG_ICELANDIC: return "is_IS";
+ case LANG_IGBO: return "ig_NG";
+ case LANG_INDONESIAN: return "id_ID";
+ case LANG_INUKTITUT: return "iu_CA";
+ case LANG_ITALIAN:
+ switch (sub)
+ {
+ case SUBLANG_ITALIAN: return "it_IT";
+ case SUBLANG_ITALIAN_SWISS: return "it_CH";
+ }
+ return "it";
+ case LANG_JAPANESE: return "ja_JP";
+ case LANG_KANNADA: return "kn_IN";
+ case LANG_KANURI: return "kr_NG";
+ case LANG_KASHMIRI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ks_PK";
+ case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
+ }
+ return "ks";
+ case LANG_KAZAK: return "kk_KZ";
+ case LANG_KONKANI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "kok_IN";
+ case LANG_KOREAN: return "ko_KR";
+ case LANG_KYRGYZ: return "ky_KG";
+ case LANG_LAO: return "lo_LA";
+ case LANG_LATIN: return "la_VA";
+ case LANG_LATVIAN: return "lv_LV";
+ case LANG_LITHUANIAN: return "lt_LT";
+ case LANG_MACEDONIAN: return "mk_MK";
+ case LANG_MALAY:
+ switch (sub)
+ {
+ case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
+ case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
+ }
+ return "ms";
+ case LANG_MALAYALAM: return "ml_IN";
+ case LANG_MALTESE: return "mt_MT";
+ case LANG_MANIPURI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "mni_IN";
+ case LANG_MARATHI: return "mr_IN";
+ case LANG_MONGOLIAN:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "mn_MN";
+ }
+ return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */
+ case LANG_NEPALI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ne_NP";
+ case SUBLANG_NEPALI_INDIA: return "ne_IN";
+ }
+ return "ne";
+ case LANG_NORWEGIAN:
+ switch (sub)
+ {
+ case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO";
+ case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
+ }
+ return "no";
+ case LANG_ORIYA: return "or_IN";
+ case LANG_OROMO: return "om_ET";
+ case LANG_PAPIAMENTU: return "pap_AN";
+ case LANG_PASHTO:
+ return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */
+ case LANG_POLISH: return "pl_PL";
+ case LANG_PORTUGUESE:
+ switch (sub)
+ {
+ case SUBLANG_PORTUGUESE: return "pt_PT";
+ /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
+ Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
+ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
+ }
+ return "pt";
+ case LANG_PUNJABI:
+ switch (sub)
+ {
+ case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
+ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
+ }
+ return "pa";
+ case LANG_RHAETO_ROMANCE: return "rm_CH";
+ case LANG_ROMANIAN:
+ switch (sub)
+ {
+ case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
+ case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
+ }
+ return "ro";
+ case LANG_RUSSIAN:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ru_RU";
+ }
+ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
+ case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
+ case LANG_SANSKRIT: return "sa_IN";
+ case LANG_SINDHI:
+ switch (sub)
+ {
+ case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
+ case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF";
+ }
+ return "sd";
+ case LANG_SINHALESE: return "si_LK";
+ case LANG_SLOVAK: return "sk_SK";
+ case LANG_SLOVENIAN: return "sl_SI";
+ case LANG_SOMALI: return "so_SO";
+ case LANG_SORBIAN:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "wen_DE";
+ case LANG_SPANISH:
+ switch (sub)
+ {
+ case SUBLANG_SPANISH: return "es_ES";
+ case SUBLANG_SPANISH_MEXICAN: return "es_MX";
+ case SUBLANG_SPANISH_MODERN:
+ return "es_ES at modern"; /* not seen on Unix */
+ case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
+ case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
+ case SUBLANG_SPANISH_PANAMA: return "es_PA";
+ case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
+ case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
+ case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
+ case SUBLANG_SPANISH_PERU: return "es_PE";
+ case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
+ case SUBLANG_SPANISH_ECUADOR: return "es_EC";
+ case SUBLANG_SPANISH_CHILE: return "es_CL";
+ case SUBLANG_SPANISH_URUGUAY: return "es_UY";
+ case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
+ case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
+ case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
+ case SUBLANG_SPANISH_HONDURAS: return "es_HN";
+ case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
+ case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
+ }
+ return "es";
+ case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
+ case LANG_SWAHILI: return "sw_KE";
+ case LANG_SWEDISH:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "sv_SE";
+ case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
+ }
+ return "sv";
+ case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */
+ case LANG_TAGALOG: return "tl_PH";
+ case LANG_TAJIK: return "tg_TJ";
+ case LANG_TAMAZIGHT:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Tamazight locales appear on Unix. */
+ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA at arabic";
+ case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "ber_DZ at latin";
+ }
+ return "ber_MA";
+ case LANG_TAMIL:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ta_IN";
+ }
+ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
+ case LANG_TATAR: return "tt_RU";
+ case LANG_TELUGU: return "te_IN";
+ case LANG_THAI: return "th_TH";
+ case LANG_TIBETAN: return "bo_CN";
+ case LANG_TIGRINYA:
+ switch (sub)
+ {
+ case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
+ case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
+ }
+ return "ti";
+ case LANG_TSONGA: return "ts_ZA";
+ case LANG_TSWANA: return "tn_BW";
+ case LANG_TURKISH: return "tr_TR";
+ case LANG_TURKMEN: return "tk_TM";
+ case LANG_UKRAINIAN: return "uk_UA";
+ case LANG_URDU:
+ switch (sub)
+ {
+ case SUBLANG_URDU_PAKISTAN: return "ur_PK";
+ case SUBLANG_URDU_INDIA: return "ur_IN";
+ }
+ return "ur";
+ case LANG_UZBEK:
+ switch (sub)
+ {
+ case SUBLANG_UZBEK_LATIN: return "uz_UZ";
+ case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ at cyrillic";
+ }
+ return "uz";
+ case LANG_VENDA: return "ve_ZA";
+ case LANG_VIETNAMESE: return "vi_VN";
+ case LANG_WELSH: return "cy_GB";
+ case LANG_XHOSA: return "xh_ZA";
+ case LANG_YI: return "sit_CN";
+ case LANG_YIDDISH: return "yi_IL";
+ case LANG_YORUBA: return "yo_NG";
+ case LANG_ZULU: return "zu_ZA";
+ default: return "C";
+ }
+ }
+# endif
+#endif
+}
+
+const char *
+gl_locale_name (int category, const char *categoryname)
+{
+ const char *retval;
+
+ retval = gl_locale_name_posix (category, categoryname);
+ if (retval != NULL)
+ return retval;
+
+ return gl_locale_name_default ();
+}
diff --git a/intl/localename.c.orig b/intl/localename.c.orig
new file mode 100644
index 0000000..e1b4615
--- /dev/null
+++ b/intl/localename.c.orig
@@ -0,0 +1,1499 @@
+/* Determine the current selected locale.
+ Copyright (C) 1995-1999, 2000-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Ulrich Drepper <drepper at gnu.org>, 1995. */
+/* Win32 code written by Tor Lillqvist <tml at iki.fi>. */
+/* MacOS X code written by Bruno Haible <bruno at clisp.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <locale.h>
+
+#if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <string.h>
+# include <CoreFoundation/CFString.h>
+# if HAVE_CFLOCALECOPYCURRENT
+# include <CoreFoundation/CFLocale.h>
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE
+# include <CoreFoundation/CFPreferences.h>
+# endif
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# define WIN32_NATIVE
+#endif
+
+#ifdef WIN32_NATIVE
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* List of language codes, sorted by value:
+ 0x01 LANG_ARABIC
+ 0x02 LANG_BULGARIAN
+ 0x03 LANG_CATALAN
+ 0x04 LANG_CHINESE
+ 0x05 LANG_CZECH
+ 0x06 LANG_DANISH
+ 0x07 LANG_GERMAN
+ 0x08 LANG_GREEK
+ 0x09 LANG_ENGLISH
+ 0x0a LANG_SPANISH
+ 0x0b LANG_FINNISH
+ 0x0c LANG_FRENCH
+ 0x0d LANG_HEBREW
+ 0x0e LANG_HUNGARIAN
+ 0x0f LANG_ICELANDIC
+ 0x10 LANG_ITALIAN
+ 0x11 LANG_JAPANESE
+ 0x12 LANG_KOREAN
+ 0x13 LANG_DUTCH
+ 0x14 LANG_NORWEGIAN
+ 0x15 LANG_POLISH
+ 0x16 LANG_PORTUGUESE
+ 0x17 LANG_RHAETO_ROMANCE
+ 0x18 LANG_ROMANIAN
+ 0x19 LANG_RUSSIAN
+ 0x1a LANG_CROATIAN == LANG_SERBIAN
+ 0x1b LANG_SLOVAK
+ 0x1c LANG_ALBANIAN
+ 0x1d LANG_SWEDISH
+ 0x1e LANG_THAI
+ 0x1f LANG_TURKISH
+ 0x20 LANG_URDU
+ 0x21 LANG_INDONESIAN
+ 0x22 LANG_UKRAINIAN
+ 0x23 LANG_BELARUSIAN
+ 0x24 LANG_SLOVENIAN
+ 0x25 LANG_ESTONIAN
+ 0x26 LANG_LATVIAN
+ 0x27 LANG_LITHUANIAN
+ 0x28 LANG_TAJIK
+ 0x29 LANG_FARSI
+ 0x2a LANG_VIETNAMESE
+ 0x2b LANG_ARMENIAN
+ 0x2c LANG_AZERI
+ 0x2d LANG_BASQUE
+ 0x2e LANG_SORBIAN
+ 0x2f LANG_MACEDONIAN
+ 0x30 LANG_SUTU
+ 0x31 LANG_TSONGA
+ 0x32 LANG_TSWANA
+ 0x33 LANG_VENDA
+ 0x34 LANG_XHOSA
+ 0x35 LANG_ZULU
+ 0x36 LANG_AFRIKAANS
+ 0x37 LANG_GEORGIAN
+ 0x38 LANG_FAEROESE
+ 0x39 LANG_HINDI
+ 0x3a LANG_MALTESE
+ 0x3b LANG_SAAMI
+ 0x3c LANG_GAELIC
+ 0x3d LANG_YIDDISH
+ 0x3e LANG_MALAY
+ 0x3f LANG_KAZAK
+ 0x40 LANG_KYRGYZ
+ 0x41 LANG_SWAHILI
+ 0x42 LANG_TURKMEN
+ 0x43 LANG_UZBEK
+ 0x44 LANG_TATAR
+ 0x45 LANG_BENGALI
+ 0x46 LANG_PUNJABI
+ 0x47 LANG_GUJARATI
+ 0x48 LANG_ORIYA
+ 0x49 LANG_TAMIL
+ 0x4a LANG_TELUGU
+ 0x4b LANG_KANNADA
+ 0x4c LANG_MALAYALAM
+ 0x4d LANG_ASSAMESE
+ 0x4e LANG_MARATHI
+ 0x4f LANG_SANSKRIT
+ 0x50 LANG_MONGOLIAN
+ 0x51 LANG_TIBETAN
+ 0x52 LANG_WELSH
+ 0x53 LANG_CAMBODIAN
+ 0x54 LANG_LAO
+ 0x55 LANG_BURMESE
+ 0x56 LANG_GALICIAN
+ 0x57 LANG_KONKANI
+ 0x58 LANG_MANIPURI
+ 0x59 LANG_SINDHI
+ 0x5a LANG_SYRIAC
+ 0x5b LANG_SINHALESE
+ 0x5c LANG_CHEROKEE
+ 0x5d LANG_INUKTITUT
+ 0x5e LANG_AMHARIC
+ 0x5f LANG_TAMAZIGHT
+ 0x60 LANG_KASHMIRI
+ 0x61 LANG_NEPALI
+ 0x62 LANG_FRISIAN
+ 0x63 LANG_PASHTO
+ 0x64 LANG_TAGALOG
+ 0x65 LANG_DIVEHI
+ 0x66 LANG_EDO
+ 0x67 LANG_FULFULDE
+ 0x68 LANG_HAUSA
+ 0x69 LANG_IBIBIO
+ 0x6a LANG_YORUBA
+ 0x70 LANG_IGBO
+ 0x71 LANG_KANURI
+ 0x72 LANG_OROMO
+ 0x73 LANG_TIGRINYA
+ 0x74 LANG_GUARANI
+ 0x75 LANG_HAWAIIAN
+ 0x76 LANG_LATIN
+ 0x77 LANG_SOMALI
+ 0x78 LANG_YI
+ 0x79 LANG_PAPIAMENTU
+*/
+/* Mingw headers don't have latest language and sublanguage codes. */
+# ifndef LANG_AFRIKAANS
+# define LANG_AFRIKAANS 0x36
+# endif
+# ifndef LANG_ALBANIAN
+# define LANG_ALBANIAN 0x1c
+# endif
+# ifndef LANG_AMHARIC
+# define LANG_AMHARIC 0x5e
+# endif
+# ifndef LANG_ARABIC
+# define LANG_ARABIC 0x01
+# endif
+# ifndef LANG_ARMENIAN
+# define LANG_ARMENIAN 0x2b
+# endif
+# ifndef LANG_ASSAMESE
+# define LANG_ASSAMESE 0x4d
+# endif
+# ifndef LANG_AZERI
+# define LANG_AZERI 0x2c
+# endif
+# ifndef LANG_BASQUE
+# define LANG_BASQUE 0x2d
+# endif
+# ifndef LANG_BELARUSIAN
+# define LANG_BELARUSIAN 0x23
+# endif
+# ifndef LANG_BENGALI
+# define LANG_BENGALI 0x45
+# endif
+# ifndef LANG_BURMESE
+# define LANG_BURMESE 0x55
+# endif
+# ifndef LANG_CAMBODIAN
+# define LANG_CAMBODIAN 0x53
+# endif
+# ifndef LANG_CATALAN
+# define LANG_CATALAN 0x03
+# endif
+# ifndef LANG_CHEROKEE
+# define LANG_CHEROKEE 0x5c
+# endif
+# ifndef LANG_DIVEHI
+# define LANG_DIVEHI 0x65
+# endif
+# ifndef LANG_EDO
+# define LANG_EDO 0x66
+# endif
+# ifndef LANG_ESTONIAN
+# define LANG_ESTONIAN 0x25
+# endif
+# ifndef LANG_FAEROESE
+# define LANG_FAEROESE 0x38
+# endif
+# ifndef LANG_FARSI
+# define LANG_FARSI 0x29
+# endif
+# ifndef LANG_FRISIAN
+# define LANG_FRISIAN 0x62
+# endif
+# ifndef LANG_FULFULDE
+# define LANG_FULFULDE 0x67
+# endif
+# ifndef LANG_GAELIC
+# define LANG_GAELIC 0x3c
+# endif
+# ifndef LANG_GALICIAN
+# define LANG_GALICIAN 0x56
+# endif
+# ifndef LANG_GEORGIAN
+# define LANG_GEORGIAN 0x37
+# endif
+# ifndef LANG_GUARANI
+# define LANG_GUARANI 0x74
+# endif
+# ifndef LANG_GUJARATI
+# define LANG_GUJARATI 0x47
+# endif
+# ifndef LANG_HAUSA
+# define LANG_HAUSA 0x68
+# endif
+# ifndef LANG_HAWAIIAN
+# define LANG_HAWAIIAN 0x75
+# endif
+# ifndef LANG_HEBREW
+# define LANG_HEBREW 0x0d
+# endif
+# ifndef LANG_HINDI
+# define LANG_HINDI 0x39
+# endif
+# ifndef LANG_IBIBIO
+# define LANG_IBIBIO 0x69
+# endif
+# ifndef LANG_IGBO
+# define LANG_IGBO 0x70
+# endif
+# ifndef LANG_INDONESIAN
+# define LANG_INDONESIAN 0x21
+# endif
+# ifndef LANG_INUKTITUT
+# define LANG_INUKTITUT 0x5d
+# endif
+# ifndef LANG_KANNADA
+# define LANG_KANNADA 0x4b
+# endif
+# ifndef LANG_KANURI
+# define LANG_KANURI 0x71
+# endif
+# ifndef LANG_KASHMIRI
+# define LANG_KASHMIRI 0x60
+# endif
+# ifndef LANG_KAZAK
+# define LANG_KAZAK 0x3f
+# endif
+# ifndef LANG_KONKANI
+# define LANG_KONKANI 0x57
+# endif
+# ifndef LANG_KYRGYZ
+# define LANG_KYRGYZ 0x40
+# endif
+# ifndef LANG_LAO
+# define LANG_LAO 0x54
+# endif
+# ifndef LANG_LATIN
+# define LANG_LATIN 0x76
+# endif
+# ifndef LANG_LATVIAN
+# define LANG_LATVIAN 0x26
+# endif
+# ifndef LANG_LITHUANIAN
+# define LANG_LITHUANIAN 0x27
+# endif
+# ifndef LANG_MACEDONIAN
+# define LANG_MACEDONIAN 0x2f
+# endif
+# ifndef LANG_MALAY
+# define LANG_MALAY 0x3e
+# endif
+# ifndef LANG_MALAYALAM
+# define LANG_MALAYALAM 0x4c
+# endif
+# ifndef LANG_MALTESE
+# define LANG_MALTESE 0x3a
+# endif
+# ifndef LANG_MANIPURI
+# define LANG_MANIPURI 0x58
+# endif
+# ifndef LANG_MARATHI
+# define LANG_MARATHI 0x4e
+# endif
+# ifndef LANG_MONGOLIAN
+# define LANG_MONGOLIAN 0x50
+# endif
+# ifndef LANG_NEPALI
+# define LANG_NEPALI 0x61
+# endif
+# ifndef LANG_ORIYA
+# define LANG_ORIYA 0x48
+# endif
+# ifndef LANG_OROMO
+# define LANG_OROMO 0x72
+# endif
+# ifndef LANG_PAPIAMENTU
+# define LANG_PAPIAMENTU 0x79
+# endif
+# ifndef LANG_PASHTO
+# define LANG_PASHTO 0x63
+# endif
+# ifndef LANG_PUNJABI
+# define LANG_PUNJABI 0x46
+# endif
+# ifndef LANG_RHAETO_ROMANCE
+# define LANG_RHAETO_ROMANCE 0x17
+# endif
+# ifndef LANG_SAAMI
+# define LANG_SAAMI 0x3b
+# endif
+# ifndef LANG_SANSKRIT
+# define LANG_SANSKRIT 0x4f
+# endif
+# ifndef LANG_SERBIAN
+# define LANG_SERBIAN 0x1a
+# endif
+# ifndef LANG_SINDHI
+# define LANG_SINDHI 0x59
+# endif
+# ifndef LANG_SINHALESE
+# define LANG_SINHALESE 0x5b
+# endif
+# ifndef LANG_SLOVAK
+# define LANG_SLOVAK 0x1b
+# endif
+# ifndef LANG_SOMALI
+# define LANG_SOMALI 0x77
+# endif
+# ifndef LANG_SORBIAN
+# define LANG_SORBIAN 0x2e
+# endif
+# ifndef LANG_SUTU
+# define LANG_SUTU 0x30
+# endif
+# ifndef LANG_SWAHILI
+# define LANG_SWAHILI 0x41
+# endif
+# ifndef LANG_SYRIAC
+# define LANG_SYRIAC 0x5a
+# endif
+# ifndef LANG_TAGALOG
+# define LANG_TAGALOG 0x64
+# endif
+# ifndef LANG_TAJIK
+# define LANG_TAJIK 0x28
+# endif
+# ifndef LANG_TAMAZIGHT
+# define LANG_TAMAZIGHT 0x5f
+# endif
+# ifndef LANG_TAMIL
+# define LANG_TAMIL 0x49
+# endif
+# ifndef LANG_TATAR
+# define LANG_TATAR 0x44
+# endif
+# ifndef LANG_TELUGU
+# define LANG_TELUGU 0x4a
+# endif
+# ifndef LANG_THAI
+# define LANG_THAI 0x1e
+# endif
+# ifndef LANG_TIBETAN
+# define LANG_TIBETAN 0x51
+# endif
+# ifndef LANG_TIGRINYA
+# define LANG_TIGRINYA 0x73
+# endif
+# ifndef LANG_TSONGA
+# define LANG_TSONGA 0x31
+# endif
+# ifndef LANG_TSWANA
+# define LANG_TSWANA 0x32
+# endif
+# ifndef LANG_TURKMEN
+# define LANG_TURKMEN 0x42
+# endif
+# ifndef LANG_UKRAINIAN
+# define LANG_UKRAINIAN 0x22
+# endif
+# ifndef LANG_URDU
+# define LANG_URDU 0x20
+# endif
+# ifndef LANG_UZBEK
+# define LANG_UZBEK 0x43
+# endif
+# ifndef LANG_VENDA
+# define LANG_VENDA 0x33
+# endif
+# ifndef LANG_VIETNAMESE
+# define LANG_VIETNAMESE 0x2a
+# endif
+# ifndef LANG_WELSH
+# define LANG_WELSH 0x52
+# endif
+# ifndef LANG_XHOSA
+# define LANG_XHOSA 0x34
+# endif
+# ifndef LANG_YI
+# define LANG_YI 0x78
+# endif
+# ifndef LANG_YIDDISH
+# define LANG_YIDDISH 0x3d
+# endif
+# ifndef LANG_YORUBA
+# define LANG_YORUBA 0x6a
+# endif
+# ifndef LANG_ZULU
+# define LANG_ZULU 0x35
+# endif
+# ifndef SUBLANG_ARABIC_SAUDI_ARABIA
+# define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
+# endif
+# ifndef SUBLANG_ARABIC_IRAQ
+# define SUBLANG_ARABIC_IRAQ 0x02
+# endif
+# ifndef SUBLANG_ARABIC_EGYPT
+# define SUBLANG_ARABIC_EGYPT 0x03
+# endif
+# ifndef SUBLANG_ARABIC_LIBYA
+# define SUBLANG_ARABIC_LIBYA 0x04
+# endif
+# ifndef SUBLANG_ARABIC_ALGERIA
+# define SUBLANG_ARABIC_ALGERIA 0x05
+# endif
+# ifndef SUBLANG_ARABIC_MOROCCO
+# define SUBLANG_ARABIC_MOROCCO 0x06
+# endif
+# ifndef SUBLANG_ARABIC_TUNISIA
+# define SUBLANG_ARABIC_TUNISIA 0x07
+# endif
+# ifndef SUBLANG_ARABIC_OMAN
+# define SUBLANG_ARABIC_OMAN 0x08
+# endif
+# ifndef SUBLANG_ARABIC_YEMEN
+# define SUBLANG_ARABIC_YEMEN 0x09
+# endif
+# ifndef SUBLANG_ARABIC_SYRIA
+# define SUBLANG_ARABIC_SYRIA 0x0a
+# endif
+# ifndef SUBLANG_ARABIC_JORDAN
+# define SUBLANG_ARABIC_JORDAN 0x0b
+# endif
+# ifndef SUBLANG_ARABIC_LEBANON
+# define SUBLANG_ARABIC_LEBANON 0x0c
+# endif
+# ifndef SUBLANG_ARABIC_KUWAIT
+# define SUBLANG_ARABIC_KUWAIT 0x0d
+# endif
+# ifndef SUBLANG_ARABIC_UAE
+# define SUBLANG_ARABIC_UAE 0x0e
+# endif
+# ifndef SUBLANG_ARABIC_BAHRAIN
+# define SUBLANG_ARABIC_BAHRAIN 0x0f
+# endif
+# ifndef SUBLANG_ARABIC_QATAR
+# define SUBLANG_ARABIC_QATAR 0x10
+# endif
+# ifndef SUBLANG_AZERI_LATIN
+# define SUBLANG_AZERI_LATIN 0x01
+# endif
+# ifndef SUBLANG_AZERI_CYRILLIC
+# define SUBLANG_AZERI_CYRILLIC 0x02
+# endif
+# ifndef SUBLANG_BENGALI_INDIA
+# define SUBLANG_BENGALI_INDIA 0x00
+# endif
+# ifndef SUBLANG_BENGALI_BANGLADESH
+# define SUBLANG_BENGALI_BANGLADESH 0x01
+# endif
+# ifndef SUBLANG_CHINESE_MACAU
+# define SUBLANG_CHINESE_MACAU 0x05
+# endif
+# ifndef SUBLANG_ENGLISH_SOUTH_AFRICA
+# define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
+# endif
+# ifndef SUBLANG_ENGLISH_JAMAICA
+# define SUBLANG_ENGLISH_JAMAICA 0x08
+# endif
+# ifndef SUBLANG_ENGLISH_CARIBBEAN
+# define SUBLANG_ENGLISH_CARIBBEAN 0x09
+# endif
+# ifndef SUBLANG_ENGLISH_BELIZE
+# define SUBLANG_ENGLISH_BELIZE 0x0a
+# endif
+# ifndef SUBLANG_ENGLISH_TRINIDAD
+# define SUBLANG_ENGLISH_TRINIDAD 0x0b
+# endif
+# ifndef SUBLANG_ENGLISH_ZIMBABWE
+# define SUBLANG_ENGLISH_ZIMBABWE 0x0c
+# endif
+# ifndef SUBLANG_ENGLISH_PHILIPPINES
+# define SUBLANG_ENGLISH_PHILIPPINES 0x0d
+# endif
+# ifndef SUBLANG_ENGLISH_INDONESIA
+# define SUBLANG_ENGLISH_INDONESIA 0x0e
+# endif
+# ifndef SUBLANG_ENGLISH_HONGKONG
+# define SUBLANG_ENGLISH_HONGKONG 0x0f
+# endif
+# ifndef SUBLANG_ENGLISH_INDIA
+# define SUBLANG_ENGLISH_INDIA 0x10
+# endif
+# ifndef SUBLANG_ENGLISH_MALAYSIA
+# define SUBLANG_ENGLISH_MALAYSIA 0x11
+# endif
+# ifndef SUBLANG_ENGLISH_SINGAPORE
+# define SUBLANG_ENGLISH_SINGAPORE 0x12
+# endif
+# ifndef SUBLANG_FRENCH_LUXEMBOURG
+# define SUBLANG_FRENCH_LUXEMBOURG 0x05
+# endif
+# ifndef SUBLANG_FRENCH_MONACO
+# define SUBLANG_FRENCH_MONACO 0x06
+# endif
+# ifndef SUBLANG_FRENCH_WESTINDIES
+# define SUBLANG_FRENCH_WESTINDIES 0x07
+# endif
+# ifndef SUBLANG_FRENCH_REUNION
+# define SUBLANG_FRENCH_REUNION 0x08
+# endif
+# ifndef SUBLANG_FRENCH_CONGO
+# define SUBLANG_FRENCH_CONGO 0x09
+# endif
+# ifndef SUBLANG_FRENCH_SENEGAL
+# define SUBLANG_FRENCH_SENEGAL 0x0a
+# endif
+# ifndef SUBLANG_FRENCH_CAMEROON
+# define SUBLANG_FRENCH_CAMEROON 0x0b
+# endif
+# ifndef SUBLANG_FRENCH_COTEDIVOIRE
+# define SUBLANG_FRENCH_COTEDIVOIRE 0x0c
+# endif
+# ifndef SUBLANG_FRENCH_MALI
+# define SUBLANG_FRENCH_MALI 0x0d
+# endif
+# ifndef SUBLANG_FRENCH_MOROCCO
+# define SUBLANG_FRENCH_MOROCCO 0x0e
+# endif
+# ifndef SUBLANG_FRENCH_HAITI
+# define SUBLANG_FRENCH_HAITI 0x0f
+# endif
+# ifndef SUBLANG_GERMAN_LUXEMBOURG
+# define SUBLANG_GERMAN_LUXEMBOURG 0x04
+# endif
+# ifndef SUBLANG_GERMAN_LIECHTENSTEIN
+# define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+# endif
+# ifndef SUBLANG_KASHMIRI_INDIA
+# define SUBLANG_KASHMIRI_INDIA 0x02
+# endif
+# ifndef SUBLANG_MALAY_MALAYSIA
+# define SUBLANG_MALAY_MALAYSIA 0x01
+# endif
+# ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
+# define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+# endif
+# ifndef SUBLANG_NEPALI_INDIA
+# define SUBLANG_NEPALI_INDIA 0x02
+# endif
+# ifndef SUBLANG_PUNJABI_INDIA
+# define SUBLANG_PUNJABI_INDIA 0x00
+# endif
+# ifndef SUBLANG_PUNJABI_PAKISTAN
+# define SUBLANG_PUNJABI_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_ROMANIAN_ROMANIA
+# define SUBLANG_ROMANIAN_ROMANIA 0x00
+# endif
+# ifndef SUBLANG_ROMANIAN_MOLDOVA
+# define SUBLANG_ROMANIAN_MOLDOVA 0x01
+# endif
+# ifndef SUBLANG_SERBIAN_LATIN
+# define SUBLANG_SERBIAN_LATIN 0x02
+# endif
+# ifndef SUBLANG_SERBIAN_CYRILLIC
+# define SUBLANG_SERBIAN_CYRILLIC 0x03
+# endif
+# ifndef SUBLANG_SINDHI_INDIA
+# define SUBLANG_SINDHI_INDIA 0x00
+# endif
+# ifndef SUBLANG_SINDHI_PAKISTAN
+# define SUBLANG_SINDHI_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_SPANISH_GUATEMALA
+# define SUBLANG_SPANISH_GUATEMALA 0x04
+# endif
+# ifndef SUBLANG_SPANISH_COSTA_RICA
+# define SUBLANG_SPANISH_COSTA_RICA 0x05
+# endif
+# ifndef SUBLANG_SPANISH_PANAMA
+# define SUBLANG_SPANISH_PANAMA 0x06
+# endif
+# ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC
+# define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+# endif
+# ifndef SUBLANG_SPANISH_VENEZUELA
+# define SUBLANG_SPANISH_VENEZUELA 0x08
+# endif
+# ifndef SUBLANG_SPANISH_COLOMBIA
+# define SUBLANG_SPANISH_COLOMBIA 0x09
+# endif
+# ifndef SUBLANG_SPANISH_PERU
+# define SUBLANG_SPANISH_PERU 0x0a
+# endif
+# ifndef SUBLANG_SPANISH_ARGENTINA
+# define SUBLANG_SPANISH_ARGENTINA 0x0b
+# endif
+# ifndef SUBLANG_SPANISH_ECUADOR
+# define SUBLANG_SPANISH_ECUADOR 0x0c
+# endif
+# ifndef SUBLANG_SPANISH_CHILE
+# define SUBLANG_SPANISH_CHILE 0x0d
+# endif
+# ifndef SUBLANG_SPANISH_URUGUAY
+# define SUBLANG_SPANISH_URUGUAY 0x0e
+# endif
+# ifndef SUBLANG_SPANISH_PARAGUAY
+# define SUBLANG_SPANISH_PARAGUAY 0x0f
+# endif
+# ifndef SUBLANG_SPANISH_BOLIVIA
+# define SUBLANG_SPANISH_BOLIVIA 0x10
+# endif
+# ifndef SUBLANG_SPANISH_EL_SALVADOR
+# define SUBLANG_SPANISH_EL_SALVADOR 0x11
+# endif
+# ifndef SUBLANG_SPANISH_HONDURAS
+# define SUBLANG_SPANISH_HONDURAS 0x12
+# endif
+# ifndef SUBLANG_SPANISH_NICARAGUA
+# define SUBLANG_SPANISH_NICARAGUA 0x13
+# endif
+# ifndef SUBLANG_SPANISH_PUERTO_RICO
+# define SUBLANG_SPANISH_PUERTO_RICO 0x14
+# endif
+# ifndef SUBLANG_SWEDISH_FINLAND
+# define SUBLANG_SWEDISH_FINLAND 0x02
+# endif
+# ifndef SUBLANG_TAMAZIGHT_ARABIC
+# define SUBLANG_TAMAZIGHT_ARABIC 0x01
+# endif
+# ifndef SUBLANG_TAMAZIGHT_LATIN
+# define SUBLANG_TAMAZIGHT_LATIN 0x02
+# endif
+# ifndef SUBLANG_TIGRINYA_ETHIOPIA
+# define SUBLANG_TIGRINYA_ETHIOPIA 0x00
+# endif
+# ifndef SUBLANG_TIGRINYA_ERITREA
+# define SUBLANG_TIGRINYA_ERITREA 0x01
+# endif
+# ifndef SUBLANG_URDU_PAKISTAN
+# define SUBLANG_URDU_PAKISTAN 0x01
+# endif
+# ifndef SUBLANG_URDU_INDIA
+# define SUBLANG_URDU_INDIA 0x02
+# endif
+# ifndef SUBLANG_UZBEK_LATIN
+# define SUBLANG_UZBEK_LATIN 0x01
+# endif
+# ifndef SUBLANG_UZBEK_CYRILLIC
+# define SUBLANG_UZBEK_CYRILLIC 0x02
+# endif
+#endif
+
+# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+/* MacOS X 10.2 or newer */
+
+/* Canonicalize a MacOS X locale name to a Unix locale name.
+ NAME is a sufficiently large buffer.
+ On input, it contains the MacOS X locale name.
+ On output, it contains the Unix locale name. */
+void
+_nl_locale_name_canonicalize (char *name)
+{
+ /* This conversion is based on a posting by
+ Deborah GoldSmith <goldsmit at apple.com> on 2005-03-08,
+ http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */
+
+ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and
+ ISO 3166) names. Prior to MacOS X 10.3, there is no API for doing this.
+ Therefore we do it ourselves, using a table based on the results of the
+ MacOS X 10.3.8 function
+ CFLocaleCreateCanonicalLocaleIdentifierFromString(). */
+ typedef struct { const char legacy[21+1]; const char unixy[5+1]; }
+ legacy_entry;
+ static const legacy_entry legacy_table[] = {
+ { "Afrikaans", "af" },
+ { "Albanian", "sq" },
+ { "Amharic", "am" },
+ { "Arabic", "ar" },
+ { "Armenian", "hy" },
+ { "Assamese", "as" },
+ { "Aymara", "ay" },
+ { "Azerbaijani", "az" },
+ { "Basque", "eu" },
+ { "Belarusian", "be" },
+ { "Belorussian", "be" },
+ { "Bengali", "bn" },
+ { "Brazilian Portugese", "pt_BR" },
+ { "Brazilian Portuguese", "pt_BR" },
+ { "Breton", "br" },
+ { "Bulgarian", "bg" },
+ { "Burmese", "my" },
+ { "Byelorussian", "be" },
+ { "Catalan", "ca" },
+ { "Chewa", "ny" },
+ { "Chichewa", "ny" },
+ { "Chinese", "zh" },
+ { "Chinese, Simplified", "zh_CN" },
+ { "Chinese, Traditional", "zh_TW" },
+ { "Chinese, Tradtional", "zh_TW" },
+ { "Croatian", "hr" },
+ { "Czech", "cs" },
+ { "Danish", "da" },
+ { "Dutch", "nl" },
+ { "Dzongkha", "dz" },
+ { "English", "en" },
+ { "Esperanto", "eo" },
+ { "Estonian", "et" },
+ { "Faroese", "fo" },
+ { "Farsi", "fa" },
+ { "Finnish", "fi" },
+ { "Flemish", "nl_BE" },
+ { "French", "fr" },
+ { "Galician", "gl" },
+ { "Gallegan", "gl" },
+ { "Georgian", "ka" },
+ { "German", "de" },
+ { "Greek", "el" },
+ { "Greenlandic", "kl" },
+ { "Guarani", "gn" },
+ { "Gujarati", "gu" },
+ { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */
+ { "Hebrew", "he" },
+ { "Hindi", "hi" },
+ { "Hungarian", "hu" },
+ { "Icelandic", "is" },
+ { "Indonesian", "id" },
+ { "Inuktitut", "iu" },
+ { "Irish", "ga" },
+ { "Italian", "it" },
+ { "Japanese", "ja" },
+ { "Javanese", "jv" },
+ { "Kalaallisut", "kl" },
+ { "Kannada", "kn" },
+ { "Kashmiri", "ks" },
+ { "Kazakh", "kk" },
+ { "Khmer", "km" },
+ { "Kinyarwanda", "rw" },
+ { "Kirghiz", "ky" },
+ { "Korean", "ko" },
+ { "Kurdish", "ku" },
+ { "Latin", "la" },
+ { "Latvian", "lv" },
+ { "Lithuanian", "lt" },
+ { "Macedonian", "mk" },
+ { "Malagasy", "mg" },
+ { "Malay", "ms" },
+ { "Malayalam", "ml" },
+ { "Maltese", "mt" },
+ { "Manx", "gv" },
+ { "Marathi", "mr" },
+ { "Moldavian", "mo" },
+ { "Mongolian", "mn" },
+ { "Nepali", "ne" },
+ { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */
+ { "Nyanja", "ny" },
+ { "Nynorsk", "nn" },
+ { "Oriya", "or" },
+ { "Oromo", "om" },
+ { "Panjabi", "pa" },
+ { "Pashto", "ps" },
+ { "Persian", "fa" },
+ { "Polish", "pl" },
+ { "Portuguese", "pt" },
+ { "Portuguese, Brazilian", "pt_BR" },
+ { "Punjabi", "pa" },
+ { "Pushto", "ps" },
+ { "Quechua", "qu" },
+ { "Romanian", "ro" },
+ { "Ruanda", "rw" },
+ { "Rundi", "rn" },
+ { "Russian", "ru" },
+ { "Sami", "se_NO" }, /* Not just "se". */
+ { "Sanskrit", "sa" },
+ { "Scottish", "gd" },
+ { "Serbian", "sr" },
+ { "Simplified Chinese", "zh_CN" },
+ { "Sindhi", "sd" },
+ { "Sinhalese", "si" },
+ { "Slovak", "sk" },
+ { "Slovenian", "sl" },
+ { "Somali", "so" },
+ { "Spanish", "es" },
+ { "Sundanese", "su" },
+ { "Swahili", "sw" },
+ { "Swedish", "sv" },
+ { "Tagalog", "tl" },
+ { "Tajik", "tg" },
+ { "Tajiki", "tg" },
+ { "Tamil", "ta" },
+ { "Tatar", "tt" },
+ { "Telugu", "te" },
+ { "Thai", "th" },
+ { "Tibetan", "bo" },
+ { "Tigrinya", "ti" },
+ { "Tongan", "to" },
+ { "Traditional Chinese", "zh_TW" },
+ { "Turkish", "tr" },
+ { "Turkmen", "tk" },
+ { "Uighur", "ug" },
+ { "Ukrainian", "uk" },
+ { "Urdu", "ur" },
+ { "Uzbek", "uz" },
+ { "Vietnamese", "vi" },
+ { "Welsh", "cy" },
+ { "Yiddish", "yi" }
+ };
+
+ /* Convert new-style locale names with language tags (ISO 639 and ISO 15924)
+ to Unix (ISO 639 and ISO 3166) names. */
+ typedef struct { const char langtag[7+1]; const char unixy[12+1]; }
+ langtag_entry;
+ static const langtag_entry langtag_table[] = {
+ /* MacOS X has "az-Arab", "az-Cyrl", "az-Latn".
+ The default script for az on Unix is Latin. */
+ { "az-Latn", "az" },
+ /* MacOS X has "ga-dots". Does not yet exist on Unix. */
+ { "ga-dots", "ga" },
+ /* MacOS X has "kk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "mn-Cyrl", "mn-Mong".
+ The default script for mn on Unix is Cyrillic. */
+ { "mn-Cyrl", "mn" },
+ /* MacOS X has "ms-Arab", "ms-Latn".
+ The default script for ms on Unix is Latin. */
+ { "ms-Latn", "ms" },
+ /* MacOS X has "tg-Cyrl".
+ The default script for tg on Unix is Cyrillic. */
+ { "tg-Cyrl", "tg" },
+ /* MacOS X has "tk-Cyrl". Does not yet exist on Unix. */
+ /* MacOS X has "tt-Cyrl".
+ The default script for tt on Unix is Cyrillic. */
+ { "tt-Cyrl", "tt" },
+ /* MacOS X has "zh-Hans", "zh-Hant".
+ Country codes are used to distinguish these on Unix. */
+ { "zh-Hans", "zh_CN" },
+ { "zh-Hant", "zh_TW" }
+ };
+
+ /* Convert script names (ISO 15924) to Unix conventions.
+ See http://www.unicode.org/iso15924/iso15924-codes.html */
+ typedef struct { const char script[4+1]; const char unixy[9+1]; }
+ script_entry;
+ static const script_entry script_table[] = {
+ { "Arab", "arabic" },
+ { "Cyrl", "cyrillic" },
+ { "Mong", "mongolian" }
+ };
+
+ /* Step 1: Convert using legacy_table. */
+ if (name[0] >= 'A' && name[0] <= 'Z')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (legacy_table) / sizeof (legacy_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in legacy_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const legacy_entry *p = &legacy_table[i];
+ if (strcmp (name, p->legacy) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, legacy_table[i1].legacy) == 0)
+ {
+ strcpy (name, legacy_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 2: Convert using langtag_table and script_table. */
+ if (strlen (name) == 7 && name[2] == '-')
+ {
+ unsigned int i1, i2;
+ i1 = 0;
+ i2 = sizeof (langtag_table) / sizeof (langtag_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if name occurs in langtag_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const langtag_entry *p = &langtag_table[i];
+ if (strcmp (name, p->langtag) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name, langtag_table[i1].langtag) == 0)
+ {
+ strcpy (name, langtag_table[i1].unixy);
+ return;
+ }
+
+ i1 = 0;
+ i2 = sizeof (script_table) / sizeof (script_entry);
+ while (i2 - i1 > 1)
+ {
+ /* At this point we know that if (name + 3) occurs in script_table,
+ its index must be >= i1 and < i2. */
+ unsigned int i = (i1 + i2) >> 1;
+ const script_entry *p = &script_table[i];
+ if (strcmp (name + 3, p->script) < 0)
+ i2 = i;
+ else
+ i1 = i;
+ }
+ if (strcmp (name + 3, script_table[i1].script) == 0)
+ {
+ name[2] = '@';
+ strcpy (name + 3, script_table[i1].unixy);
+ return;
+ }
+ }
+
+ /* Step 3: Convert new-style dash to Unix underscore. */
+ {
+ char *p;
+ for (p = name; *p != '\0'; p++)
+ if (*p == '-')
+ *p = '_';
+ }
+}
+
+#endif
+
+/* XPG3 defines the result of 'setlocale (category, NULL)' as:
+ "Directs 'setlocale()' to query 'category' and return the current
+ setting of 'local'."
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* Determine the current locale's name, and canonicalize it into XPG syntax
+ language[_territory][.codeset][@modifier]
+ The codeset part in the result is not reliable; the locale_charset()
+ should be used for codeset information instead.
+ The result must not be freed; it is statically allocated. */
+
+const char *
+_nl_locale_name_posix (int category, const char *categoryname)
+{
+ /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'.
+ On some systems this can be done by the 'setlocale' function itself. */
+#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
+ return setlocale (category, NULL);
+#else
+ const char *retval;
+
+ /* Setting of LC_ALL overrides all other. */
+ retval = getenv ("LC_ALL");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval != NULL && retval[0] != '\0')
+ return retval;
+
+ return NULL;
+#endif
+}
+
+const char *
+_nl_locale_name_default (void)
+{
+ /* POSIX:2001 says:
+ "All implementations shall define a locale as the default locale, to be
+ invoked when no environment variables are set, or set to the empty
+ string. This default locale can be the POSIX locale or any other
+ implementation-defined locale. Some implementations may provide
+ facilities for local installation administrators to set the default
+ locale, customizing it for each location. POSIX:2001 does not require
+ such a facility. */
+
+#if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined(WIN32_NATIVE))
+
+ /* The system does not have a way of setting the locale, other than the
+ POSIX specified environment variables. We use C as default locale. */
+ return "C";
+
+#else
+
+ /* Return an XPG style locale name language[_territory][@modifier].
+ Don't even bother determining the codeset; it's not useful in this
+ context, because message catalogs are not specific to a single
+ codeset. */
+
+# if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE
+ /* MacOS X 10.2 or newer */
+ {
+ /* Cache the locale name, since CoreFoundation calls are expensive. */
+ static const char *cached_localename;
+
+ if (cached_localename == NULL)
+ {
+ char namebuf[256];
+# if HAVE_CFLOCALECOPYCURRENT /* MacOS X 10.3 or newer */
+ CFLocaleRef locale = CFLocaleCopyCurrent ();
+ CFStringRef name = CFLocaleGetIdentifier (locale);
+
+ if (CFStringGetCString (name, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ _nl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+ CFRelease (locale);
+# elif HAVE_CFPREFERENCESCOPYAPPVALUE /* MacOS X 10.2 or newer */
+ CFTypeRef value =
+ CFPreferencesCopyAppValue (CFSTR ("AppleLocale"),
+ kCFPreferencesCurrentApplication);
+ if (value != NULL
+ && CFGetTypeID (value) == CFStringGetTypeID ()
+ && CFStringGetCString ((CFStringRef)value, namebuf, sizeof(namebuf),
+ kCFStringEncodingASCII))
+ {
+ _nl_locale_name_canonicalize (namebuf);
+ cached_localename = strdup (namebuf);
+ }
+# endif
+ if (cached_localename == NULL)
+ cached_localename = "C";
+ }
+ return cached_localename;
+ }
+
+# endif
+
+# if defined(WIN32_NATIVE) /* WIN32, not Cygwin */
+ {
+ LCID lcid;
+ LANGID langid;
+ int primary, sub;
+
+ /* Use native Win32 API locale ID. */
+ lcid = GetThreadLocale ();
+
+ /* Strip off the sorting rules, keep only the language part. */
+ langid = LANGIDFROMLCID (lcid);
+
+ /* Split into language and territory part. */
+ primary = PRIMARYLANGID (langid);
+ sub = SUBLANGID (langid);
+
+ /* Dispatch on language.
+ See also http://www.unicode.org/unicode/onlinedat/languages.html .
+ For details about languages, see http://www.ethnologue.com/ . */
+ switch (primary)
+ {
+ case LANG_AFRIKAANS: return "af_ZA";
+ case LANG_ALBANIAN: return "sq_AL";
+ case LANG_AMHARIC: return "am_ET";
+ case LANG_ARABIC:
+ switch (sub)
+ {
+ case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA";
+ case SUBLANG_ARABIC_IRAQ: return "ar_IQ";
+ case SUBLANG_ARABIC_EGYPT: return "ar_EG";
+ case SUBLANG_ARABIC_LIBYA: return "ar_LY";
+ case SUBLANG_ARABIC_ALGERIA: return "ar_DZ";
+ case SUBLANG_ARABIC_MOROCCO: return "ar_MA";
+ case SUBLANG_ARABIC_TUNISIA: return "ar_TN";
+ case SUBLANG_ARABIC_OMAN: return "ar_OM";
+ case SUBLANG_ARABIC_YEMEN: return "ar_YE";
+ case SUBLANG_ARABIC_SYRIA: return "ar_SY";
+ case SUBLANG_ARABIC_JORDAN: return "ar_JO";
+ case SUBLANG_ARABIC_LEBANON: return "ar_LB";
+ case SUBLANG_ARABIC_KUWAIT: return "ar_KW";
+ case SUBLANG_ARABIC_UAE: return "ar_AE";
+ case SUBLANG_ARABIC_BAHRAIN: return "ar_BH";
+ case SUBLANG_ARABIC_QATAR: return "ar_QA";
+ }
+ return "ar";
+ case LANG_ARMENIAN: return "hy_AM";
+ case LANG_ASSAMESE: return "as_IN";
+ case LANG_AZERI:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */
+ case SUBLANG_AZERI_LATIN: return "az_AZ at latin";
+ case SUBLANG_AZERI_CYRILLIC: return "az_AZ at cyrillic";
+ }
+ return "az";
+ case LANG_BASQUE:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "eu_ES";
+ }
+ return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */
+ case LANG_BELARUSIAN: return "be_BY";
+ case LANG_BENGALI:
+ switch (sub)
+ {
+ case SUBLANG_BENGALI_INDIA: return "bn_IN";
+ case SUBLANG_BENGALI_BANGLADESH: return "bn_BD";
+ }
+ return "bn";
+ case LANG_BULGARIAN: return "bg_BG";
+ case LANG_BURMESE: return "my_MM";
+ case LANG_CAMBODIAN: return "km_KH";
+ case LANG_CATALAN: return "ca_ES";
+ case LANG_CHEROKEE: return "chr_US";
+ case LANG_CHINESE:
+ switch (sub)
+ {
+ case SUBLANG_CHINESE_TRADITIONAL: return "zh_TW";
+ case SUBLANG_CHINESE_SIMPLIFIED: return "zh_CN";
+ case SUBLANG_CHINESE_HONGKONG: return "zh_HK";
+ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG";
+ case SUBLANG_CHINESE_MACAU: return "zh_MO";
+ }
+ return "zh";
+ case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN
+ * What used to be called Serbo-Croatian
+ * should really now be two separate
+ * languages because of political reasons.
+ * (Says tml, who knows nothing about Serbian
+ * or Croatian.)
+ * (I can feel those flames coming already.)
+ */
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "hr_HR";
+ case SUBLANG_SERBIAN_LATIN: return "sr_CS";
+ case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS at cyrillic";
+ }
+ return "hr";
+ case LANG_CZECH: return "cs_CZ";
+ case LANG_DANISH: return "da_DK";
+ case LANG_DIVEHI: return "dv_MV";
+ case LANG_DUTCH:
+ switch (sub)
+ {
+ case SUBLANG_DUTCH: return "nl_NL";
+ case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE";
+ }
+ return "nl";
+ case LANG_EDO: return "bin_NG";
+ case LANG_ENGLISH:
+ switch (sub)
+ {
+ /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought
+ * English was the language spoken in England.
+ * Oh well.
+ */
+ case SUBLANG_ENGLISH_US: return "en_US";
+ case SUBLANG_ENGLISH_UK: return "en_GB";
+ case SUBLANG_ENGLISH_AUS: return "en_AU";
+ case SUBLANG_ENGLISH_CAN: return "en_CA";
+ case SUBLANG_ENGLISH_NZ: return "en_NZ";
+ case SUBLANG_ENGLISH_EIRE: return "en_IE";
+ case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA";
+ case SUBLANG_ENGLISH_JAMAICA: return "en_JM";
+ case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */
+ case SUBLANG_ENGLISH_BELIZE: return "en_BZ";
+ case SUBLANG_ENGLISH_TRINIDAD: return "en_TT";
+ case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW";
+ case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH";
+ case SUBLANG_ENGLISH_INDONESIA: return "en_ID";
+ case SUBLANG_ENGLISH_HONGKONG: return "en_HK";
+ case SUBLANG_ENGLISH_INDIA: return "en_IN";
+ case SUBLANG_ENGLISH_MALAYSIA: return "en_MY";
+ case SUBLANG_ENGLISH_SINGAPORE: return "en_SG";
+ }
+ return "en";
+ case LANG_ESTONIAN: return "et_EE";
+ case LANG_FAEROESE: return "fo_FO";
+ case LANG_FARSI: return "fa_IR";
+ case LANG_FINNISH: return "fi_FI";
+ case LANG_FRENCH:
+ switch (sub)
+ {
+ case SUBLANG_FRENCH: return "fr_FR";
+ case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE";
+ case SUBLANG_FRENCH_CANADIAN: return "fr_CA";
+ case SUBLANG_FRENCH_SWISS: return "fr_CH";
+ case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU";
+ case SUBLANG_FRENCH_MONACO: return "fr_MC";
+ case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */
+ case SUBLANG_FRENCH_REUNION: return "fr_RE";
+ case SUBLANG_FRENCH_CONGO: return "fr_CG";
+ case SUBLANG_FRENCH_SENEGAL: return "fr_SN";
+ case SUBLANG_FRENCH_CAMEROON: return "fr_CM";
+ case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI";
+ case SUBLANG_FRENCH_MALI: return "fr_ML";
+ case SUBLANG_FRENCH_MOROCCO: return "fr_MA";
+ case SUBLANG_FRENCH_HAITI: return "fr_HT";
+ }
+ return "fr";
+ case LANG_FRISIAN: return "fy_NL";
+ case LANG_FULFULDE:
+ /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */
+ return "ff_NG";
+ case LANG_GAELIC:
+ switch (sub)
+ {
+ case 0x01: /* SCOTTISH */ return "gd_GB";
+ case 0x02: /* IRISH */ return "ga_IE";
+ }
+ return "C";
+ case LANG_GALICIAN: return "gl_ES";
+ case LANG_GEORGIAN: return "ka_GE";
+ case LANG_GERMAN:
+ switch (sub)
+ {
+ case SUBLANG_GERMAN: return "de_DE";
+ case SUBLANG_GERMAN_SWISS: return "de_CH";
+ case SUBLANG_GERMAN_AUSTRIAN: return "de_AT";
+ case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU";
+ case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI";
+ }
+ return "de";
+ case LANG_GREEK: return "el_GR";
+ case LANG_GUARANI: return "gn_PY";
+ case LANG_GUJARATI: return "gu_IN";
+ case LANG_HAUSA: return "ha_NG";
+ case LANG_HAWAIIAN:
+ /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers)
+ or Hawaii Creole English ("cpe_US", 600000 speakers)? */
+ return "cpe_US";
+ case LANG_HEBREW: return "he_IL";
+ case LANG_HINDI: return "hi_IN";
+ case LANG_HUNGARIAN: return "hu_HU";
+ case LANG_IBIBIO: return "nic_NG";
+ case LANG_ICELANDIC: return "is_IS";
+ case LANG_IGBO: return "ig_NG";
+ case LANG_INDONESIAN: return "id_ID";
+ case LANG_INUKTITUT: return "iu_CA";
+ case LANG_ITALIAN:
+ switch (sub)
+ {
+ case SUBLANG_ITALIAN: return "it_IT";
+ case SUBLANG_ITALIAN_SWISS: return "it_CH";
+ }
+ return "it";
+ case LANG_JAPANESE: return "ja_JP";
+ case LANG_KANNADA: return "kn_IN";
+ case LANG_KANURI: return "kr_NG";
+ case LANG_KASHMIRI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ks_PK";
+ case SUBLANG_KASHMIRI_INDIA: return "ks_IN";
+ }
+ return "ks";
+ case LANG_KAZAK: return "kk_KZ";
+ case LANG_KONKANI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "kok_IN";
+ case LANG_KOREAN: return "ko_KR";
+ case LANG_KYRGYZ: return "ky_KG";
+ case LANG_LAO: return "lo_LA";
+ case LANG_LATIN: return "la_VA";
+ case LANG_LATVIAN: return "lv_LV";
+ case LANG_LITHUANIAN: return "lt_LT";
+ case LANG_MACEDONIAN: return "mk_MK";
+ case LANG_MALAY:
+ switch (sub)
+ {
+ case SUBLANG_MALAY_MALAYSIA: return "ms_MY";
+ case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN";
+ }
+ return "ms";
+ case LANG_MALAYALAM: return "ml_IN";
+ case LANG_MALTESE: return "mt_MT";
+ case LANG_MANIPURI:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "mni_IN";
+ case LANG_MARATHI: return "mr_IN";
+ case LANG_MONGOLIAN:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "mn_MN";
+ }
+ return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */
+ case LANG_NEPALI:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ne_NP";
+ case SUBLANG_NEPALI_INDIA: return "ne_IN";
+ }
+ return "ne";
+ case LANG_NORWEGIAN:
+ switch (sub)
+ {
+ case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO";
+ case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO";
+ }
+ return "no";
+ case LANG_ORIYA: return "or_IN";
+ case LANG_OROMO: return "om_ET";
+ case LANG_PAPIAMENTU: return "pap_AN";
+ case LANG_PASHTO:
+ return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */
+ case LANG_POLISH: return "pl_PL";
+ case LANG_PORTUGUESE:
+ switch (sub)
+ {
+ case SUBLANG_PORTUGUESE: return "pt_PT";
+ /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT.
+ Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */
+ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR";
+ }
+ return "pt";
+ case LANG_PUNJABI:
+ switch (sub)
+ {
+ case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */
+ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */
+ }
+ return "pa";
+ case LANG_RHAETO_ROMANCE: return "rm_CH";
+ case LANG_ROMANIAN:
+ switch (sub)
+ {
+ case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO";
+ case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD";
+ }
+ return "ro";
+ case LANG_RUSSIAN:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ru_RU";
+ }
+ return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */
+ case LANG_SAAMI: /* actually Northern Sami */ return "se_NO";
+ case LANG_SANSKRIT: return "sa_IN";
+ case LANG_SINDHI:
+ switch (sub)
+ {
+ case SUBLANG_SINDHI_INDIA: return "sd_IN";
+ case SUBLANG_SINDHI_PAKISTAN: return "sd_PK";
+ }
+ return "sd";
+ case LANG_SINHALESE: return "si_LK";
+ case LANG_SLOVAK: return "sk_SK";
+ case LANG_SLOVENIAN: return "sl_SI";
+ case LANG_SOMALI: return "so_SO";
+ case LANG_SORBIAN:
+ /* FIXME: Adjust this when such locales appear on Unix. */
+ return "wen_DE";
+ case LANG_SPANISH:
+ switch (sub)
+ {
+ case SUBLANG_SPANISH: return "es_ES";
+ case SUBLANG_SPANISH_MEXICAN: return "es_MX";
+ case SUBLANG_SPANISH_MODERN:
+ return "es_ES at modern"; /* not seen on Unix */
+ case SUBLANG_SPANISH_GUATEMALA: return "es_GT";
+ case SUBLANG_SPANISH_COSTA_RICA: return "es_CR";
+ case SUBLANG_SPANISH_PANAMA: return "es_PA";
+ case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO";
+ case SUBLANG_SPANISH_VENEZUELA: return "es_VE";
+ case SUBLANG_SPANISH_COLOMBIA: return "es_CO";
+ case SUBLANG_SPANISH_PERU: return "es_PE";
+ case SUBLANG_SPANISH_ARGENTINA: return "es_AR";
+ case SUBLANG_SPANISH_ECUADOR: return "es_EC";
+ case SUBLANG_SPANISH_CHILE: return "es_CL";
+ case SUBLANG_SPANISH_URUGUAY: return "es_UY";
+ case SUBLANG_SPANISH_PARAGUAY: return "es_PY";
+ case SUBLANG_SPANISH_BOLIVIA: return "es_BO";
+ case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV";
+ case SUBLANG_SPANISH_HONDURAS: return "es_HN";
+ case SUBLANG_SPANISH_NICARAGUA: return "es_NI";
+ case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR";
+ }
+ return "es";
+ case LANG_SUTU: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */
+ case LANG_SWAHILI: return "sw_KE";
+ case LANG_SWEDISH:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "sv_SE";
+ case SUBLANG_SWEDISH_FINLAND: return "sv_FI";
+ }
+ return "sv";
+ case LANG_SYRIAC: return "syr_TR"; /* An extinct language. */
+ case LANG_TAGALOG: return "tl_PH";
+ case LANG_TAJIK: return "tg_TJ";
+ case LANG_TAMAZIGHT:
+ switch (sub)
+ {
+ /* FIXME: Adjust this when Tamazight locales appear on Unix. */
+ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA at arabic";
+ case SUBLANG_TAMAZIGHT_LATIN: return "ber_MA at latin";
+ }
+ return "ber_MA";
+ case LANG_TAMIL:
+ switch (sub)
+ {
+ case SUBLANG_DEFAULT: return "ta_IN";
+ }
+ return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */
+ case LANG_TATAR: return "tt_RU";
+ case LANG_TELUGU: return "te_IN";
+ case LANG_THAI: return "th_TH";
+ case LANG_TIBETAN: return "bo_CN";
+ case LANG_TIGRINYA:
+ switch (sub)
+ {
+ case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET";
+ case SUBLANG_TIGRINYA_ERITREA: return "ti_ER";
+ }
+ return "ti";
+ case LANG_TSONGA: return "ts_ZA";
+ case LANG_TSWANA: return "tn_BW";
+ case LANG_TURKISH: return "tr_TR";
+ case LANG_TURKMEN: return "tk_TM";
+ case LANG_UKRAINIAN: return "uk_UA";
+ case LANG_URDU:
+ switch (sub)
+ {
+ case SUBLANG_URDU_PAKISTAN: return "ur_PK";
+ case SUBLANG_URDU_INDIA: return "ur_IN";
+ }
+ return "ur";
+ case LANG_UZBEK:
+ switch (sub)
+ {
+ case SUBLANG_UZBEK_LATIN: return "uz_UZ";
+ case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ at cyrillic";
+ }
+ return "uz";
+ case LANG_VENDA: return "ve_ZA";
+ case LANG_VIETNAMESE: return "vi_VN";
+ case LANG_WELSH: return "cy_GB";
+ case LANG_XHOSA: return "xh_ZA";
+ case LANG_YI: return "sit_CN";
+ case LANG_YIDDISH: return "yi_IL";
+ case LANG_YORUBA: return "yo_NG";
+ case LANG_ZULU: return "zu_ZA";
+ default: return "C";
+ }
+ }
+# endif
+#endif
+}
+
+const char *
+_nl_locale_name (int category, const char *categoryname)
+{
+ const char *retval;
+
+ retval = _nl_locale_name_posix (category, categoryname);
+ if (retval != NULL)
+ return retval;
+
+ return _nl_locale_name_default ();
+}
diff --git a/intl/lock.c b/intl/lock.c
new file mode 100644
index 0000000..f60a8d9
--- /dev/null
+++ b/intl/lock.c
@@ -0,0 +1,922 @@
+/* Locking in multithreaded situations.
+ Copyright (C) 2005-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Bruno Haible <bruno at clisp.org>, 2005.
+ Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
+ gthr-win32.h. */
+
+#include <config.h>
+
+#include "lock.h"
+
+/* ========================================================================= */
+
+#if USE_POSIX_THREADS
+
+/* Use the POSIX threads library. */
+
+# if PTHREAD_IN_USE_DETECTION_HARD
+
+/* The function to be executed by a dummy thread. */
+static void *
+dummy_thread_func (void *arg)
+{
+ return arg;
+}
+
+int
+glthread_in_use (void)
+{
+ static int tested;
+ static int result; /* 1: linked with -lpthread, 0: only with libc */
+
+ if (!tested)
+ {
+ pthread_t thread;
+
+ if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0)
+ /* Thread creation failed. */
+ result = 0;
+ else
+ {
+ /* Thread creation works. */
+ void *retval;
+ if (pthread_join (thread, &retval) != 0)
+ abort ();
+ result = 1;
+ }
+ tested = 1;
+ }
+ return result;
+}
+
+# endif
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+# if HAVE_PTHREAD_RWLOCK
+
+# if !defined PTHREAD_RWLOCK_INITIALIZER
+
+void
+glthread_rwlock_init (gl_rwlock_t *lock)
+{
+ if (pthread_rwlock_init (&lock->rwlock, NULL) != 0)
+ abort ();
+ lock->initialized = 1;
+}
+
+void
+glthread_rwlock_rdlock (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ {
+ if (pthread_mutex_lock (&lock->guard) != 0)
+ abort ();
+ if (!lock->initialized)
+ glthread_rwlock_init (lock);
+ if (pthread_mutex_unlock (&lock->guard) != 0)
+ abort ();
+ }
+ if (pthread_rwlock_rdlock (&lock->rwlock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_wrlock (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ {
+ if (pthread_mutex_lock (&lock->guard) != 0)
+ abort ();
+ if (!lock->initialized)
+ glthread_rwlock_init (lock);
+ if (pthread_mutex_unlock (&lock->guard) != 0)
+ abort ();
+ }
+ if (pthread_rwlock_wrlock (&lock->rwlock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_unlock (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ abort ();
+ if (pthread_rwlock_unlock (&lock->rwlock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_destroy (gl_rwlock_t *lock)
+{
+ if (!lock->initialized)
+ abort ();
+ if (pthread_rwlock_destroy (&lock->rwlock) != 0)
+ abort ();
+ lock->initialized = 0;
+}
+
+# endif
+
+# else
+
+void
+glthread_rwlock_init (gl_rwlock_t *lock)
+{
+ if (pthread_mutex_init (&lock->lock, NULL) != 0)
+ abort ();
+ if (pthread_cond_init (&lock->waiting_readers, NULL) != 0)
+ abort ();
+ if (pthread_cond_init (&lock->waiting_writers, NULL) != 0)
+ abort ();
+ lock->waiting_writers_count = 0;
+ lock->runcount = 0;
+}
+
+void
+glthread_rwlock_rdlock (gl_rwlock_t *lock)
+{
+ if (pthread_mutex_lock (&lock->lock) != 0)
+ abort ();
+ /* Test whether only readers are currently running, and whether the runcount
+ field will not overflow. */
+ /* POSIX says: "It is implementation-defined whether the calling thread
+ acquires the lock when a writer does not hold the lock and there are
+ writers blocked on the lock." Let's say, no: give the writers a higher
+ priority. */
+ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_readers. */
+ if (pthread_cond_wait (&lock->waiting_readers, &lock->lock) != 0)
+ abort ();
+ }
+ lock->runcount++;
+ if (pthread_mutex_unlock (&lock->lock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_wrlock (gl_rwlock_t *lock)
+{
+ if (pthread_mutex_lock (&lock->lock) != 0)
+ abort ();
+ /* Test whether no readers or writers are currently running. */
+ while (!(lock->runcount == 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_writers. */
+ lock->waiting_writers_count++;
+ if (pthread_cond_wait (&lock->waiting_writers, &lock->lock) != 0)
+ abort ();
+ lock->waiting_writers_count--;
+ }
+ lock->runcount--; /* runcount becomes -1 */
+ if (pthread_mutex_unlock (&lock->lock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_unlock (gl_rwlock_t *lock)
+{
+ if (pthread_mutex_lock (&lock->lock) != 0)
+ abort ();
+ if (lock->runcount < 0)
+ {
+ /* Drop a writer lock. */
+ if (!(lock->runcount == -1))
+ abort ();
+ lock->runcount = 0;
+ }
+ else
+ {
+ /* Drop a reader lock. */
+ if (!(lock->runcount > 0))
+ abort ();
+ lock->runcount--;
+ }
+ if (lock->runcount == 0)
+ {
+ /* POSIX recommends that "write locks shall take precedence over read
+ locks", to avoid "writer starvation". */
+ if (lock->waiting_writers_count > 0)
+ {
+ /* Wake up one of the waiting writers. */
+ if (pthread_cond_signal (&lock->waiting_writers) != 0)
+ abort ();
+ }
+ else
+ {
+ /* Wake up all waiting readers. */
+ if (pthread_cond_broadcast (&lock->waiting_readers) != 0)
+ abort ();
+ }
+ }
+ if (pthread_mutex_unlock (&lock->lock) != 0)
+ abort ();
+}
+
+void
+glthread_rwlock_destroy (gl_rwlock_t *lock)
+{
+ if (pthread_mutex_destroy (&lock->lock) != 0)
+ abort ();
+ if (pthread_cond_destroy (&lock->waiting_readers) != 0)
+ abort ();
+ if (pthread_cond_destroy (&lock->waiting_writers) != 0)
+ abort ();
+}
+
+# endif
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+# if HAVE_PTHREAD_MUTEX_RECURSIVE
+
+# if !(defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP)
+
+void
+glthread_recursive_lock_init (gl_recursive_lock_t *lock)
+{
+ pthread_mutexattr_t attributes;
+
+ if (pthread_mutexattr_init (&attributes) != 0)
+ abort ();
+ if (pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE) != 0)
+ abort ();
+ if (pthread_mutex_init (&lock->recmutex, &attributes) != 0)
+ abort ();
+ if (pthread_mutexattr_destroy (&attributes) != 0)
+ abort ();
+ lock->initialized = 1;
+}
+
+void
+glthread_recursive_lock_lock (gl_recursive_lock_t *lock)
+{
+ if (!lock->initialized)
+ {
+ if (pthread_mutex_lock (&lock->guard) != 0)
+ abort ();
+ if (!lock->initialized)
+ glthread_recursive_lock_init (lock);
+ if (pthread_mutex_unlock (&lock->guard) != 0)
+ abort ();
+ }
+ if (pthread_mutex_lock (&lock->recmutex) != 0)
+ abort ();
+}
+
+void
+glthread_recursive_lock_unlock (gl_recursive_lock_t *lock)
+{
+ if (!lock->initialized)
+ abort ();
+ if (pthread_mutex_unlock (&lock->recmutex) != 0)
+ abort ();
+}
+
+void
+glthread_recursive_lock_destroy (gl_recursive_lock_t *lock)
+{
+ if (!lock->initialized)
+ abort ();
+ if (pthread_mutex_destroy (&lock->recmutex) != 0)
+ abort ();
+ lock->initialized = 0;
+}
+
+# endif
+
+# else
+
+void
+glthread_recursive_lock_init (gl_recursive_lock_t *lock)
+{
+ if (pthread_mutex_init (&lock->mutex, NULL) != 0)
+ abort ();
+ lock->owner = (pthread_t) 0;
+ lock->depth = 0;
+}
+
+void
+glthread_recursive_lock_lock (gl_recursive_lock_t *lock)
+{
+ pthread_t self = pthread_self ();
+ if (lock->owner != self)
+ {
+ if (pthread_mutex_lock (&lock->mutex) != 0)
+ abort ();
+ lock->owner = self;
+ }
+ if (++(lock->depth) == 0) /* wraparound? */
+ abort ();
+}
+
+void
+glthread_recursive_lock_unlock (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != pthread_self ())
+ abort ();
+ if (lock->depth == 0)
+ abort ();
+ if (--(lock->depth) == 0)
+ {
+ lock->owner = (pthread_t) 0;
+ if (pthread_mutex_unlock (&lock->mutex) != 0)
+ abort ();
+ }
+}
+
+void
+glthread_recursive_lock_destroy (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != (pthread_t) 0)
+ abort ();
+ if (pthread_mutex_destroy (&lock->mutex) != 0)
+ abort ();
+}
+
+# endif
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT;
+
+int
+glthread_once_singlethreaded (pthread_once_t *once_control)
+{
+ /* We don't know whether pthread_once_t is an integer type, a floating-point
+ type, a pointer type, or a structure type. */
+ char *firstbyte = (char *)once_control;
+ if (*firstbyte == *(const char *)&fresh_once)
+ {
+ /* First time use of once_control. Invert the first byte. */
+ *firstbyte = ~ *(const char *)&fresh_once;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_PTH_THREADS
+
+/* Use the GNU Pth threads library. */
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+void
+glthread_once_call (void *arg)
+{
+ void (**gl_once_temp_addr) (void) = (void (**) (void)) arg;
+ void (*initfunction) (void) = *gl_once_temp_addr;
+ initfunction ();
+}
+
+int
+glthread_once_singlethreaded (pth_once_t *once_control)
+{
+ /* We know that pth_once_t is an integer type. */
+ if (*once_control == PTH_ONCE_INIT)
+ {
+ /* First time use of once_control. Invert the marker. */
+ *once_control = ~ PTH_ONCE_INIT;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_SOLARIS_THREADS
+
+/* Use the old Solaris threads library. */
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+void
+glthread_recursive_lock_init (gl_recursive_lock_t *lock)
+{
+ if (mutex_init (&lock->mutex, USYNC_THREAD, NULL) != 0)
+ abort ();
+ lock->owner = (thread_t) 0;
+ lock->depth = 0;
+}
+
+void
+glthread_recursive_lock_lock (gl_recursive_lock_t *lock)
+{
+ thread_t self = thr_self ();
+ if (lock->owner != self)
+ {
+ if (mutex_lock (&lock->mutex) != 0)
+ abort ();
+ lock->owner = self;
+ }
+ if (++(lock->depth) == 0) /* wraparound? */
+ abort ();
+}
+
+void
+glthread_recursive_lock_unlock (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != thr_self ())
+ abort ();
+ if (lock->depth == 0)
+ abort ();
+ if (--(lock->depth) == 0)
+ {
+ lock->owner = (thread_t) 0;
+ if (mutex_unlock (&lock->mutex) != 0)
+ abort ();
+ }
+}
+
+void
+glthread_recursive_lock_destroy (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != (thread_t) 0)
+ abort ();
+ if (mutex_destroy (&lock->mutex) != 0)
+ abort ();
+}
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+void
+glthread_once (gl_once_t *once_control, void (*initfunction) (void))
+{
+ if (!once_control->inited)
+ {
+ /* Use the mutex to guarantee that if another thread is already calling
+ the initfunction, this thread waits until it's finished. */
+ if (mutex_lock (&once_control->mutex) != 0)
+ abort ();
+ if (!once_control->inited)
+ {
+ once_control->inited = 1;
+ initfunction ();
+ }
+ if (mutex_unlock (&once_control->mutex) != 0)
+ abort ();
+ }
+}
+
+int
+glthread_once_singlethreaded (gl_once_t *once_control)
+{
+ /* We know that gl_once_t contains an integer type. */
+ if (!once_control->inited)
+ {
+ /* First time use of once_control. Invert the marker. */
+ once_control->inited = ~ 0;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_WIN32_THREADS
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+void
+glthread_lock_init (gl_lock_t *lock)
+{
+ InitializeCriticalSection (&lock->lock);
+ lock->guard.done = 1;
+}
+
+void
+glthread_lock_lock (gl_lock_t *lock)
+{
+ if (!lock->guard.done)
+ {
+ if (InterlockedIncrement (&lock->guard.started) == 0)
+ /* This thread is the first one to need this lock. Initialize it. */
+ glthread_lock_init (lock);
+ else
+ /* Yield the CPU while waiting for another thread to finish
+ initializing this lock. */
+ while (!lock->guard.done)
+ Sleep (0);
+ }
+ EnterCriticalSection (&lock->lock);
+}
+
+void
+glthread_lock_unlock (gl_lock_t *lock)
+{
+ if (!lock->guard.done)
+ abort ();
+ LeaveCriticalSection (&lock->lock);
+}
+
+void
+glthread_lock_destroy (gl_lock_t *lock)
+{
+ if (!lock->guard.done)
+ abort ();
+ DeleteCriticalSection (&lock->lock);
+ lock->guard.done = 0;
+}
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+static inline void
+gl_waitqueue_init (gl_waitqueue_t *wq)
+{
+ wq->array = NULL;
+ wq->count = 0;
+ wq->alloc = 0;
+ wq->offset = 0;
+}
+
+/* Enqueues the current thread, represented by an event, in a wait queue.
+ Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */
+static HANDLE
+gl_waitqueue_add (gl_waitqueue_t *wq)
+{
+ HANDLE event;
+ unsigned int index;
+
+ if (wq->count == wq->alloc)
+ {
+ unsigned int new_alloc = 2 * wq->alloc + 1;
+ HANDLE *new_array =
+ (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE));
+ if (new_array == NULL)
+ /* No more memory. */
+ return INVALID_HANDLE_VALUE;
+ /* Now is a good opportunity to rotate the array so that its contents
+ starts at offset 0. */
+ if (wq->offset > 0)
+ {
+ unsigned int old_count = wq->count;
+ unsigned int old_alloc = wq->alloc;
+ unsigned int old_offset = wq->offset;
+ unsigned int i;
+ if (old_offset + old_count > old_alloc)
+ {
+ unsigned int limit = old_offset + old_count - old_alloc;
+ for (i = 0; i < limit; i++)
+ new_array[old_alloc + i] = new_array[i];
+ }
+ for (i = 0; i < old_count; i++)
+ new_array[i] = new_array[old_offset + i];
+ wq->offset = 0;
+ }
+ wq->array = new_array;
+ wq->alloc = new_alloc;
+ }
+ event = CreateEvent (NULL, TRUE, FALSE, NULL);
+ if (event == INVALID_HANDLE_VALUE)
+ /* No way to allocate an event. */
+ return INVALID_HANDLE_VALUE;
+ index = wq->offset + wq->count;
+ if (index >= wq->alloc)
+ index -= wq->alloc;
+ wq->array[index] = event;
+ wq->count++;
+ return event;
+}
+
+/* Notifies the first thread from a wait queue and dequeues it. */
+static inline void
+gl_waitqueue_notify_first (gl_waitqueue_t *wq)
+{
+ SetEvent (wq->array[wq->offset + 0]);
+ wq->offset++;
+ wq->count--;
+ if (wq->count == 0 || wq->offset == wq->alloc)
+ wq->offset = 0;
+}
+
+/* Notifies all threads from a wait queue and dequeues them all. */
+static inline void
+gl_waitqueue_notify_all (gl_waitqueue_t *wq)
+{
+ unsigned int i;
+
+ for (i = 0; i < wq->count; i++)
+ {
+ unsigned int index = wq->offset + i;
+ if (index >= wq->alloc)
+ index -= wq->alloc;
+ SetEvent (wq->array[index]);
+ }
+ wq->count = 0;
+ wq->offset = 0;
+}
+
+void
+glthread_rwlock_init (gl_rwlock_t *lock)
+{
+ InitializeCriticalSection (&lock->lock);
+ gl_waitqueue_init (&lock->waiting_readers);
+ gl_waitqueue_init (&lock->waiting_writers);
+ lock->runcount = 0;
+ lock->guard.done = 1;
+}
+
+void
+glthread_rwlock_rdlock (gl_rwlock_t *lock)
+{
+ if (!lock->guard.done)
+ {
+ if (InterlockedIncrement (&lock->guard.started) == 0)
+ /* This thread is the first one to need this lock. Initialize it. */
+ glthread_rwlock_init (lock);
+ else
+ /* Yield the CPU while waiting for another thread to finish
+ initializing this lock. */
+ while (!lock->guard.done)
+ Sleep (0);
+ }
+ EnterCriticalSection (&lock->lock);
+ /* Test whether only readers are currently running, and whether the runcount
+ field will not overflow. */
+ if (!(lock->runcount + 1 > 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_readers. */
+ HANDLE event = gl_waitqueue_add (&lock->waiting_readers);
+ if (event != INVALID_HANDLE_VALUE)
+ {
+ DWORD result;
+ LeaveCriticalSection (&lock->lock);
+ /* Wait until another thread signals this event. */
+ result = WaitForSingleObject (event, INFINITE);
+ if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
+ abort ();
+ CloseHandle (event);
+ /* The thread which signalled the event already did the bookkeeping:
+ removed us from the waiting_readers, incremented lock->runcount. */
+ if (!(lock->runcount > 0))
+ abort ();
+ return;
+ }
+ else
+ {
+ /* Allocation failure. Weird. */
+ do
+ {
+ LeaveCriticalSection (&lock->lock);
+ Sleep (1);
+ EnterCriticalSection (&lock->lock);
+ }
+ while (!(lock->runcount + 1 > 0));
+ }
+ }
+ lock->runcount++;
+ LeaveCriticalSection (&lock->lock);
+}
+
+void
+glthread_rwlock_wrlock (gl_rwlock_t *lock)
+{
+ if (!lock->guard.done)
+ {
+ if (InterlockedIncrement (&lock->guard.started) == 0)
+ /* This thread is the first one to need this lock. Initialize it. */
+ glthread_rwlock_init (lock);
+ else
+ /* Yield the CPU while waiting for another thread to finish
+ initializing this lock. */
+ while (!lock->guard.done)
+ Sleep (0);
+ }
+ EnterCriticalSection (&lock->lock);
+ /* Test whether no readers or writers are currently running. */
+ if (!(lock->runcount == 0))
+ {
+ /* This thread has to wait for a while. Enqueue it among the
+ waiting_writers. */
+ HANDLE event = gl_waitqueue_add (&lock->waiting_writers);
+ if (event != INVALID_HANDLE_VALUE)
+ {
+ DWORD result;
+ LeaveCriticalSection (&lock->lock);
+ /* Wait until another thread signals this event. */
+ result = WaitForSingleObject (event, INFINITE);
+ if (result == WAIT_FAILED || result == WAIT_TIMEOUT)
+ abort ();
+ CloseHandle (event);
+ /* The thread which signalled the event already did the bookkeeping:
+ removed us from the waiting_writers, set lock->runcount = -1. */
+ if (!(lock->runcount == -1))
+ abort ();
+ return;
+ }
+ else
+ {
+ /* Allocation failure. Weird. */
+ do
+ {
+ LeaveCriticalSection (&lock->lock);
+ Sleep (1);
+ EnterCriticalSection (&lock->lock);
+ }
+ while (!(lock->runcount == 0));
+ }
+ }
+ lock->runcount--; /* runcount becomes -1 */
+ LeaveCriticalSection (&lock->lock);
+}
+
+void
+glthread_rwlock_unlock (gl_rwlock_t *lock)
+{
+ if (!lock->guard.done)
+ abort ();
+ EnterCriticalSection (&lock->lock);
+ if (lock->runcount < 0)
+ {
+ /* Drop a writer lock. */
+ if (!(lock->runcount == -1))
+ abort ();
+ lock->runcount = 0;
+ }
+ else
+ {
+ /* Drop a reader lock. */
+ if (!(lock->runcount > 0))
+ abort ();
+ lock->runcount--;
+ }
+ if (lock->runcount == 0)
+ {
+ /* POSIX recommends that "write locks shall take precedence over read
+ locks", to avoid "writer starvation". */
+ if (lock->waiting_writers.count > 0)
+ {
+ /* Wake up one of the waiting writers. */
+ lock->runcount--;
+ gl_waitqueue_notify_first (&lock->waiting_writers);
+ }
+ else
+ {
+ /* Wake up all waiting readers. */
+ lock->runcount += lock->waiting_readers.count;
+ gl_waitqueue_notify_all (&lock->waiting_readers);
+ }
+ }
+ LeaveCriticalSection (&lock->lock);
+}
+
+void
+glthread_rwlock_destroy (gl_rwlock_t *lock)
+{
+ if (!lock->guard.done)
+ abort ();
+ if (lock->runcount != 0)
+ abort ();
+ DeleteCriticalSection (&lock->lock);
+ if (lock->waiting_readers.array != NULL)
+ free (lock->waiting_readers.array);
+ if (lock->waiting_writers.array != NULL)
+ free (lock->waiting_writers.array);
+ lock->guard.done = 0;
+}
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+void
+glthread_recursive_lock_init (gl_recursive_lock_t *lock)
+{
+ lock->owner = 0;
+ lock->depth = 0;
+ InitializeCriticalSection (&lock->lock);
+ lock->guard.done = 1;
+}
+
+void
+glthread_recursive_lock_lock (gl_recursive_lock_t *lock)
+{
+ if (!lock->guard.done)
+ {
+ if (InterlockedIncrement (&lock->guard.started) == 0)
+ /* This thread is the first one to need this lock. Initialize it. */
+ glthread_recursive_lock_init (lock);
+ else
+ /* Yield the CPU while waiting for another thread to finish
+ initializing this lock. */
+ while (!lock->guard.done)
+ Sleep (0);
+ }
+ {
+ DWORD self = GetCurrentThreadId ();
+ if (lock->owner != self)
+ {
+ EnterCriticalSection (&lock->lock);
+ lock->owner = self;
+ }
+ if (++(lock->depth) == 0) /* wraparound? */
+ abort ();
+ }
+}
+
+void
+glthread_recursive_lock_unlock (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != GetCurrentThreadId ())
+ abort ();
+ if (lock->depth == 0)
+ abort ();
+ if (--(lock->depth) == 0)
+ {
+ lock->owner = 0;
+ LeaveCriticalSection (&lock->lock);
+ }
+}
+
+void
+glthread_recursive_lock_destroy (gl_recursive_lock_t *lock)
+{
+ if (lock->owner != 0)
+ abort ();
+ DeleteCriticalSection (&lock->lock);
+ lock->guard.done = 0;
+}
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+void
+glthread_once (gl_once_t *once_control, void (*initfunction) (void))
+{
+ if (once_control->inited <= 0)
+ {
+ if (InterlockedIncrement (&once_control->started) == 0)
+ {
+ /* This thread is the first one to come to this once_control. */
+ InitializeCriticalSection (&once_control->lock);
+ EnterCriticalSection (&once_control->lock);
+ once_control->inited = 0;
+ initfunction ();
+ once_control->inited = 1;
+ LeaveCriticalSection (&once_control->lock);
+ }
+ else
+ {
+ /* Undo last operation. */
+ InterlockedDecrement (&once_control->started);
+ /* Some other thread has already started the initialization.
+ Yield the CPU while waiting for the other thread to finish
+ initializing and taking the lock. */
+ while (once_control->inited < 0)
+ Sleep (0);
+ if (once_control->inited <= 0)
+ {
+ /* Take the lock. This blocks until the other thread has
+ finished calling the initfunction. */
+ EnterCriticalSection (&once_control->lock);
+ LeaveCriticalSection (&once_control->lock);
+ if (!(once_control->inited > 0))
+ abort ();
+ }
+ }
+ }
+}
+
+#endif
+
+/* ========================================================================= */
diff --git a/intl/lock.h b/intl/lock.h
new file mode 100644
index 0000000..144531d
--- /dev/null
+++ b/intl/lock.h
@@ -0,0 +1,1105 @@
+/* Locking in multithreaded situations.
+ Copyright (C) 2005-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Bruno Haible <bruno at clisp.org>, 2005.
+ Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
+ gthr-win32.h. */
+
+/* This file contains locking primitives for use with a given thread library.
+ It does not contain primitives for creating threads or for other
+ synchronization primitives.
+
+ Normal (non-recursive) locks:
+ Type: gl_lock_t
+ Declaration: gl_lock_define(extern, name)
+ Initializer: gl_lock_define_initialized(, name)
+ Initialization: gl_lock_init (name);
+ Taking the lock: gl_lock_lock (name);
+ Releasing the lock: gl_lock_unlock (name);
+ De-initialization: gl_lock_destroy (name);
+
+ Read-Write (non-recursive) locks:
+ Type: gl_rwlock_t
+ Declaration: gl_rwlock_define(extern, name)
+ Initializer: gl_rwlock_define_initialized(, name)
+ Initialization: gl_rwlock_init (name);
+ Taking the lock: gl_rwlock_rdlock (name);
+ gl_rwlock_wrlock (name);
+ Releasing the lock: gl_rwlock_unlock (name);
+ De-initialization: gl_rwlock_destroy (name);
+
+ Recursive locks:
+ Type: gl_recursive_lock_t
+ Declaration: gl_recursive_lock_define(extern, name)
+ Initializer: gl_recursive_lock_define_initialized(, name)
+ Initialization: gl_recursive_lock_init (name);
+ Taking the lock: gl_recursive_lock_lock (name);
+ Releasing the lock: gl_recursive_lock_unlock (name);
+ De-initialization: gl_recursive_lock_destroy (name);
+
+ Once-only execution:
+ Type: gl_once_t
+ Initializer: gl_once_define(extern, name)
+ Execution: gl_once (name, initfunction);
+*/
+
+
+#ifndef _LOCK_H
+#define _LOCK_H
+
+/* ========================================================================= */
+
+#if USE_POSIX_THREADS
+
+/* Use the POSIX threads library. */
+
+# include <pthread.h>
+# include <stdlib.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if PTHREAD_IN_USE_DETECTION_HARD
+
+/* The pthread_in_use() detection needs to be done at runtime. */
+# define pthread_in_use() \
+ glthread_in_use ()
+extern int glthread_in_use (void);
+
+# endif
+
+# if USE_POSIX_THREADS_WEAK
+
+/* Use weak references to the POSIX threads library. */
+
+/* Weak references avoid dragging in external libraries if the other parts
+ of the program don't use them. Here we use them, because we don't want
+ every program that uses libintl to depend on libpthread. This assumes
+ that libpthread would not be loaded after libintl; i.e. if libintl is
+ loaded first, by an executable that does not depend on libpthread, and
+ then a module is dynamically loaded that depends on libpthread, libintl
+ will not be multithread-safe. */
+
+/* The way to test at runtime whether libpthread is present is to test
+ whether a function pointer's value, such as &pthread_mutex_init, is
+ non-NULL. However, some versions of GCC have a bug through which, in
+ PIC mode, &foo != NULL always evaluates to true if there is a direct
+ call to foo(...) in the same function. To avoid this, we test the
+ address of a function in libpthread that we don't use. */
+
+# pragma weak pthread_mutex_init
+# pragma weak pthread_mutex_lock
+# pragma weak pthread_mutex_unlock
+# pragma weak pthread_mutex_destroy
+# pragma weak pthread_rwlock_init
+# pragma weak pthread_rwlock_rdlock
+# pragma weak pthread_rwlock_wrlock
+# pragma weak pthread_rwlock_unlock
+# pragma weak pthread_rwlock_destroy
+# pragma weak pthread_once
+# pragma weak pthread_cond_init
+# pragma weak pthread_cond_wait
+# pragma weak pthread_cond_signal
+# pragma weak pthread_cond_broadcast
+# pragma weak pthread_cond_destroy
+# pragma weak pthread_mutexattr_init
+# pragma weak pthread_mutexattr_settype
+# pragma weak pthread_mutexattr_destroy
+# ifndef pthread_self
+# pragma weak pthread_self
+# endif
+
+# if !PTHREAD_IN_USE_DETECTION_HARD
+# pragma weak pthread_cancel
+# define pthread_in_use() (pthread_cancel != NULL)
+# endif
+
+# else
+
+# if !PTHREAD_IN_USE_DETECTION_HARD
+# define pthread_in_use() 1
+# endif
+
+# endif
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+typedef pthread_mutex_t gl_lock_t;
+# define gl_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_mutex_t NAME;
+# define gl_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer;
+# define gl_lock_initializer \
+ PTHREAD_MUTEX_INITIALIZER
+# define gl_lock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_init (&NAME, NULL) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_lock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_lock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_unlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_destroy (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+# if HAVE_PTHREAD_RWLOCK
+
+# ifdef PTHREAD_RWLOCK_INITIALIZER
+
+typedef pthread_rwlock_t gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ PTHREAD_RWLOCK_INITIALIZER
+# define gl_rwlock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_rwlock_init (&NAME, NULL) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_rdlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_rwlock_rdlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_wrlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_rwlock_wrlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_rwlock_unlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_rwlock_destroy (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+
+# else
+
+typedef struct
+ {
+ int initialized;
+ pthread_mutex_t guard; /* protects the initialization */
+ pthread_rwlock_t rwlock; /* read-write lock */
+ }
+ gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ { 0, PTHREAD_MUTEX_INITIALIZER }
+# define gl_rwlock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_init (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_rdlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_rdlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_wrlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_wrlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_unlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_destroy (&NAME); \
+ } \
+ while (0)
+extern void glthread_rwlock_init (gl_rwlock_t *lock);
+extern void glthread_rwlock_rdlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_wrlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_unlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_destroy (gl_rwlock_t *lock);
+
+# endif
+
+# else
+
+typedef struct
+ {
+ pthread_mutex_t lock; /* protects the remaining fields */
+ pthread_cond_t waiting_readers; /* waiting readers */
+ pthread_cond_t waiting_writers; /* waiting writers */
+ unsigned int waiting_writers_count; /* number of waiting writers */
+ int runcount; /* number of readers running, or -1 when a writer runs */
+ }
+ gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 }
+# define gl_rwlock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_init (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_rdlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_rdlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_wrlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_wrlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_unlock (&NAME); \
+ } \
+ while (0)
+# define gl_rwlock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_rwlock_destroy (&NAME); \
+ } \
+ while (0)
+extern void glthread_rwlock_init (gl_rwlock_t *lock);
+extern void glthread_rwlock_rdlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_wrlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_unlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_destroy (gl_rwlock_t *lock);
+
+# endif
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+# if HAVE_PTHREAD_MUTEX_RECURSIVE
+
+# if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+
+typedef pthread_mutex_t gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_mutex_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer;
+# ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
+# define gl_recursive_lock_initializer \
+ PTHREAD_RECURSIVE_MUTEX_INITIALIZER
+# else
+# define gl_recursive_lock_initializer \
+ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+# endif
+# define gl_recursive_lock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_init (&NAME, NULL) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_lock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_lock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_unlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use () && pthread_mutex_destroy (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+
+# else
+
+typedef struct
+ {
+ pthread_mutex_t recmutex; /* recursive mutex */
+ pthread_mutex_t guard; /* protects the initialization */
+ int initialized;
+ }
+ gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
+# define gl_recursive_lock_initializer \
+ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 }
+# define gl_recursive_lock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_init (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_lock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_lock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_unlock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_destroy (&NAME); \
+ } \
+ while (0)
+extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock);
+
+# endif
+
+# else
+
+/* Old versions of POSIX threads on Solaris did not have recursive locks.
+ We have to implement them ourselves. */
+
+typedef struct
+ {
+ pthread_mutex_t mutex;
+ pthread_t owner;
+ unsigned long depth;
+ }
+ gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
+# define gl_recursive_lock_initializer \
+ { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 }
+# define gl_recursive_lock_init(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_init (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_lock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_lock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_unlock(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_unlock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_destroy(NAME) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ glthread_recursive_lock_destroy (&NAME); \
+ } \
+ while (0)
+extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock);
+
+# endif
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+typedef pthread_once_t gl_once_t;
+# define gl_once_define(STORAGECLASS, NAME) \
+ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT;
+# define gl_once(NAME, INITFUNCTION) \
+ do \
+ { \
+ if (pthread_in_use ()) \
+ { \
+ if (pthread_once (&NAME, INITFUNCTION) != 0) \
+ abort (); \
+ } \
+ else \
+ { \
+ if (glthread_once_singlethreaded (&NAME)) \
+ INITFUNCTION (); \
+ } \
+ } \
+ while (0)
+extern int glthread_once_singlethreaded (pthread_once_t *once_control);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_PTH_THREADS
+
+/* Use the GNU Pth threads library. */
+
+# include <pth.h>
+# include <stdlib.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if USE_PTH_THREADS_WEAK
+
+/* Use weak references to the GNU Pth threads library. */
+
+# pragma weak pth_mutex_init
+# pragma weak pth_mutex_acquire
+# pragma weak pth_mutex_release
+# pragma weak pth_rwlock_init
+# pragma weak pth_rwlock_acquire
+# pragma weak pth_rwlock_release
+# pragma weak pth_once
+
+# pragma weak pth_cancel
+# define pth_in_use() (pth_cancel != NULL)
+
+# else
+
+# define pth_in_use() 1
+
+# endif
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+typedef pth_mutex_t gl_lock_t;
+# define gl_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pth_mutex_t NAME;
+# define gl_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pth_mutex_t NAME = gl_lock_initializer;
+# define gl_lock_initializer \
+ PTH_MUTEX_INIT
+# define gl_lock_init(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_init (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_lock(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_acquire (&NAME, 0, NULL)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_unlock(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_release (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_destroy(NAME) \
+ (void)(&NAME)
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+typedef pth_rwlock_t gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pth_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ PTH_RWLOCK_INIT
+# define gl_rwlock_init(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_rwlock_init (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_rdlock(NAME) \
+ do \
+ { \
+ if (pth_in_use() \
+ && !pth_rwlock_acquire (&NAME, PTH_RWLOCK_RD, 0, NULL)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_wrlock(NAME) \
+ do \
+ { \
+ if (pth_in_use() \
+ && !pth_rwlock_acquire (&NAME, PTH_RWLOCK_RW, 0, NULL)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_unlock(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_rwlock_release (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_destroy(NAME) \
+ (void)(&NAME)
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+/* In Pth, mutexes are recursive by default. */
+typedef pth_mutex_t gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS pth_mutex_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer;
+# define gl_recursive_lock_initializer \
+ PTH_MUTEX_INIT
+# define gl_recursive_lock_init(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_init (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_lock(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_acquire (&NAME, 0, NULL)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_unlock(NAME) \
+ do \
+ { \
+ if (pth_in_use() && !pth_mutex_release (&NAME)) \
+ abort (); \
+ } \
+ while (0)
+# define gl_recursive_lock_destroy(NAME) \
+ (void)(&NAME)
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+typedef pth_once_t gl_once_t;
+# define gl_once_define(STORAGECLASS, NAME) \
+ STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT;
+# define gl_once(NAME, INITFUNCTION) \
+ do \
+ { \
+ if (pth_in_use ()) \
+ { \
+ void (*gl_once_temp) (void) = INITFUNCTION; \
+ if (!pth_once (&NAME, glthread_once_call, &gl_once_temp)) \
+ abort (); \
+ } \
+ else \
+ { \
+ if (glthread_once_singlethreaded (&NAME)) \
+ INITFUNCTION (); \
+ } \
+ } \
+ while (0)
+extern void glthread_once_call (void *arg);
+extern int glthread_once_singlethreaded (pth_once_t *once_control);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_SOLARIS_THREADS
+
+/* Use the old Solaris threads library. */
+
+# include <thread.h>
+# include <synch.h>
+# include <stdlib.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if USE_SOLARIS_THREADS_WEAK
+
+/* Use weak references to the old Solaris threads library. */
+
+# pragma weak mutex_init
+# pragma weak mutex_lock
+# pragma weak mutex_unlock
+# pragma weak mutex_destroy
+# pragma weak rwlock_init
+# pragma weak rw_rdlock
+# pragma weak rw_wrlock
+# pragma weak rw_unlock
+# pragma weak rwlock_destroy
+# pragma weak thr_self
+
+# pragma weak thr_suspend
+# define thread_in_use() (thr_suspend != NULL)
+
+# else
+
+# define thread_in_use() 1
+
+# endif
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+typedef mutex_t gl_lock_t;
+# define gl_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS mutex_t NAME;
+# define gl_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS mutex_t NAME = gl_lock_initializer;
+# define gl_lock_initializer \
+ DEFAULTMUTEX
+# define gl_lock_init(NAME) \
+ do \
+ { \
+ if (thread_in_use () && mutex_init (&NAME, USYNC_THREAD, NULL) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_lock(NAME) \
+ do \
+ { \
+ if (thread_in_use () && mutex_lock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_unlock(NAME) \
+ do \
+ { \
+ if (thread_in_use () && mutex_unlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_lock_destroy(NAME) \
+ do \
+ { \
+ if (thread_in_use () && mutex_destroy (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+typedef rwlock_t gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ DEFAULTRWLOCK
+# define gl_rwlock_init(NAME) \
+ do \
+ { \
+ if (thread_in_use () && rwlock_init (&NAME, USYNC_THREAD, NULL) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_rdlock(NAME) \
+ do \
+ { \
+ if (thread_in_use () && rw_rdlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_wrlock(NAME) \
+ do \
+ { \
+ if (thread_in_use () && rw_wrlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_unlock(NAME) \
+ do \
+ { \
+ if (thread_in_use () && rw_unlock (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+# define gl_rwlock_destroy(NAME) \
+ do \
+ { \
+ if (thread_in_use () && rwlock_destroy (&NAME) != 0) \
+ abort (); \
+ } \
+ while (0)
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+/* Old Solaris threads did not have recursive locks.
+ We have to implement them ourselves. */
+
+typedef struct
+ {
+ mutex_t mutex;
+ thread_t owner;
+ unsigned long depth;
+ }
+ gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
+# define gl_recursive_lock_initializer \
+ { DEFAULTMUTEX, (thread_t) 0, 0 }
+# define gl_recursive_lock_init(NAME) \
+ do \
+ { \
+ if (thread_in_use ()) \
+ glthread_recursive_lock_init (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_lock(NAME) \
+ do \
+ { \
+ if (thread_in_use ()) \
+ glthread_recursive_lock_lock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_unlock(NAME) \
+ do \
+ { \
+ if (thread_in_use ()) \
+ glthread_recursive_lock_unlock (&NAME); \
+ } \
+ while (0)
+# define gl_recursive_lock_destroy(NAME) \
+ do \
+ { \
+ if (thread_in_use ()) \
+ glthread_recursive_lock_destroy (&NAME); \
+ } \
+ while (0)
+extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock);
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+typedef struct
+ {
+ volatile int inited;
+ mutex_t mutex;
+ }
+ gl_once_t;
+# define gl_once_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX };
+# define gl_once(NAME, INITFUNCTION) \
+ do \
+ { \
+ if (thread_in_use ()) \
+ { \
+ glthread_once (&NAME, INITFUNCTION); \
+ } \
+ else \
+ { \
+ if (glthread_once_singlethreaded (&NAME)) \
+ INITFUNCTION (); \
+ } \
+ } \
+ while (0)
+extern void glthread_once (gl_once_t *once_control, void (*initfunction) (void));
+extern int glthread_once_singlethreaded (gl_once_t *once_control);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+/* ========================================================================= */
+
+#if USE_WIN32_THREADS
+
+# include <windows.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+/* We can use CRITICAL_SECTION directly, rather than the Win32 Event, Mutex,
+ Semaphore types, because
+ - we need only to synchronize inside a single process (address space),
+ not inter-process locking,
+ - we don't need to support trylock operations. (TryEnterCriticalSection
+ does not work on Windows 95/98/ME. Packages that need trylock usually
+ define their own mutex type.) */
+
+/* There is no way to statically initialize a CRITICAL_SECTION. It needs
+ to be done lazily, once only. For this we need spinlocks. */
+
+typedef struct { volatile int done; volatile long started; } gl_spinlock_t;
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+typedef struct
+ {
+ gl_spinlock_t guard; /* protects the initialization */
+ CRITICAL_SECTION lock;
+ }
+ gl_lock_t;
+# define gl_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_lock_t NAME;
+# define gl_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_lock_t NAME = gl_lock_initializer;
+# define gl_lock_initializer \
+ { { 0, -1 } }
+# define gl_lock_init(NAME) \
+ glthread_lock_init (&NAME)
+# define gl_lock_lock(NAME) \
+ glthread_lock_lock (&NAME)
+# define gl_lock_unlock(NAME) \
+ glthread_lock_unlock (&NAME)
+# define gl_lock_destroy(NAME) \
+ glthread_lock_destroy (&NAME)
+extern void glthread_lock_init (gl_lock_t *lock);
+extern void glthread_lock_lock (gl_lock_t *lock);
+extern void glthread_lock_unlock (gl_lock_t *lock);
+extern void glthread_lock_destroy (gl_lock_t *lock);
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+/* It is impossible to implement read-write locks using plain locks, without
+ introducing an extra thread dedicated to managing read-write locks.
+ Therefore here we need to use the low-level Event type. */
+
+typedef struct
+ {
+ HANDLE *array; /* array of waiting threads, each represented by an event */
+ unsigned int count; /* number of waiting threads */
+ unsigned int alloc; /* length of allocated array */
+ unsigned int offset; /* index of first waiting thread in array */
+ }
+ gl_waitqueue_t;
+typedef struct
+ {
+ gl_spinlock_t guard; /* protects the initialization */
+ CRITICAL_SECTION lock; /* protects the remaining fields */
+ gl_waitqueue_t waiting_readers; /* waiting readers */
+ gl_waitqueue_t waiting_writers; /* waiting writers */
+ int runcount; /* number of readers running, or -1 when a writer runs */
+ }
+ gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME;
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer;
+# define gl_rwlock_initializer \
+ { { 0, -1 } }
+# define gl_rwlock_init(NAME) \
+ glthread_rwlock_init (&NAME)
+# define gl_rwlock_rdlock(NAME) \
+ glthread_rwlock_rdlock (&NAME)
+# define gl_rwlock_wrlock(NAME) \
+ glthread_rwlock_wrlock (&NAME)
+# define gl_rwlock_unlock(NAME) \
+ glthread_rwlock_unlock (&NAME)
+# define gl_rwlock_destroy(NAME) \
+ glthread_rwlock_destroy (&NAME)
+extern void glthread_rwlock_init (gl_rwlock_t *lock);
+extern void glthread_rwlock_rdlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_wrlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_unlock (gl_rwlock_t *lock);
+extern void glthread_rwlock_destroy (gl_rwlock_t *lock);
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+/* The Win32 documentation says that CRITICAL_SECTION already implements a
+ recursive lock. But we need not rely on it: It's easy to implement a
+ recursive lock without this assumption. */
+
+typedef struct
+ {
+ gl_spinlock_t guard; /* protects the initialization */
+ DWORD owner;
+ unsigned long depth;
+ CRITICAL_SECTION lock;
+ }
+ gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME;
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \
+ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer;
+# define gl_recursive_lock_initializer \
+ { { 0, -1 }, 0, 0 }
+# define gl_recursive_lock_init(NAME) \
+ glthread_recursive_lock_init (&NAME)
+# define gl_recursive_lock_lock(NAME) \
+ glthread_recursive_lock_lock (&NAME)
+# define gl_recursive_lock_unlock(NAME) \
+ glthread_recursive_lock_unlock (&NAME)
+# define gl_recursive_lock_destroy(NAME) \
+ glthread_recursive_lock_destroy (&NAME)
+extern void glthread_recursive_lock_init (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_lock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_unlock (gl_recursive_lock_t *lock);
+extern void glthread_recursive_lock_destroy (gl_recursive_lock_t *lock);
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+typedef struct
+ {
+ volatile int inited;
+ volatile long started;
+ CRITICAL_SECTION lock;
+ }
+ gl_once_t;
+# define gl_once_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_once_t NAME = { -1, -1 };
+# define gl_once(NAME, INITFUNCTION) \
+ glthread_once (&NAME, INITFUNCTION)
+extern void glthread_once (gl_once_t *once_control, void (*initfunction) (void));
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+/* ========================================================================= */
+
+#if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WIN32_THREADS)
+
+/* Provide dummy implementation if threads are not supported. */
+
+/* -------------------------- gl_lock_t datatype -------------------------- */
+
+typedef int gl_lock_t;
+# define gl_lock_define(STORAGECLASS, NAME)
+# define gl_lock_define_initialized(STORAGECLASS, NAME)
+# define gl_lock_init(NAME)
+# define gl_lock_lock(NAME)
+# define gl_lock_unlock(NAME)
+
+/* ------------------------- gl_rwlock_t datatype ------------------------- */
+
+typedef int gl_rwlock_t;
+# define gl_rwlock_define(STORAGECLASS, NAME)
+# define gl_rwlock_define_initialized(STORAGECLASS, NAME)
+# define gl_rwlock_init(NAME)
+# define gl_rwlock_rdlock(NAME)
+# define gl_rwlock_wrlock(NAME)
+# define gl_rwlock_unlock(NAME)
+
+/* --------------------- gl_recursive_lock_t datatype --------------------- */
+
+typedef int gl_recursive_lock_t;
+# define gl_recursive_lock_define(STORAGECLASS, NAME)
+# define gl_recursive_lock_define_initialized(STORAGECLASS, NAME)
+# define gl_recursive_lock_init(NAME)
+# define gl_recursive_lock_lock(NAME)
+# define gl_recursive_lock_unlock(NAME)
+
+/* -------------------------- gl_once_t datatype -------------------------- */
+
+typedef int gl_once_t;
+# define gl_once_define(STORAGECLASS, NAME) \
+ STORAGECLASS gl_once_t NAME = 0;
+# define gl_once(NAME, INITFUNCTION) \
+ do \
+ { \
+ if (NAME == 0) \
+ { \
+ NAME = ~ 0; \
+ INITFUNCTION (); \
+ } \
+ } \
+ while (0)
+
+#endif
+
+/* ========================================================================= */
+
+#endif /* _LOCK_H */
diff --git a/intl/log.c b/intl/log.c
new file mode 100644
index 0000000..e3ab5d0
--- /dev/null
+++ b/intl/log.c
@@ -0,0 +1,116 @@
+/* Log file output.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Written by Bruno Haible <bruno at clisp.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+# include "lock.h"
+#endif
+
+/* Print an ASCII string with quotes and escape sequences where needed. */
+static void
+print_escaped (FILE *stream, const char *str)
+{
+ putc ('"', stream);
+ for (; *str != '\0'; str++)
+ if (*str == '\n')
+ {
+ fputs ("\\n\"", stream);
+ if (str[1] == '\0')
+ return;
+ fputs ("\n\"", stream);
+ }
+ else
+ {
+ if (*str == '"' || *str == '\\')
+ putc ('\\', stream);
+ putc (*str, stream);
+ }
+ putc ('"', stream);
+}
+
+static char *last_logfilename = NULL;
+static FILE *last_logfile = NULL;
+__libc_lock_define_initialized (static, lock)
+
+static inline void
+_nl_log_untranslated_locked (const char *logfilename, const char *domainname,
+ const char *msgid1, const char *msgid2, int plural)
+{
+ FILE *logfile;
+
+ /* Can we reuse the last opened logfile? */
+ if (last_logfilename == NULL || strcmp (logfilename, last_logfilename) != 0)
+ {
+ /* Close the last used logfile. */
+ if (last_logfilename != NULL)
+ {
+ if (last_logfile != NULL)
+ {
+ fclose (last_logfile);
+ last_logfile = NULL;
+ }
+ free (last_logfilename);
+ last_logfilename = NULL;
+ }
+ /* Open the logfile. */
+ last_logfilename = (char *) malloc (strlen (logfilename) + 1);
+ if (last_logfilename == NULL)
+ return;
+ strcpy (last_logfilename, logfilename);
+ last_logfile = fopen (logfilename, "a");
+ if (last_logfile == NULL)
+ return;
+ }
+ logfile = last_logfile;
+
+ fprintf (logfile, "domain ");
+ print_escaped (logfile, domainname);
+ fprintf (logfile, "\nmsgid ");
+ print_escaped (logfile, msgid1);
+ if (plural)
+ {
+ fprintf (logfile, "\nmsgid_plural ");
+ print_escaped (logfile, msgid2);
+ fprintf (logfile, "\nmsgstr[0] \"\"\n");
+ }
+ else
+ fprintf (logfile, "\nmsgstr \"\"\n");
+ putc ('\n', logfile);
+}
+
+/* Add to the log file an entry denoting a failed translation. */
+void
+_nl_log_untranslated (const char *logfilename, const char *domainname,
+ const char *msgid1, const char *msgid2, int plural)
+{
+ __libc_lock_lock (lock);
+ _nl_log_untranslated_locked (logfilename, domainname, msgid1, msgid2, plural);
+ __libc_lock_unlock (lock);
+}
diff --git a/intl/ngettext.c b/intl/ngettext.c
new file mode 100644
index 0000000..a33529c
--- /dev/null
+++ b/intl/ngettext.c
@@ -0,0 +1,65 @@
+/* Implementation of ngettext(3) function.
+ Copyright (C) 1995, 1997, 2000-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+#include <locale.h>
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define NGETTEXT __ngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define NGETTEXT libintl_ngettext
+# define DCNGETTEXT libintl_dcngettext
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
+{
+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__ngettext, ngettext);
+#endif
diff --git a/intl/os2compat.c b/intl/os2compat.c
new file mode 100644
index 0000000..d041de2
--- /dev/null
+++ b/intl/os2compat.c
@@ -0,0 +1,98 @@
+/* OS/2 compatibility functions.
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#define OS2_AWARE
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+#include <sys/param.h>
+
+/* A version of getenv() that works from DLLs */
+extern unsigned long DosScanEnv (const unsigned char *pszName, unsigned char **ppszValue);
+
+char *
+_nl_getenv (const char *name)
+{
+ unsigned char *value;
+ if (DosScanEnv (name, &value))
+ return NULL;
+ else
+ return value;
+}
+
+/* A fixed size buffer. */
+char libintl_nl_default_dirname[MAXPATHLEN+1];
+
+char *_nlos2_libdir = NULL;
+char *_nlos2_localealiaspath = NULL;
+char *_nlos2_localedir = NULL;
+
+static __attribute__((constructor)) void
+nlos2_initialize ()
+{
+ char *root = getenv ("UNIXROOT");
+ char *gnulocaledir = getenv ("GNULOCALEDIR");
+
+ _nlos2_libdir = gnulocaledir;
+ if (!_nlos2_libdir)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _nlos2_libdir = (char *) malloc (sl + strlen (LIBDIR) + 1);
+ memcpy (_nlos2_libdir, root, sl);
+ memcpy (_nlos2_libdir + sl, LIBDIR, strlen (LIBDIR) + 1);
+ }
+ else
+ _nlos2_libdir = LIBDIR;
+ }
+
+ _nlos2_localealiaspath = gnulocaledir;
+ if (!_nlos2_localealiaspath)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _nlos2_localealiaspath = (char *) malloc (sl + strlen (LOCALE_ALIAS_PATH) + 1);
+ memcpy (_nlos2_localealiaspath, root, sl);
+ memcpy (_nlos2_localealiaspath + sl, LOCALE_ALIAS_PATH, strlen (LOCALE_ALIAS_PATH) + 1);
+ }
+ else
+ _nlos2_localealiaspath = LOCALE_ALIAS_PATH;
+ }
+
+ _nlos2_localedir = gnulocaledir;
+ if (!_nlos2_localedir)
+ {
+ if (root)
+ {
+ size_t sl = strlen (root);
+ _nlos2_localedir = (char *) malloc (sl + strlen (LOCALEDIR) + 1);
+ memcpy (_nlos2_localedir, root, sl);
+ memcpy (_nlos2_localedir + sl, LOCALEDIR, strlen (LOCALEDIR) + 1);
+ }
+ else
+ _nlos2_localedir = LOCALEDIR;
+ }
+
+ if (strlen (_nlos2_localedir) <= MAXPATHLEN)
+ strcpy (libintl_nl_default_dirname, _nlos2_localedir);
+}
diff --git a/intl/os2compat.h b/intl/os2compat.h
new file mode 100644
index 0000000..a18d582
--- /dev/null
+++ b/intl/os2compat.h
@@ -0,0 +1,46 @@
+/* OS/2 compatibility defines.
+ This file is intended to be included from config.h
+ Copyright (C) 2001-2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* When included from os2compat.h we need all the original definitions */
+#ifndef OS2_AWARE
+
+#undef LIBDIR
+#define LIBDIR _nlos2_libdir
+extern char *_nlos2_libdir;
+
+#undef LOCALEDIR
+#define LOCALEDIR _nlos2_localedir
+extern char *_nlos2_localedir;
+
+#undef LOCALE_ALIAS_PATH
+#define LOCALE_ALIAS_PATH _nlos2_localealiaspath
+extern char *_nlos2_localealiaspath;
+
+#endif
+
+#undef HAVE_STRCASECMP
+#define HAVE_STRCASECMP 1
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+
+/* We have our own getenv() which works even if library is compiled as DLL */
+#define getenv _nl_getenv
+
+/* Older versions of gettext used -1 as the value of LC_MESSAGES */
+#define LC_MESSAGES_COMPAT (-1)
diff --git a/intl/osdep.c b/intl/osdep.c
new file mode 100644
index 0000000..3cc35c0
--- /dev/null
+++ b/intl/osdep.c
@@ -0,0 +1,26 @@
+/* OS dependent parts of libintl.
+ Copyright (C) 2001-2002, 2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#if defined __CYGWIN__
+# include "intl-exports.c"
+#elif defined __EMX__
+# include "os2compat.c"
+#else
+/* Avoid AIX compiler warning. */
+typedef int dummy;
+#endif
diff --git a/intl/plural-exp.c b/intl/plural-exp.c
new file mode 100644
index 0000000..751a688
--- /dev/null
+++ b/intl/plural-exp.c
@@ -0,0 +1,155 @@
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000-2001, 2003, 2005-2007 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "plural-exp.h"
+
+#if (defined __GNUC__ && !(__APPLE_CC__ > 1) && !defined __cplusplus) \
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+
+/* These structs are the constant expression for the germanic plural
+ form determination. It represents the expression "n != 1". */
+static const struct expression plvar =
+{
+ .nargs = 0,
+ .operation = var,
+};
+static const struct expression plone =
+{
+ .nargs = 0,
+ .operation = num,
+ .val =
+ {
+ .num = 1
+ }
+};
+struct expression GERMANIC_PLURAL =
+{
+ .nargs = 2,
+ .operation = not_equal,
+ .val =
+ {
+ .args =
+ {
+ [0] = (struct expression *) &plvar,
+ [1] = (struct expression *) &plone
+ }
+ }
+};
+
+# define INIT_GERMANIC_PLURAL()
+
+#else
+
+/* For compilers without support for ISO C 99 struct/union initializers:
+ Initialization at run-time. */
+
+static struct expression plvar;
+static struct expression plone;
+struct expression GERMANIC_PLURAL;
+
+static void
+init_germanic_plural ()
+{
+ if (plone.val.num == 0)
+ {
+ plvar.nargs = 0;
+ plvar.operation = var;
+
+ plone.nargs = 0;
+ plone.operation = num;
+ plone.val.num = 1;
+
+ GERMANIC_PLURAL.nargs = 2;
+ GERMANIC_PLURAL.operation = not_equal;
+ GERMANIC_PLURAL.val.args[0] = &plvar;
+ GERMANIC_PLURAL.val.args[1] = &plone;
+ }
+}
+
+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
+
+#endif
+
+void
+internal_function
+EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
+ const struct expression **pluralp,
+ unsigned long int *npluralsp)
+{
+ if (nullentry != NULL)
+ {
+ const char *plural;
+ const char *nplurals;
+
+ plural = strstr (nullentry, "plural=");
+ nplurals = strstr (nullentry, "nplurals=");
+ if (plural == NULL || nplurals == NULL)
+ goto no_plural;
+ else
+ {
+ char *endp;
+ unsigned long int n;
+ struct parse_args args;
+
+ /* First get the number. */
+ nplurals += 9;
+ while (*nplurals != '\0' && isspace ((unsigned char) *nplurals))
+ ++nplurals;
+ if (!(*nplurals >= '0' && *nplurals <= '9'))
+ goto no_plural;
+#if defined HAVE_STRTOUL || defined _LIBC
+ n = strtoul (nplurals, &endp, 10);
+#else
+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
+ n = n * 10 + (*endp - '0');
+#endif
+ if (nplurals == endp)
+ goto no_plural;
+ *npluralsp = n;
+
+ /* Due to the restrictions bison imposes onto the interface of the
+ scanner function we have to put the input string and the result
+ passed up from the parser into the same structure which address
+ is passed down to the parser. */
+ plural += 7;
+ args.cp = plural;
+ if (PLURAL_PARSE (&args) != 0)
+ goto no_plural;
+ *pluralp = args.res;
+ }
+ }
+ else
+ {
+ /* By default we are using the Germanic form: singular form only
+ for `one', the plural form otherwise. Yes, this is also what
+ English is using since English is a Germanic language. */
+ no_plural:
+ INIT_GERMANIC_PLURAL ();
+ *pluralp = &GERMANIC_PLURAL;
+ *npluralsp = 2;
+ }
+}
diff --git a/intl/plural-exp.h b/intl/plural-exp.h
new file mode 100644
index 0000000..d6cb8c5
--- /dev/null
+++ b/intl/plural-exp.h
@@ -0,0 +1,129 @@
+/* Expression parsing and evaluation for plural form selection.
+ Copyright (C) 2000-2003, 2005-2007 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _PLURAL_EXP_H
+#define _PLURAL_EXP_H
+
+#ifndef internal_function
+# define internal_function
+#endif
+
+#ifndef attribute_hidden
+# define attribute_hidden
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+enum expression_operator
+{
+ /* Without arguments: */
+ var, /* The variable "n". */
+ num, /* Decimal number. */
+ /* Unary operators: */
+ lnot, /* Logical NOT. */
+ /* Binary operators: */
+ mult, /* Multiplication. */
+ divide, /* Division. */
+ module, /* Modulo operation. */
+ plus, /* Addition. */
+ minus, /* Subtraction. */
+ less_than, /* Comparison. */
+ greater_than, /* Comparison. */
+ less_or_equal, /* Comparison. */
+ greater_or_equal, /* Comparison. */
+ equal, /* Comparison for equality. */
+ not_equal, /* Comparison for inequality. */
+ land, /* Logical AND. */
+ lor, /* Logical OR. */
+ /* Ternary operators: */
+ qmop /* Question mark operator. */
+};
+
+/* This is the representation of the expressions to determine the
+ plural form. */
+struct expression
+{
+ int nargs; /* Number of arguments. */
+ enum expression_operator operation;
+ union
+ {
+ unsigned long int num; /* Number value for `num'. */
+ struct expression *args[3]; /* Up to three arguments. */
+ } val;
+};
+
+/* This is the data structure to pass information to the parser and get
+ the result in a thread-safe way. */
+struct parse_args
+{
+ const char *cp;
+ struct expression *res;
+};
+
+
+/* Names for the libintl functions are a problem. This source code is used
+ 1. in the GNU C Library library,
+ 2. in the GNU libintl library,
+ 3. in the GNU gettext tools.
+ The function names in each situation must be different, to allow for
+ binary incompatible changes in 'struct expression'. Furthermore,
+ 1. in the GNU C Library library, the names have a __ prefix,
+ 2.+3. in the GNU libintl library and in the GNU gettext tools, the names
+ must follow ANSI C and not start with __.
+ So we have to distinguish the three cases. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+# define PLURAL_PARSE __gettextparse
+# define GERMANIC_PLURAL __gettext_germanic_plural
+# define EXTRACT_PLURAL_EXPRESSION __gettext_extract_plural
+#elif defined (IN_LIBINTL)
+# define FREE_EXPRESSION libintl_gettext_free_exp
+# define PLURAL_PARSE libintl_gettextparse
+# define GERMANIC_PLURAL libintl_gettext_germanic_plural
+# define EXTRACT_PLURAL_EXPRESSION libintl_gettext_extract_plural
+#else
+# define FREE_EXPRESSION free_plural_expression
+# define PLURAL_PARSE parse_plural_expression
+# define GERMANIC_PLURAL germanic_plural
+# define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
+#endif
+
+extern void FREE_EXPRESSION (struct expression *exp)
+ internal_function;
+extern int PLURAL_PARSE (void *arg);
+extern struct expression GERMANIC_PLURAL attribute_hidden;
+extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
+ const struct expression **pluralp,
+ unsigned long int *npluralsp)
+ internal_function;
+
+#if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE)
+extern unsigned long int plural_eval (const struct expression *pexp,
+ unsigned long int n);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _PLURAL_EXP_H */
diff --git a/intl/plural.c b/intl/plural.c
new file mode 100644
index 0000000..7a4d947
--- /dev/null
+++ b/intl/plural.c
@@ -0,0 +1,1961 @@
+/* A Bison parser, made by GNU Bison 2.3a. */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.3a"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 1
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+/* Substitute the variable and function names. */
+#define yyparse __gettextparse
+#define yylex __gettextlex
+#define yyerror __gettexterror
+#define yylval __gettextlval
+#define yychar __gettextchar
+#define yydebug __gettextdebug
+#define yynerrs __gettextnerrs
+
+
+/* Copy the first part of user declarations. */
+/* Line 164 of yacc.c. */
+#line 1 "plural.y"
+
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us
+ to put this declaration at the beginning of the file. The declaration in
+ bison's skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers.
+ This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include "plural-exp.h"
+
+/* The main function generated by the parser is called __gettextparse,
+ but we want it to be called PLURAL_PARSE. */
+#ifndef _LIBC
+# define __gettextparse PLURAL_PARSE
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ EQUOP2 = 258,
+ CMPOP2 = 259,
+ ADDOP2 = 260,
+ MULOP2 = 261,
+ NUMBER = 262
+ };
+#endif
+/* Tokens. */
+#define EQUOP2 258
+#define CMPOP2 259
+#define ADDOP2 260
+#define MULOP2 261
+#define NUMBER 262
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
+{/* Line 191 of yacc.c. */
+#line 51 "plural.y"
+
+ unsigned long int num;
+ enum expression_operator op;
+ struct expression *exp;
+}
+/* Line 191 of yacc.c. */
+#line 175 "plural.c"
+ YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+
+
+/* Copy the second part of user declarations. */
+/* Line 221 of yacc.c. */
+#line 57 "plural.y"
+
+/* Prototypes for local functions. */
+static int yylex (YYSTYPE *lval, const char **pexp);
+static void yyerror (const char *str);
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (int nargs, enum expression_operator op,
+ struct expression * const *args)
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (enum expression_operator op)
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (enum expression_operator op, struct expression *right)
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (enum expression_operator op, struct expression *left,
+ struct expression *right)
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (enum expression_operator op, struct expression *bexp,
+ struct expression *tbranch, struct expression *fbranch)
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+
+/* Line 221 of yacc.c. */
+#line 265 "plural.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+ int yyi;
+#endif
+{
+ return yyi;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 9
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 54
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 16
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 3
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 13
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 27
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 262
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const yytype_uint8 yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 10, 2, 2, 2, 2, 5, 2,
+ 14, 15, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 12, 2,
+ 2, 2, 2, 3, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 13, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 6, 7,
+ 8, 9, 11
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const yytype_uint8 yyprhs[] =
+{
+ 0, 0, 3, 5, 11, 15, 19, 23, 27, 31,
+ 35, 38, 40, 42
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int8 yyrhs[] =
+{
+ 17, 0, -1, 18, -1, 18, 3, 18, 12, 18,
+ -1, 18, 4, 18, -1, 18, 5, 18, -1, 18,
+ 6, 18, -1, 18, 7, 18, -1, 18, 8, 18,
+ -1, 18, 9, 18, -1, 10, 18, -1, 13, -1,
+ 11, -1, 14, 18, 15, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const yytype_uint8 yyrline[] =
+{
+ 0, 154, 154, 162, 166, 170, 174, 178, 182, 186,
+ 190, 194, 198, 203
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
+ "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
+ "$accept", "start", "exp", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 63, 124, 38, 258, 259, 260, 261,
+ 33, 262, 58, 110, 40, 41
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 16, 17, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 1, 5, 3, 3, 3, 3, 3, 3,
+ 2, 1, 1, 3
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
+{
+ 0, 0, 12, 11, 0, 0, 2, 10, 0, 1,
+ 0, 0, 0, 0, 0, 0, 0, 13, 0, 4,
+ 5, 6, 7, 8, 9, 0, 3
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int8 yydefgoto[] =
+{
+ -1, 5, 6
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -10
+static const yytype_int8 yypact[] =
+{
+ -9, -9, -10, -10, -9, 8, 36, -10, 13, -10,
+ -9, -9, -9, -9, -9, -9, -9, -10, 26, 41,
+ 45, 18, -2, 14, -10, -9, 36
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int8 yypgoto[] =
+{
+ -10, -10, -1
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -1
+static const yytype_uint8 yytable[] =
+{
+ 7, 1, 2, 8, 3, 4, 15, 16, 9, 18,
+ 19, 20, 21, 22, 23, 24, 10, 11, 12, 13,
+ 14, 15, 16, 16, 26, 14, 15, 16, 17, 10,
+ 11, 12, 13, 14, 15, 16, 0, 0, 25, 10,
+ 11, 12, 13, 14, 15, 16, 12, 13, 14, 15,
+ 16, 13, 14, 15, 16
+};
+
+static const yytype_int8 yycheck[] =
+{
+ 1, 10, 11, 4, 13, 14, 8, 9, 0, 10,
+ 11, 12, 13, 14, 15, 16, 3, 4, 5, 6,
+ 7, 8, 9, 9, 25, 7, 8, 9, 15, 3,
+ 4, 5, 6, 7, 8, 9, -1, -1, 12, 3,
+ 4, 5, 6, 7, 8, 9, 5, 6, 7, 8,
+ 9, 6, 7, 8, 9
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 10, 11, 13, 14, 17, 18, 18, 18, 0,
+ 3, 4, 5, 6, 7, 8, 9, 15, 18, 18,
+ 18, 18, 18, 18, 18, 12, 18
+};
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+
+#define YYFAIL goto yyerrlab
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+#else
+static void
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
+#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
+ int yyrule;
+#endif
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+ const char *yystr;
+#endif
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+#endif
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+ int yyn = yypact[yystate];
+
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
+}
+#endif /* YYERROR_VERBOSE */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes. */
+
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+ /* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+ int yystate;
+ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss;
+ yyvsp = yyvs;
+
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ lookahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to lookahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ *++yyvsp = yylval;
+
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+/* Line 1269 of yacc.c. */
+#line 155 "plural.y"
+ {
+ if ((yyvsp[(1) - (1)].exp) == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = (yyvsp[(1) - (1)].exp);
+ }
+ break;
+
+ case 3:
+/* Line 1269 of yacc.c. */
+#line 163 "plural.y"
+ {
+ (yyval.exp) = new_exp_3 (qmop, (yyvsp[(1) - (5)].exp), (yyvsp[(3) - (5)].exp), (yyvsp[(5) - (5)].exp));
+ }
+ break;
+
+ case 4:
+/* Line 1269 of yacc.c. */
+#line 167 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 (lor, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 5:
+/* Line 1269 of yacc.c. */
+#line 171 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 (land, (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 6:
+/* Line 1269 of yacc.c. */
+#line 175 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 7:
+/* Line 1269 of yacc.c. */
+#line 179 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 8:
+/* Line 1269 of yacc.c. */
+#line 183 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 9:
+/* Line 1269 of yacc.c. */
+#line 187 "plural.y"
+ {
+ (yyval.exp) = new_exp_2 ((yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].exp), (yyvsp[(3) - (3)].exp));
+ }
+ break;
+
+ case 10:
+/* Line 1269 of yacc.c. */
+#line 191 "plural.y"
+ {
+ (yyval.exp) = new_exp_1 (lnot, (yyvsp[(2) - (2)].exp));
+ }
+ break;
+
+ case 11:
+/* Line 1269 of yacc.c. */
+#line 195 "plural.y"
+ {
+ (yyval.exp) = new_exp_0 (var);
+ }
+ break;
+
+ case 12:
+/* Line 1269 of yacc.c. */
+#line 199 "plural.y"
+ {
+ if (((yyval.exp) = new_exp_0 (num)) != NULL)
+ (yyval.exp)->val.num = (yyvsp[(1) - (1)].num);
+ }
+ break;
+
+ case 13:
+/* Line 1269 of yacc.c. */
+#line 204 "plural.y"
+ {
+ (yyval.exp) = (yyvsp[(2) - (3)].exp);
+ }
+ break;
+
+
+/* Line 1269 of yacc.c. */
+#line 1572 "plural.c"
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ }
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ *++yyvsp = yylval;
+
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+ if (yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
+}
+
+
+/* Line 1486 of yacc.c. */
+#line 209 "plural.y"
+
+
+void
+internal_function
+FREE_EXPRESSION (struct expression *exp)
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (YYSTYPE *lval, const char **pexp)
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (const char *str)
+{
+ /* Do nothing. We don't print error messages here. */
+}
+
diff --git a/intl/plural.y b/intl/plural.y
new file mode 100644
index 0000000..ec36a09
--- /dev/null
+++ b/intl/plural.y
@@ -0,0 +1,385 @@
+%{
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000-2001, 2003, 2005-2006 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper at cygnus.com>, 2000.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* For bison < 2.0, the bison generated parser uses alloca. AIX 3 forces us
+ to put this declaration at the beginning of the file. The declaration in
+ bison's skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers.
+ This can go away once the AM_INTL_SUBDIR macro requires bison >= 2.0. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include "plural-exp.h"
+
+/* The main function generated by the parser is called __gettextparse,
+ but we want it to be called PLURAL_PARSE. */
+#ifndef _LIBC
+# define __gettextparse PLURAL_PARSE
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+%}
+%pure_parser
+%expect 7
+
+%union {
+ unsigned long int num;
+ enum expression_operator op;
+ struct expression *exp;
+}
+
+%{
+/* Prototypes for local functions. */
+static int yylex (YYSTYPE *lval, const char **pexp);
+static void yyerror (const char *str);
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (int nargs, enum expression_operator op,
+ struct expression * const *args)
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (enum expression_operator op)
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (enum expression_operator op, struct expression *right)
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (enum expression_operator op, struct expression *left,
+ struct expression *right)
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (enum expression_operator op, struct expression *bexp,
+ struct expression *tbranch, struct expression *fbranch)
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+%}
+
+/* This declares that all operators have the same associativity and the
+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
+ There is no unary minus and no bitwise operators.
+ Operators with the same syntactic behaviour have been merged into a single
+ token, to save space in the array generated by bison. */
+%right '?' /* ? */
+%left '|' /* || */
+%left '&' /* && */
+%left EQUOP2 /* == != */
+%left CMPOP2 /* < > <= >= */
+%left ADDOP2 /* + - */
+%left MULOP2 /* * / % */
+%right '!' /* ! */
+
+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
+%token <num> NUMBER
+%type <exp> exp
+
+%%
+
+start: exp
+ {
+ if ($1 == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = $1;
+ }
+ ;
+
+exp: exp '?' exp ':' exp
+ {
+ $$ = new_exp_3 (qmop, $1, $3, $5);
+ }
+ | exp '|' exp
+ {
+ $$ = new_exp_2 (lor, $1, $3);
+ }
+ | exp '&' exp
+ {
+ $$ = new_exp_2 (land, $1, $3);
+ }
+ | exp EQUOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp CMPOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp ADDOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp MULOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | '!' exp
+ {
+ $$ = new_exp_1 (lnot, $2);
+ }
+ | 'n'
+ {
+ $$ = new_exp_0 (var);
+ }
+ | NUMBER
+ {
+ if (($$ = new_exp_0 (num)) != NULL)
+ $$->val.num = $1;
+ }
+ | '(' exp ')'
+ {
+ $$ = $2;
+ }
+ ;
+
+%%
+
+void
+internal_function
+FREE_EXPRESSION (struct expression *exp)
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (YYSTYPE *lval, const char **pexp)
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (const char *str)
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/intl/printf-args.c b/intl/printf-args.c
new file mode 100644
index 0000000..cbd437d
--- /dev/null
+++ b/intl/printf-args.c
@@ -0,0 +1,188 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003, 2005-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ PRINTF_FETCHARGS Name of the function to be defined.
+ STATIC Set to 'static' to declare the function static. */
+
+#ifndef PRINTF_FETCHARGS
+# include <config.h>
+#endif
+
+/* Specification. */
+#ifndef PRINTF_FETCHARGS
+# include "printf-args.h"
+#endif
+
+#ifdef STATIC
+STATIC
+#endif
+int
+PRINTF_FETCHARGS (va_list args, arguments *a)
+{
+ size_t i;
+ argument *ap;
+
+ for (i = 0, ap = &a->arg[0]; i < a->count; i++, ap++)
+ switch (ap->type)
+ {
+ case TYPE_SCHAR:
+ ap->a.a_schar = va_arg (args, /*signed char*/ int);
+ break;
+ case TYPE_UCHAR:
+ ap->a.a_uchar = va_arg (args, /*unsigned char*/ int);
+ break;
+ case TYPE_SHORT:
+ ap->a.a_short = va_arg (args, /*short*/ int);
+ break;
+ case TYPE_USHORT:
+ ap->a.a_ushort = va_arg (args, /*unsigned short*/ int);
+ break;
+ case TYPE_INT:
+ ap->a.a_int = va_arg (args, int);
+ break;
+ case TYPE_UINT:
+ ap->a.a_uint = va_arg (args, unsigned int);
+ break;
+ case TYPE_LONGINT:
+ ap->a.a_longint = va_arg (args, long int);
+ break;
+ case TYPE_ULONGINT:
+ ap->a.a_ulongint = va_arg (args, unsigned long int);
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ ap->a.a_longlongint = va_arg (args, long long int);
+ break;
+ case TYPE_ULONGLONGINT:
+ ap->a.a_ulonglongint = va_arg (args, unsigned long long int);
+ break;
+#endif
+ case TYPE_DOUBLE:
+ ap->a.a_double = va_arg (args, double);
+ break;
+ case TYPE_LONGDOUBLE:
+ ap->a.a_longdouble = va_arg (args, long double);
+ break;
+ case TYPE_CHAR:
+ ap->a.a_char = va_arg (args, int);
+ break;
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+ /* Although ISO C 99 7.24.1.(2) says that wint_t is "unchanged by
+ default argument promotions", this is not the case in mingw32,
+ where wint_t is 'unsigned short'. */
+ ap->a.a_wide_char =
+ (sizeof (wint_t) < sizeof (int)
+ ? va_arg (args, int)
+ : va_arg (args, wint_t));
+ break;
+#endif
+ case TYPE_STRING:
+ ap->a.a_string = va_arg (args, const char *);
+ /* A null pointer is an invalid argument for "%s", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_string == NULL)
+ ap->a.a_string = "(NULL)";
+ break;
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+ ap->a.a_wide_string = va_arg (args, const wchar_t *);
+ /* A null pointer is an invalid argument for "%ls", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_wide_string == NULL)
+ {
+ static const wchar_t wide_null_string[] =
+ {
+ (wchar_t)'(',
+ (wchar_t)'N', (wchar_t)'U', (wchar_t)'L', (wchar_t)'L',
+ (wchar_t)')',
+ (wchar_t)0
+ };
+ ap->a.a_wide_string = wide_null_string;
+ }
+ break;
+#endif
+ case TYPE_POINTER:
+ ap->a.a_pointer = va_arg (args, void *);
+ break;
+ case TYPE_COUNT_SCHAR_POINTER:
+ ap->a.a_count_schar_pointer = va_arg (args, signed char *);
+ break;
+ case TYPE_COUNT_SHORT_POINTER:
+ ap->a.a_count_short_pointer = va_arg (args, short *);
+ break;
+ case TYPE_COUNT_INT_POINTER:
+ ap->a.a_count_int_pointer = va_arg (args, int *);
+ break;
+ case TYPE_COUNT_LONGINT_POINTER:
+ ap->a.a_count_longint_pointer = va_arg (args, long int *);
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_COUNT_LONGLONGINT_POINTER:
+ ap->a.a_count_longlongint_pointer = va_arg (args, long long int *);
+ break;
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ case TYPE_U8_STRING:
+ ap->a.a_u8_string = va_arg (args, const uint8_t *);
+ /* A null pointer is an invalid argument for "%U", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u8_string == NULL)
+ {
+ static const uint8_t u8_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u8_string = u8_null_string;
+ }
+ break;
+ case TYPE_U16_STRING:
+ ap->a.a_u16_string = va_arg (args, const uint16_t *);
+ /* A null pointer is an invalid argument for "%lU", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u16_string == NULL)
+ {
+ static const uint16_t u16_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u16_string = u16_null_string;
+ }
+ break;
+ case TYPE_U32_STRING:
+ ap->a.a_u32_string = va_arg (args, const uint32_t *);
+ /* A null pointer is an invalid argument for "%llU", but in practice
+ it occurs quite frequently in printf statements that produce
+ debug output. Use a fallback in this case. */
+ if (ap->a.a_u32_string == NULL)
+ {
+ static const uint32_t u32_null_string[] =
+ { '(', 'N', 'U', 'L', 'L', ')', 0 };
+ ap->a.a_u32_string = u32_null_string;
+ }
+ break;
+#endif
+ default:
+ /* Unknown type. */
+ return -1;
+ }
+ return 0;
+}
diff --git a/intl/printf-args.h b/intl/printf-args.h
new file mode 100644
index 0000000..cf89c3e
--- /dev/null
+++ b/intl/printf-args.h
@@ -0,0 +1,155 @@
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003, 2006-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _PRINTF_ARGS_H
+#define _PRINTF_ARGS_H
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ PRINTF_FETCHARGS Name of the function to be declared.
+ STATIC Set to 'static' to declare the function static. */
+
+/* Default parameters. */
+#ifndef PRINTF_FETCHARGS
+# define PRINTF_FETCHARGS printf_fetchargs
+#endif
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get wchar_t. */
+#if HAVE_WCHAR_T
+# include <stddef.h>
+#endif
+
+/* Get wint_t. */
+#if HAVE_WINT_T
+# include <wchar.h>
+#endif
+
+/* Get va_list. */
+#include <stdarg.h>
+
+
+/* Argument types */
+typedef enum
+{
+ TYPE_NONE,
+ TYPE_SCHAR,
+ TYPE_UCHAR,
+ TYPE_SHORT,
+ TYPE_USHORT,
+ TYPE_INT,
+ TYPE_UINT,
+ TYPE_LONGINT,
+ TYPE_ULONGINT,
+#if HAVE_LONG_LONG_INT
+ TYPE_LONGLONGINT,
+ TYPE_ULONGLONGINT,
+#endif
+ TYPE_DOUBLE,
+ TYPE_LONGDOUBLE,
+ TYPE_CHAR,
+#if HAVE_WINT_T
+ TYPE_WIDE_CHAR,
+#endif
+ TYPE_STRING,
+#if HAVE_WCHAR_T
+ TYPE_WIDE_STRING,
+#endif
+ TYPE_POINTER,
+ TYPE_COUNT_SCHAR_POINTER,
+ TYPE_COUNT_SHORT_POINTER,
+ TYPE_COUNT_INT_POINTER,
+ TYPE_COUNT_LONGINT_POINTER
+#if HAVE_LONG_LONG_INT
+, TYPE_COUNT_LONGLONGINT_POINTER
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+, TYPE_U8_STRING
+, TYPE_U16_STRING
+, TYPE_U32_STRING
+#endif
+} arg_type;
+
+/* Polymorphic argument */
+typedef struct
+{
+ arg_type type;
+ union
+ {
+ signed char a_schar;
+ unsigned char a_uchar;
+ short a_short;
+ unsigned short a_ushort;
+ int a_int;
+ unsigned int a_uint;
+ long int a_longint;
+ unsigned long int a_ulongint;
+#if HAVE_LONG_LONG_INT
+ long long int a_longlongint;
+ unsigned long long int a_ulonglongint;
+#endif
+ float a_float;
+ double a_double;
+ long double a_longdouble;
+ int a_char;
+#if HAVE_WINT_T
+ wint_t a_wide_char;
+#endif
+ const char* a_string;
+#if HAVE_WCHAR_T
+ const wchar_t* a_wide_string;
+#endif
+ void* a_pointer;
+ signed char * a_count_schar_pointer;
+ short * a_count_short_pointer;
+ int * a_count_int_pointer;
+ long int * a_count_longint_pointer;
+#if HAVE_LONG_LONG_INT
+ long long int * a_count_longlongint_pointer;
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ const uint8_t * a_u8_string;
+ const uint16_t * a_u16_string;
+ const uint32_t * a_u32_string;
+#endif
+ }
+ a;
+}
+argument;
+
+typedef struct
+{
+ size_t count;
+ argument *arg;
+}
+arguments;
+
+
+/* Fetch the arguments, putting them into a. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int PRINTF_FETCHARGS (va_list args, arguments *a);
+
+#endif /* _PRINTF_ARGS_H */
diff --git a/intl/printf-parse.c b/intl/printf-parse.c
new file mode 100644
index 0000000..6ed1cc3
--- /dev/null
+++ b/intl/printf-parse.c
@@ -0,0 +1,590 @@
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002-2003, 2006-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* This file can be parametrized with the following macros:
+ CHAR_T The element type of the format string.
+ CHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
+ in the format string are ASCII.
+ DIRECTIVE Structure denoting a format directive.
+ Depends on CHAR_T.
+ DIRECTIVES Structure denoting the set of format directives of a
+ format string. Depends on CHAR_T.
+ PRINTF_PARSE Function that parses a format string.
+ Depends on CHAR_T.
+ STATIC Set to 'static' to declare the function static.
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions. */
+
+#ifndef PRINTF_PARSE
+# include <config.h>
+#endif
+
+/* Specification. */
+#ifndef PRINTF_PARSE
+# include "printf-parse.h"
+#endif
+
+/* Default parameters. */
+#ifndef PRINTF_PARSE
+# define PRINTF_PARSE printf_parse
+# define CHAR_T char
+# define DIRECTIVE char_directive
+# define DIRECTIVES char_directives
+#endif
+
+/* Get size_t, NULL. */
+#include <stddef.h>
+
+/* Get intmax_t. */
+#if defined IN_LIBINTL || defined IN_LIBASPRINTF
+# if HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+# endif
+# if HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+# endif
+#else
+# include <stdint.h>
+#endif
+
+/* malloc(), realloc(), free(). */
+#include <stdlib.h>
+
+/* errno. */
+#include <errno.h>
+
+/* Checked size_t computations. */
+#include "xsize.h"
+
+#if CHAR_T_ONLY_ASCII
+/* c_isascii(). */
+# include "c-ctype.h"
+#endif
+
+#ifdef STATIC
+STATIC
+#endif
+int
+PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a)
+{
+ const CHAR_T *cp = format; /* pointer into format */
+ size_t arg_posn = 0; /* number of regular arguments consumed */
+ size_t d_allocated; /* allocated elements of d->dir */
+ size_t a_allocated; /* allocated elements of a->arg */
+ size_t max_width_length = 0;
+ size_t max_precision_length = 0;
+
+ d->count = 0;
+ d_allocated = 1;
+ d->dir = (DIRECTIVE *) malloc (d_allocated * sizeof (DIRECTIVE));
+ if (d->dir == NULL)
+ /* Out of memory. */
+ goto out_of_memory_1;
+
+ a->count = 0;
+ a_allocated = 0;
+ a->arg = NULL;
+
+#define REGISTER_ARG(_index_,_type_) \
+ { \
+ size_t n = (_index_); \
+ if (n >= a_allocated) \
+ { \
+ size_t memory_size; \
+ argument *memory; \
+ \
+ a_allocated = xtimes (a_allocated, 2); \
+ if (a_allocated <= n) \
+ a_allocated = xsum (n, 1); \
+ memory_size = xtimes (a_allocated, sizeof (argument)); \
+ if (size_overflow_p (memory_size)) \
+ /* Overflow, would lead to out of memory. */ \
+ goto out_of_memory; \
+ memory = (argument *) (a->arg \
+ ? realloc (a->arg, memory_size) \
+ : malloc (memory_size)); \
+ if (memory == NULL) \
+ /* Out of memory. */ \
+ goto out_of_memory; \
+ a->arg = memory; \
+ } \
+ while (a->count <= n) \
+ a->arg[a->count++].type = TYPE_NONE; \
+ if (a->arg[n].type == TYPE_NONE) \
+ a->arg[n].type = (_type_); \
+ else if (a->arg[n].type != (_type_)) \
+ /* Ambiguous type for positional argument. */ \
+ goto error; \
+ }
+
+ while (*cp != '\0')
+ {
+ CHAR_T c = *cp++;
+ if (c == '%')
+ {
+ size_t arg_index = ARG_NONE;
+ DIRECTIVE *dp = &d->dir[d->count]; /* pointer to next directive */
+
+ /* Initialize the next directive. */
+ dp->dir_start = cp - 1;
+ dp->flags = 0;
+ dp->width_start = NULL;
+ dp->width_end = NULL;
+ dp->width_arg_index = ARG_NONE;
+ dp->precision_start = NULL;
+ dp->precision_end = NULL;
+ dp->precision_arg_index = ARG_NONE;
+ dp->arg_index = ARG_NONE;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory later. */
+ goto error;
+ arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+
+ /* Read the flags. */
+ for (;;)
+ {
+ if (*cp == '\'')
+ {
+ dp->flags |= FLAG_GROUP;
+ cp++;
+ }
+ else if (*cp == '-')
+ {
+ dp->flags |= FLAG_LEFT;
+ cp++;
+ }
+ else if (*cp == '+')
+ {
+ dp->flags |= FLAG_SHOWSIGN;
+ cp++;
+ }
+ else if (*cp == ' ')
+ {
+ dp->flags |= FLAG_SPACE;
+ cp++;
+ }
+ else if (*cp == '#')
+ {
+ dp->flags |= FLAG_ALT;
+ cp++;
+ }
+ else if (*cp == '0')
+ {
+ dp->flags |= FLAG_ZERO;
+ cp++;
+ }
+ else
+ break;
+ }
+
+ /* Parse the field width. */
+ if (*cp == '*')
+ {
+ dp->width_start = cp;
+ cp++;
+ dp->width_end = cp;
+ if (max_width_length < 1)
+ max_width_length = 1;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory later. */
+ goto error;
+ dp->width_arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+ if (dp->width_arg_index == ARG_NONE)
+ {
+ dp->width_arg_index = arg_posn++;
+ if (dp->width_arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->width_arg_index, TYPE_INT);
+ }
+ else if (*cp >= '0' && *cp <= '9')
+ {
+ size_t width_length;
+
+ dp->width_start = cp;
+ for (; *cp >= '0' && *cp <= '9'; cp++)
+ ;
+ dp->width_end = cp;
+ width_length = dp->width_end - dp->width_start;
+ if (max_width_length < width_length)
+ max_width_length = width_length;
+ }
+
+ /* Parse the precision. */
+ if (*cp == '.')
+ {
+ cp++;
+ if (*cp == '*')
+ {
+ dp->precision_start = cp - 1;
+ cp++;
+ dp->precision_end = cp;
+ if (max_precision_length < 2)
+ max_precision_length = 2;
+
+ /* Test for positional argument. */
+ if (*cp >= '0' && *cp <= '9')
+ {
+ const CHAR_T *np;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ ;
+ if (*np == '$')
+ {
+ size_t n = 0;
+
+ for (np = cp; *np >= '0' && *np <= '9'; np++)
+ n = xsum (xtimes (n, 10), *np - '0');
+ if (n == 0)
+ /* Positional argument 0. */
+ goto error;
+ if (size_overflow_p (n))
+ /* n too large, would lead to out of memory
+ later. */
+ goto error;
+ dp->precision_arg_index = n - 1;
+ cp = np + 1;
+ }
+ }
+ if (dp->precision_arg_index == ARG_NONE)
+ {
+ dp->precision_arg_index = arg_posn++;
+ if (dp->precision_arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->precision_arg_index, TYPE_INT);
+ }
+ else
+ {
+ size_t precision_length;
+
+ dp->precision_start = cp - 1;
+ for (; *cp >= '0' && *cp <= '9'; cp++)
+ ;
+ dp->precision_end = cp;
+ precision_length = dp->precision_end - dp->precision_start;
+ if (max_precision_length < precision_length)
+ max_precision_length = precision_length;
+ }
+ }
+
+ {
+ arg_type type;
+
+ /* Parse argument type/size specifiers. */
+ {
+ int flags = 0;
+
+ for (;;)
+ {
+ if (*cp == 'h')
+ {
+ flags |= (1 << (flags & 1));
+ cp++;
+ }
+ else if (*cp == 'L')
+ {
+ flags |= 4;
+ cp++;
+ }
+ else if (*cp == 'l')
+ {
+ flags += 8;
+ cp++;
+ }
+ else if (*cp == 'j')
+ {
+ if (sizeof (intmax_t) > sizeof (long))
+ {
+ /* intmax_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (intmax_t) > sizeof (int))
+ {
+ /* intmax_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+ else if (*cp == 'z' || *cp == 'Z')
+ {
+ /* 'z' is standardized in ISO C 99, but glibc uses 'Z'
+ because the warning facility in gcc-2.95.2 understands
+ only 'Z' (see gcc-2.95.2/gcc/c-common.c:1784). */
+ if (sizeof (size_t) > sizeof (long))
+ {
+ /* size_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (size_t) > sizeof (int))
+ {
+ /* size_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+ else if (*cp == 't')
+ {
+ if (sizeof (ptrdiff_t) > sizeof (long))
+ {
+ /* ptrdiff_t = long long */
+ flags += 16;
+ }
+ else if (sizeof (ptrdiff_t) > sizeof (int))
+ {
+ /* ptrdiff_t = long */
+ flags += 8;
+ }
+ cp++;
+ }
+ else
+ break;
+ }
+
+ /* Read the conversion character. */
+ c = *cp++;
+ switch (c)
+ {
+ case 'd': case 'i':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_LONGLONGINT;
+ else
+#endif
+ /* If 'long long' exists and is the same as 'long', we parse
+ "lld" into TYPE_LONGINT. */
+ if (flags >= 8)
+ type = TYPE_LONGINT;
+ else if (flags & 2)
+ type = TYPE_SCHAR;
+ else if (flags & 1)
+ type = TYPE_SHORT;
+ else
+ type = TYPE_INT;
+ break;
+ case 'o': case 'u': case 'x': case 'X':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_ULONGLONGINT;
+ else
+#endif
+ /* If 'unsigned long long' exists and is the same as
+ 'unsigned long', we parse "llu" into TYPE_ULONGINT. */
+ if (flags >= 8)
+ type = TYPE_ULONGINT;
+ else if (flags & 2)
+ type = TYPE_UCHAR;
+ else if (flags & 1)
+ type = TYPE_USHORT;
+ else
+ type = TYPE_UINT;
+ break;
+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+ case 'a': case 'A':
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_LONGDOUBLE;
+ else
+ type = TYPE_DOUBLE;
+ break;
+ case 'c':
+ if (flags >= 8)
+#if HAVE_WINT_T
+ type = TYPE_WIDE_CHAR;
+#else
+ goto error;
+#endif
+ else
+ type = TYPE_CHAR;
+ break;
+#if HAVE_WINT_T
+ case 'C':
+ type = TYPE_WIDE_CHAR;
+ c = 'c';
+ break;
+#endif
+ case 's':
+ if (flags >= 8)
+#if HAVE_WCHAR_T
+ type = TYPE_WIDE_STRING;
+#else
+ goto error;
+#endif
+ else
+ type = TYPE_STRING;
+ break;
+#if HAVE_WCHAR_T
+ case 'S':
+ type = TYPE_WIDE_STRING;
+ c = 's';
+ break;
+#endif
+ case 'p':
+ type = TYPE_POINTER;
+ break;
+ case 'n':
+#if HAVE_LONG_LONG_INT
+ /* If 'long long' exists and is larger than 'long': */
+ if (flags >= 16 || (flags & 4))
+ type = TYPE_COUNT_LONGLONGINT_POINTER;
+ else
+#endif
+ /* If 'long long' exists and is the same as 'long', we parse
+ "lln" into TYPE_COUNT_LONGINT_POINTER. */
+ if (flags >= 8)
+ type = TYPE_COUNT_LONGINT_POINTER;
+ else if (flags & 2)
+ type = TYPE_COUNT_SCHAR_POINTER;
+ else if (flags & 1)
+ type = TYPE_COUNT_SHORT_POINTER;
+ else
+ type = TYPE_COUNT_INT_POINTER;
+ break;
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ case 'U':
+ if (flags >= 16)
+ type = TYPE_U32_STRING;
+ else if (flags >= 8)
+ type = TYPE_U16_STRING;
+ else
+ type = TYPE_U8_STRING;
+ break;
+#endif
+ case '%':
+ type = TYPE_NONE;
+ break;
+ default:
+ /* Unknown conversion character. */
+ goto error;
+ }
+ }
+
+ if (type != TYPE_NONE)
+ {
+ dp->arg_index = arg_index;
+ if (dp->arg_index == ARG_NONE)
+ {
+ dp->arg_index = arg_posn++;
+ if (dp->arg_index == ARG_NONE)
+ /* arg_posn wrapped around. */
+ goto error;
+ }
+ REGISTER_ARG (dp->arg_index, type);
+ }
+ dp->conversion = c;
+ dp->dir_end = cp;
+ }
+
+ d->count++;
+ if (d->count >= d_allocated)
+ {
+ size_t memory_size;
+ DIRECTIVE *memory;
+
+ d_allocated = xtimes (d_allocated, 2);
+ memory_size = xtimes (d_allocated, sizeof (DIRECTIVE));
+ if (size_overflow_p (memory_size))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ memory = (DIRECTIVE *) realloc (d->dir, memory_size);
+ if (memory == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ d->dir = memory;
+ }
+ }
+#if CHAR_T_ONLY_ASCII
+ else if (!c_isascii (c))
+ {
+ /* Non-ASCII character. Not supported. */
+ goto error;
+ }
+#endif
+ }
+ d->dir[d->count].dir_start = cp;
+
+ d->max_width_length = max_width_length;
+ d->max_precision_length = max_precision_length;
+ return 0;
+
+error:
+ if (a->arg)
+ free (a->arg);
+ if (d->dir)
+ free (d->dir);
+ errno = EINVAL;
+ return -1;
+
+out_of_memory:
+ if (a->arg)
+ free (a->arg);
+ if (d->dir)
+ free (d->dir);
+out_of_memory_1:
+ errno = ENOMEM;
+ return -1;
+}
+
+#undef PRINTF_PARSE
+#undef DIRECTIVES
+#undef DIRECTIVE
+#undef CHAR_T_ONLY_ASCII
+#undef CHAR_T
diff --git a/intl/printf-parse.h b/intl/printf-parse.h
new file mode 100644
index 0000000..e785338
--- /dev/null
+++ b/intl/printf-parse.h
@@ -0,0 +1,75 @@
+/* Parse printf format string.
+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _PRINTF_PARSE_H
+#define _PRINTF_PARSE_H
+
+#include "printf-args.h"
+
+
+/* Flags */
+#define FLAG_GROUP 1 /* ' flag */
+#define FLAG_LEFT 2 /* - flag */
+#define FLAG_SHOWSIGN 4 /* + flag */
+#define FLAG_SPACE 8 /* space flag */
+#define FLAG_ALT 16 /* # flag */
+#define FLAG_ZERO 32
+
+/* arg_index value indicating that no argument is consumed. */
+#define ARG_NONE (~(size_t)0)
+
+/* A parsed directive. */
+typedef struct
+{
+ const char* dir_start;
+ const char* dir_end;
+ int flags;
+ const char* width_start;
+ const char* width_end;
+ size_t width_arg_index;
+ const char* precision_start;
+ const char* precision_end;
+ size_t precision_arg_index;
+ char conversion; /* d i o u x X f e E g G c s p n U % but not C S */
+ size_t arg_index;
+}
+char_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ char_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+char_directives;
+
+
+/* Parses the format string. Fills in the number N of directives, and fills
+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
+ to the end of the format string. Also fills in the arg_type fields of the
+ arguments and the needed count of arguments. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int printf_parse (const char *format, char_directives *d, arguments *a);
+
+#endif /* _PRINTF_PARSE_H */
diff --git a/intl/printf.c b/intl/printf.c
new file mode 100644
index 0000000..0088e51
--- /dev/null
+++ b/intl/printf.c
@@ -0,0 +1,427 @@
+/* Formatted output to strings, using POSIX/XSI format strings with positions.
+ Copyright (C) 2003, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2003.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#include <stdio.h>
+
+#if !HAVE_POSIX_PRINTF
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */
+#ifndef EOVERFLOW
+# define EOVERFLOW E2BIG
+#endif
+
+/* When building a DLL, we must export some functions. Note that because
+ the functions are only defined for binary backward compatibility, we
+ don't need to use __declspec(dllimport) in any case. */
+#if defined _MSC_VER && BUILDING_DLL
+# define DLL_EXPORTED __declspec(dllexport)
+#else
+# define DLL_EXPORTED
+#endif
+
+#define STATIC static
+
+/* This needs to be consistent with libgnuintl.h.in. */
+#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
+/* Don't break __attribute__((format(printf,M,N))).
+ This redefinition is only possible because the libc in NetBSD, Cygwin,
+ mingw does not have a function __printf__. */
+# define libintl_printf __printf__
+#endif
+
+/* Define auxiliary functions declared in "printf-args.h". */
+#include "printf-args.c"
+
+/* Define auxiliary functions declared in "printf-parse.h". */
+#include "printf-parse.c"
+
+/* Define functions declared in "vasnprintf.h". */
+#define vasnprintf libintl_vasnprintf
+#include "vasnprintf.c"
+#if 0 /* not needed */
+#define asnprintf libintl_asnprintf
+#include "asnprintf.c"
+#endif
+
+DLL_EXPORTED
+int
+libintl_vfprintf (FILE *stream, const char *format, va_list args)
+{
+ if (strchr (format, '$') == NULL)
+ return vfprintf (stream, format, args);
+ else
+ {
+ size_t length;
+ char *result = libintl_vasnprintf (NULL, &length, format, args);
+ int retval = -1;
+ if (result != NULL)
+ {
+ size_t written = fwrite (result, 1, length, stream);
+ free (result);
+ if (written == length)
+ {
+ if (length > INT_MAX)
+ errno = EOVERFLOW;
+ else
+ retval = length;
+ }
+ }
+ return retval;
+ }
+}
+
+DLL_EXPORTED
+int
+libintl_fprintf (FILE *stream, const char *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vfprintf (stream, format, args);
+ va_end (args);
+ return retval;
+}
+
+DLL_EXPORTED
+int
+libintl_vprintf (const char *format, va_list args)
+{
+ return libintl_vfprintf (stdout, format, args);
+}
+
+DLL_EXPORTED
+int
+libintl_printf (const char *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vprintf (format, args);
+ va_end (args);
+ return retval;
+}
+
+DLL_EXPORTED
+int
+libintl_vsprintf (char *resultbuf, const char *format, va_list args)
+{
+ if (strchr (format, '$') == NULL)
+ return vsprintf (resultbuf, format, args);
+ else
+ {
+ size_t length = (size_t) ~0 / (4 * sizeof (char));
+ char *result = libintl_vasnprintf (resultbuf, &length, format, args);
+ if (result != resultbuf)
+ {
+ free (result);
+ return -1;
+ }
+ if (length > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ else
+ return length;
+ }
+}
+
+DLL_EXPORTED
+int
+libintl_sprintf (char *resultbuf, const char *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vsprintf (resultbuf, format, args);
+ va_end (args);
+ return retval;
+}
+
+#if HAVE_SNPRINTF
+
+# if HAVE_DECL__SNPRINTF
+ /* Windows. */
+# define system_vsnprintf _vsnprintf
+# else
+ /* Unix. */
+# define system_vsnprintf vsnprintf
+# endif
+
+DLL_EXPORTED
+int
+libintl_vsnprintf (char *resultbuf, size_t length, const char *format, va_list args)
+{
+ if (strchr (format, '$') == NULL)
+ return system_vsnprintf (resultbuf, length, format, args);
+ else
+ {
+ size_t maxlength = length;
+ char *result = libintl_vasnprintf (resultbuf, &length, format, args);
+ if (result != resultbuf)
+ {
+ if (maxlength > 0)
+ {
+ size_t pruned_length =
+ (length < maxlength ? length : maxlength - 1);
+ memcpy (resultbuf, result, pruned_length);
+ resultbuf[pruned_length] = '\0';
+ }
+ free (result);
+ }
+ if (length > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ else
+ return length;
+ }
+}
+
+DLL_EXPORTED
+int
+libintl_snprintf (char *resultbuf, size_t length, const char *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vsnprintf (resultbuf, length, format, args);
+ va_end (args);
+ return retval;
+}
+
+#endif
+
+#if HAVE_ASPRINTF
+
+DLL_EXPORTED
+int
+libintl_vasprintf (char **resultp, const char *format, va_list args)
+{
+ size_t length;
+ char *result = libintl_vasnprintf (NULL, &length, format, args);
+ if (result == NULL)
+ return -1;
+ if (length > INT_MAX)
+ {
+ free (result);
+ errno = EOVERFLOW;
+ return -1;
+ }
+ *resultp = result;
+ return length;
+}
+
+DLL_EXPORTED
+int
+libintl_asprintf (char **resultp, const char *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vasprintf (resultp, format, args);
+ va_end (args);
+ return retval;
+}
+
+#endif
+
+#if HAVE_FWPRINTF
+
+#include <wchar.h>
+
+#define WIDE_CHAR_VERSION 1
+
+#include "wprintf-parse.h"
+/* Define auxiliary functions declared in "wprintf-parse.h". */
+#define CHAR_T wchar_t
+#define DIRECTIVE wchar_t_directive
+#define DIRECTIVES wchar_t_directives
+#define PRINTF_PARSE wprintf_parse
+#include "printf-parse.c"
+
+/* Define functions declared in "vasnprintf.h". */
+#define vasnwprintf libintl_vasnwprintf
+#include "vasnprintf.c"
+#if 0 /* not needed */
+#define asnwprintf libintl_asnwprintf
+#include "asnprintf.c"
+#endif
+
+# if HAVE_DECL__SNWPRINTF
+ /* Windows. */
+# define system_vswprintf _vsnwprintf
+# else
+ /* Unix. */
+# define system_vswprintf vswprintf
+# endif
+
+DLL_EXPORTED
+int
+libintl_vfwprintf (FILE *stream, const wchar_t *format, va_list args)
+{
+ if (wcschr (format, '$') == NULL)
+ return vfwprintf (stream, format, args);
+ else
+ {
+ size_t length;
+ wchar_t *result = libintl_vasnwprintf (NULL, &length, format, args);
+ int retval = -1;
+ if (result != NULL)
+ {
+ size_t i;
+ for (i = 0; i < length; i++)
+ if (fputwc (result[i], stream) == WEOF)
+ break;
+ free (result);
+ if (i == length)
+ {
+ if (length > INT_MAX)
+ errno = EOVERFLOW;
+ else
+ retval = length;
+ }
+ }
+ return retval;
+ }
+}
+
+DLL_EXPORTED
+int
+libintl_fwprintf (FILE *stream, const wchar_t *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vfwprintf (stream, format, args);
+ va_end (args);
+ return retval;
+}
+
+DLL_EXPORTED
+int
+libintl_vwprintf (const wchar_t *format, va_list args)
+{
+ return libintl_vfwprintf (stdout, format, args);
+}
+
+DLL_EXPORTED
+int
+libintl_wprintf (const wchar_t *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vwprintf (format, args);
+ va_end (args);
+ return retval;
+}
+
+DLL_EXPORTED
+int
+libintl_vswprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, va_list args)
+{
+ if (wcschr (format, '$') == NULL)
+ return system_vswprintf (resultbuf, length, format, args);
+ else
+ {
+ size_t maxlength = length;
+ wchar_t *result = libintl_vasnwprintf (resultbuf, &length, format, args);
+ if (result != resultbuf)
+ {
+ if (maxlength > 0)
+ {
+ size_t pruned_length =
+ (length < maxlength ? length : maxlength - 1);
+ memcpy (resultbuf, result, pruned_length * sizeof (wchar_t));
+ resultbuf[pruned_length] = 0;
+ }
+ free (result);
+ /* Unlike vsnprintf, which has to return the number of character that
+ would have been produced if the resultbuf had been sufficiently
+ large, the vswprintf function has to return a negative value if
+ the resultbuf was not sufficiently large. */
+ if (length >= maxlength)
+ return -1;
+ }
+ if (length > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+ else
+ return length;
+ }
+}
+
+DLL_EXPORTED
+int
+libintl_swprintf (wchar_t *resultbuf, size_t length, const wchar_t *format, ...)
+{
+ va_list args;
+ int retval;
+
+ va_start (args, format);
+ retval = libintl_vswprintf (resultbuf, length, format, args);
+ va_end (args);
+ return retval;
+}
+
+#endif
+
+#endif
diff --git a/intl/ref-add.sin b/intl/ref-add.sin
new file mode 100644
index 0000000..3678c28
--- /dev/null
+++ b/intl/ref-add.sin
@@ -0,0 +1,31 @@
+# Add this package to a list of references stored in a text file.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+# Written by Bruno Haible <haible at clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ ta
+ :a
+ s/ @PACKAGE@ / @PACKAGE@ /
+ tb
+ s/ $/ @PACKAGE@ /
+ :b
+ s/^/# Packages using this file:/
+}
diff --git a/intl/ref-del.sin b/intl/ref-del.sin
new file mode 100644
index 0000000..0c12d8e
--- /dev/null
+++ b/intl/ref-del.sin
@@ -0,0 +1,26 @@
+# Remove this package from a list of references stored in a text file.
+#
+# Copyright (C) 2000 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+# Written by Bruno Haible <haible at clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ s/ @PACKAGE@ / /
+ s/^/# Packages using this file:/
+}
diff --git a/intl/relocatable.c b/intl/relocatable.c
new file mode 100644
index 0000000..5e1dde6
--- /dev/null
+++ b/intl/relocatable.c
@@ -0,0 +1,468 @@
+/* Provide relocatable packages.
+ Copyright (C) 2003-2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2003.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+
+/* Tell glibc's <stdio.h> to provide a prototype for getline().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#include <config.h>
+
+/* Specification. */
+#include "relocatable.h"
+
+#if ENABLE_RELOCATABLE
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef NO_XMALLOC
+# define xmalloc malloc
+#else
+# include "xalloc.h"
+#endif
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#if DEPENDS_ON_LIBCHARSET
+# include <libcharset.h>
+#endif
+#if DEPENDS_ON_LIBICONV && HAVE_ICONV
+# include <iconv.h>
+#endif
+#if DEPENDS_ON_LIBINTL && ENABLE_NLS
+# include <libintl.h>
+#endif
+
+/* Faked cheap 'bool'. */
+#undef bool
+#undef false
+#undef true
+#define bool int
+#define false 0
+#define true 1
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+# define FILE_SYSTEM_PREFIX_LEN(P) 0
+#endif
+
+/* Original installation prefix. */
+static char *orig_prefix;
+static size_t orig_prefix_len;
+/* Current installation prefix. */
+static char *curr_prefix;
+static size_t curr_prefix_len;
+/* These prefixes do not end in a slash. Anything that will be concatenated
+ to them must start with a slash. */
+
+/* Sets the original and the current installation prefix of this module.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+static void
+set_this_relocation_prefix (const char *orig_prefix_arg,
+ const char *curr_prefix_arg)
+{
+ if (orig_prefix_arg != NULL && curr_prefix_arg != NULL
+ /* Optimization: if orig_prefix and curr_prefix are equal, the
+ relocation is a nop. */
+ && strcmp (orig_prefix_arg, curr_prefix_arg) != 0)
+ {
+ /* Duplicate the argument strings. */
+ char *memory;
+
+ orig_prefix_len = strlen (orig_prefix_arg);
+ curr_prefix_len = strlen (curr_prefix_arg);
+ memory = (char *) xmalloc (orig_prefix_len + 1 + curr_prefix_len + 1);
+#ifdef NO_XMALLOC
+ if (memory != NULL)
+#endif
+ {
+ memcpy (memory, orig_prefix_arg, orig_prefix_len + 1);
+ orig_prefix = memory;
+ memory += orig_prefix_len + 1;
+ memcpy (memory, curr_prefix_arg, curr_prefix_len + 1);
+ curr_prefix = memory;
+ return;
+ }
+ }
+ orig_prefix = NULL;
+ curr_prefix = NULL;
+ /* Don't worry about wasted memory here - this function is usually only
+ called once. */
+}
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+void
+set_relocation_prefix (const char *orig_prefix_arg, const char *curr_prefix_arg)
+{
+ set_this_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+
+ /* Now notify all dependent libraries. */
+#if DEPENDS_ON_LIBCHARSET
+ libcharset_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+#if DEPENDS_ON_LIBICONV && HAVE_ICONV && _LIBICONV_VERSION >= 0x0109
+ libiconv_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+#if DEPENDS_ON_LIBINTL && ENABLE_NLS && defined libintl_set_relocation_prefix
+ libintl_set_relocation_prefix (orig_prefix_arg, curr_prefix_arg);
+#endif
+}
+
+#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
+
+/* Convenience function:
+ Computes the current installation prefix, based on the original
+ installation prefix, the original installation directory of a particular
+ file, and the current pathname of this file. Returns NULL upon failure. */
+#ifdef IN_LIBRARY
+#define compute_curr_prefix local_compute_curr_prefix
+static
+#endif
+const char *
+compute_curr_prefix (const char *orig_installprefix,
+ const char *orig_installdir,
+ const char *curr_pathname)
+{
+ const char *curr_installdir;
+ const char *rel_installdir;
+
+ if (curr_pathname == NULL)
+ return NULL;
+
+ /* Determine the relative installation directory, relative to the prefix.
+ This is simply the difference between orig_installprefix and
+ orig_installdir. */
+ if (strncmp (orig_installprefix, orig_installdir, strlen (orig_installprefix))
+ != 0)
+ /* Shouldn't happen - nothing should be installed outside $(prefix). */
+ return NULL;
+ rel_installdir = orig_installdir + strlen (orig_installprefix);
+
+ /* Determine the current installation directory. */
+ {
+ const char *p_base = curr_pathname + FILE_SYSTEM_PREFIX_LEN (curr_pathname);
+ const char *p = curr_pathname + strlen (curr_pathname);
+ char *q;
+
+ while (p > p_base)
+ {
+ p--;
+ if (ISSLASH (*p))
+ break;
+ }
+
+ q = (char *) xmalloc (p - curr_pathname + 1);
+#ifdef NO_XMALLOC
+ if (q == NULL)
+ return NULL;
+#endif
+ memcpy (q, curr_pathname, p - curr_pathname);
+ q[p - curr_pathname] = '\0';
+ curr_installdir = q;
+ }
+
+ /* Compute the current installation prefix by removing the trailing
+ rel_installdir from it. */
+ {
+ const char *rp = rel_installdir + strlen (rel_installdir);
+ const char *cp = curr_installdir + strlen (curr_installdir);
+ const char *cp_base =
+ curr_installdir + FILE_SYSTEM_PREFIX_LEN (curr_installdir);
+
+ while (rp > rel_installdir && cp > cp_base)
+ {
+ bool same = false;
+ const char *rpi = rp;
+ const char *cpi = cp;
+
+ while (rpi > rel_installdir && cpi > cp_base)
+ {
+ rpi--;
+ cpi--;
+ if (ISSLASH (*rpi) || ISSLASH (*cpi))
+ {
+ if (ISSLASH (*rpi) && ISSLASH (*cpi))
+ same = true;
+ break;
+ }
+ /* Do case-insensitive comparison if the filesystem is always or
+ often case-insensitive. It's better to accept the comparison
+ if the difference is only in case, rather than to fail. */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, Cygwin, OS/2, DOS - case insignificant filesystem */
+ if ((*rpi >= 'a' && *rpi <= 'z' ? *rpi - 'a' + 'A' : *rpi)
+ != (*cpi >= 'a' && *cpi <= 'z' ? *cpi - 'a' + 'A' : *cpi))
+ break;
+#else
+ if (*rpi != *cpi)
+ break;
+#endif
+ }
+ if (!same)
+ break;
+ /* The last pathname component was the same. opi and cpi now point
+ to the slash before it. */
+ rp = rpi;
+ cp = cpi;
+ }
+
+ if (rp > rel_installdir)
+ /* Unexpected: The curr_installdir does not end with rel_installdir. */
+ return NULL;
+
+ {
+ size_t curr_prefix_len = cp - curr_installdir;
+ char *curr_prefix;
+
+ curr_prefix = (char *) xmalloc (curr_prefix_len + 1);
+#ifdef NO_XMALLOC
+ if (curr_prefix == NULL)
+ return NULL;
+#endif
+ memcpy (curr_prefix, curr_installdir, curr_prefix_len);
+ curr_prefix[curr_prefix_len] = '\0';
+
+ return curr_prefix;
+ }
+ }
+}
+
+#endif /* !IN_LIBRARY || PIC */
+
+#if defined PIC && defined INSTALLDIR
+
+/* Full pathname of shared library, or NULL. */
+static char *shared_library_fullname;
+
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__
+
+/* Determine the full pathname of the shared library when it is loaded. */
+
+BOOL WINAPI
+DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved)
+{
+ (void) reserved;
+
+ if (event == DLL_PROCESS_ATTACH)
+ {
+ /* The DLL is being loaded into an application's address range. */
+ static char location[MAX_PATH];
+
+ if (!GetModuleFileName (module_handle, location, sizeof (location)))
+ /* Shouldn't happen. */
+ return FALSE;
+
+ if (!IS_PATH_WITH_DIR (location))
+ /* Shouldn't happen. */
+ return FALSE;
+
+ {
+#if defined __CYGWIN__
+ /* On Cygwin, we need to convert paths coming from Win32 system calls
+ to the Unix-like slashified notation. */
+ static char location_as_posix_path[2 * MAX_PATH];
+ /* There's no error return defined for cygwin_conv_to_posix_path.
+ See cygwin-api/func-cygwin-conv-to-posix-path.html.
+ Does it overflow the buffer of expected size MAX_PATH or does it
+ truncate the path? I don't know. Let's catch both. */
+ cygwin_conv_to_posix_path (location, location_as_posix_path);
+ location_as_posix_path[MAX_PATH - 1] = '\0';
+ if (strlen (location_as_posix_path) >= MAX_PATH - 1)
+ /* A sign of buffer overflow or path truncation. */
+ return FALSE;
+ shared_library_fullname = strdup (location_as_posix_path);
+#else
+ shared_library_fullname = strdup (location);
+#endif
+ }
+ }
+
+ return TRUE;
+}
+
+#else /* Unix except Cygwin */
+
+static void
+find_shared_library_fullname ()
+{
+#if defined __linux__ && __GLIBC__ >= 2
+ /* Linux has /proc/self/maps. glibc 2 has the getline() function. */
+ FILE *fp;
+
+ /* Open the current process' maps file. It describes one VMA per line. */
+ fp = fopen ("/proc/self/maps", "r");
+ if (fp)
+ {
+ unsigned long address = (unsigned long) &find_shared_library_fullname;
+ for (;;)
+ {
+ unsigned long start, end;
+ int c;
+
+ if (fscanf (fp, "%lx-%lx", &start, &end) != 2)
+ break;
+ if (address >= start && address <= end - 1)
+ {
+ /* Found it. Now see if this line contains a filename. */
+ while (c = getc (fp), c != EOF && c != '\n' && c != '/')
+ continue;
+ if (c == '/')
+ {
+ size_t size;
+ int len;
+
+ ungetc (c, fp);
+ shared_library_fullname = NULL; size = 0;
+ len = getline (&shared_library_fullname, &size, fp);
+ if (len >= 0)
+ {
+ /* Success: filled shared_library_fullname. */
+ if (len > 0 && shared_library_fullname[len - 1] == '\n')
+ shared_library_fullname[len - 1] = '\0';
+ }
+ }
+ break;
+ }
+ while (c = getc (fp), c != EOF && c != '\n')
+ continue;
+ }
+ fclose (fp);
+ }
+#endif
+}
+
+#endif /* (WIN32 or Cygwin) / (Unix except Cygwin) */
+
+/* Return the full pathname of the current shared library.
+ Return NULL if unknown.
+ Guaranteed to work only on Linux, Cygwin and Woe32. */
+static char *
+get_shared_library_fullname ()
+{
+#if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
+ static bool tried_find_shared_library_fullname;
+ if (!tried_find_shared_library_fullname)
+ {
+ find_shared_library_fullname ();
+ tried_find_shared_library_fullname = true;
+ }
+#endif
+ return shared_library_fullname;
+}
+
+#endif /* PIC */
+
+/* Returns the pathname, relocated according to the current installation
+ directory. */
+const char *
+relocate (const char *pathname)
+{
+#if defined PIC && defined INSTALLDIR
+ static int initialized;
+
+ /* Initialization code for a shared library. */
+ if (!initialized)
+ {
+ /* At this point, orig_prefix and curr_prefix likely have already been
+ set through the main program's set_program_name_and_installdir
+ function. This is sufficient in the case that the library has
+ initially been installed in the same orig_prefix. But we can do
+ better, to also cover the cases that 1. it has been installed
+ in a different prefix before being moved to orig_prefix and (later)
+ to curr_prefix, 2. unlike the program, it has not moved away from
+ orig_prefix. */
+ const char *orig_installprefix = INSTALLPREFIX;
+ const char *orig_installdir = INSTALLDIR;
+ const char *curr_prefix_better;
+
+ curr_prefix_better =
+ compute_curr_prefix (orig_installprefix, orig_installdir,
+ get_shared_library_fullname ());
+ if (curr_prefix_better == NULL)
+ curr_prefix_better = curr_prefix;
+
+ set_relocation_prefix (orig_installprefix, curr_prefix_better);
+
+ initialized = 1;
+ }
+#endif
+
+ /* Note: It is not necessary to perform case insensitive comparison here,
+ even for DOS-like filesystems, because the pathname argument was
+ typically created from the same Makefile variable as orig_prefix came
+ from. */
+ if (orig_prefix != NULL && curr_prefix != NULL
+ && strncmp (pathname, orig_prefix, orig_prefix_len) == 0)
+ {
+ if (pathname[orig_prefix_len] == '\0')
+ /* pathname equals orig_prefix. */
+ return curr_prefix;
+ if (ISSLASH (pathname[orig_prefix_len]))
+ {
+ /* pathname starts with orig_prefix. */
+ const char *pathname_tail = &pathname[orig_prefix_len];
+ char *result =
+ (char *) xmalloc (curr_prefix_len + strlen (pathname_tail) + 1);
+
+#ifdef NO_XMALLOC
+ if (result != NULL)
+#endif
+ {
+ memcpy (result, curr_prefix, curr_prefix_len);
+ strcpy (result + curr_prefix_len, pathname_tail);
+ return result;
+ }
+ }
+ }
+ /* Nothing to relocate. */
+ return pathname;
+}
+
+#endif
diff --git a/intl/relocatable.h b/intl/relocatable.h
new file mode 100644
index 0000000..f6d3832
--- /dev/null
+++ b/intl/relocatable.h
@@ -0,0 +1,79 @@
+/* Provide relocatable packages.
+ Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2003.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _RELOCATABLE_H
+#define _RELOCATABLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* This can be enabled through the configure --enable-relocatable option. */
+#if ENABLE_RELOCATABLE
+
+/* When building a DLL, we must export some functions. Note that because
+ this is a private .h file, we don't need to use __declspec(dllimport)
+ in any case. */
+#if HAVE_VISIBILITY && BUILDING_DLL
+# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default")))
+#elif defined _MSC_VER && BUILDING_DLL
+# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport)
+#else
+# define RELOCATABLE_DLL_EXPORTED
+#endif
+
+/* Sets the original and the current installation prefix of the package.
+ Relocation simply replaces a pathname starting with the original prefix
+ by the corresponding pathname with the current prefix instead. Both
+ prefixes should be directory names without trailing slash (i.e. use ""
+ instead of "/"). */
+extern RELOCATABLE_DLL_EXPORTED void
+ set_relocation_prefix (const char *orig_prefix,
+ const char *curr_prefix);
+
+/* Returns the pathname, relocated according to the current installation
+ directory. */
+extern const char * relocate (const char *pathname);
+
+/* Memory management: relocate() leaks memory, because it has to construct
+ a fresh pathname. If this is a problem because your program calls
+ relocate() frequently, think about caching the result. */
+
+/* Convenience function:
+ Computes the current installation prefix, based on the original
+ installation prefix, the original installation directory of a particular
+ file, and the current pathname of this file. Returns NULL upon failure. */
+extern const char * compute_curr_prefix (const char *orig_installprefix,
+ const char *orig_installdir,
+ const char *curr_pathname);
+
+#else
+
+/* By default, we use the hardwired pathnames. */
+#define relocate(pathname) (pathname)
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _RELOCATABLE_H */
diff --git a/intl/textdomain.c b/intl/textdomain.c
new file mode 100644
index 0000000..70131bc
--- /dev/null
+++ b/intl/textdomain.c
@@ -0,0 +1,127 @@
+/* Implementation of the textdomain(3) function.
+ Copyright (C) 1995-1998, 2000-2003, 2005-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* Handle multi-threaded applications. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+# define gl_rwlock_define __libc_rwlock_define
+# define gl_rwlock_wrlock __libc_rwlock_wrlock
+# define gl_rwlock_unlock __libc_rwlock_unlock
+#else
+# include "lock.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define TEXTDOMAIN __textdomain
+# ifndef strdup
+# define strdup(str) __strdup (str)
+# endif
+#else
+# define TEXTDOMAIN libintl_textdomain
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+gl_rwlock_define (extern, _nl_state_lock attribute_hidden)
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+char *
+TEXTDOMAIN (const char *domainname)
+{
+ char *new_domain;
+ char *old_domain;
+
+ /* A NULL pointer requests the current setting. */
+ if (domainname == NULL)
+ return (char *) _nl_current_default_domain;
+
+ gl_rwlock_wrlock (_nl_state_lock);
+
+ old_domain = (char *) _nl_current_default_domain;
+
+ /* If domain name is the null string set to default domain "messages". */
+ if (domainname[0] == '\0'
+ || strcmp (domainname, _nl_default_default_domain) == 0)
+ {
+ _nl_current_default_domain = _nl_default_default_domain;
+ new_domain = (char *) _nl_current_default_domain;
+ }
+ else if (strcmp (domainname, old_domain) == 0)
+ /* This can happen and people will use it to signal that some
+ environment variable changed. */
+ new_domain = old_domain;
+ else
+ {
+ /* If the following malloc fails `_nl_current_default_domain'
+ will be NULL. This value will be returned and so signals we
+ are out of core. */
+#if defined _LIBC || defined HAVE_STRDUP
+ new_domain = strdup (domainname);
+#else
+ size_t len = strlen (domainname) + 1;
+ new_domain = (char *) malloc (len);
+ if (new_domain != NULL)
+ memcpy (new_domain, domainname, len);
+#endif
+
+ if (new_domain != NULL)
+ _nl_current_default_domain = new_domain;
+ }
+
+ /* We use this possibility to signal a change of the loaded catalogs
+ since this is most likely the case and there is no other easy we
+ to do it. Do it only when the call was successful. */
+ if (new_domain != NULL)
+ {
+ ++_nl_msg_cat_cntr;
+
+ if (old_domain != new_domain && old_domain != _nl_default_default_domain)
+ free (old_domain);
+ }
+
+ gl_rwlock_unlock (_nl_state_lock);
+
+ return new_domain;
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__textdomain, textdomain);
+#endif
diff --git a/intl/tsearch.c b/intl/tsearch.c
new file mode 100644
index 0000000..d549dd4
--- /dev/null
+++ b/intl/tsearch.c
@@ -0,0 +1,684 @@
+/* Copyright (C) 1995, 1996, 1997, 2000, 2006 Free Software Foundation, Inc.
+ Contributed by Bernd Schmidt <crux at Pool.Informatik.RWTH-Aachen.DE>, 1997.
+
+ NOTE: The canonical source of this file is maintained with the GNU C
+ Library. Bugs can be reported to bug-glibc at gnu.org.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* Tree search for red/black trees.
+ The algorithm for adding nodes is taken from one of the many "Algorithms"
+ books by Robert Sedgewick, although the implementation differs.
+ The algorithm for deleting nodes can probably be found in a book named
+ "Introduction to Algorithms" by Cormen/Leiserson/Rivest. At least that's
+ the book that my professor took most algorithms from during the "Data
+ Structures" course...
+
+ Totally public domain. */
+
+/* Red/black trees are binary trees in which the edges are colored either red
+ or black. They have the following properties:
+ 1. The number of black edges on every path from the root to a leaf is
+ constant.
+ 2. No two red edges are adjacent.
+ Therefore there is an upper bound on the length of every path, it's
+ O(log n) where n is the number of nodes in the tree. No path can be longer
+ than 1+2*P where P is the length of the shortest path in the tree.
+ Useful for the implementation:
+ 3. If one of the children of a node is NULL, then the other one is red
+ (if it exists).
+
+ In the implementation, not the edges are colored, but the nodes. The color
+ interpreted as the color of the edge leading to this node. The color is
+ meaningless for the root node, but we color the root node black for
+ convenience. All added nodes are red initially.
+
+ Adding to a red/black tree is rather easy. The right place is searched
+ with a usual binary tree search. Additionally, whenever a node N is
+ reached that has two red successors, the successors are colored black and
+ the node itself colored red. This moves red edges up the tree where they
+ pose less of a problem once we get to really insert the new node. Changing
+ N's color to red may violate rule 2, however, so rotations may become
+ necessary to restore the invariants. Adding a new red leaf may violate
+ the same rule, so afterwards an additional check is run and the tree
+ possibly rotated.
+
+ Deleting is hairy. There are mainly two nodes involved: the node to be
+ deleted (n1), and another node that is to be unchained from the tree (n2).
+ If n1 has a successor (the node with a smallest key that is larger than
+ n1), then the successor becomes n2 and its contents are copied into n1,
+ otherwise n1 becomes n2.
+ Unchaining a node may violate rule 1: if n2 is black, one subtree is
+ missing one black edge afterwards. The algorithm must try to move this
+ error upwards towards the root, so that the subtree that does not have
+ enough black edges becomes the whole tree. Once that happens, the error
+ has disappeared. It may not be necessary to go all the way up, since it
+ is possible that rotations and recoloring can fix the error before that.
+
+ Although the deletion algorithm must walk upwards through the tree, we
+ do not store parent pointers in the nodes. Instead, delete allocates a
+ small array of parent pointers and fills it while descending the tree.
+ Since we know that the length of a path is O(log n), where n is the number
+ of nodes, this is likely to use less memory. */
+
+/* Tree rotations look like this:
+ A C
+ / \ / \
+ B C A G
+ / \ / \ --> / \
+ D E F G B F
+ / \
+ D E
+
+ In this case, A has been rotated left. This preserves the ordering of the
+ binary tree. */
+
+#include <config.h>
+
+/* Specification. */
+#ifdef IN_LIBINTL
+# include "tsearch.h"
+#else
+# include <search.h>
+#endif
+
+#include <stdlib.h>
+
+typedef int (*__compar_fn_t) (const void *, const void *);
+typedef void (*__action_fn_t) (const void *, VISIT, int);
+
+#ifndef weak_alias
+# define __tsearch tsearch
+# define __tfind tfind
+# define __tdelete tdelete
+# define __twalk twalk
+#endif
+
+#ifndef internal_function
+/* Inside GNU libc we mark some function in a special way. In other
+ environments simply ignore the marking. */
+# define internal_function
+#endif
+
+typedef struct node_t
+{
+ /* Callers expect this to be the first element in the structure - do not
+ move! */
+ const void *key;
+ struct node_t *left;
+ struct node_t *right;
+ unsigned int red:1;
+} *node;
+typedef const struct node_t *const_node;
+
+#undef DEBUGGING
+
+#ifdef DEBUGGING
+
+/* Routines to check tree invariants. */
+
+#include <assert.h>
+
+#define CHECK_TREE(a) check_tree(a)
+
+static void
+check_tree_recurse (node p, int d_sofar, int d_total)
+{
+ if (p == NULL)
+ {
+ assert (d_sofar == d_total);
+ return;
+ }
+
+ check_tree_recurse (p->left, d_sofar + (p->left && !p->left->red), d_total);
+ check_tree_recurse (p->right, d_sofar + (p->right && !p->right->red), d_total);
+ if (p->left)
+ assert (!(p->left->red && p->red));
+ if (p->right)
+ assert (!(p->right->red && p->red));
+}
+
+static void
+check_tree (node root)
+{
+ int cnt = 0;
+ node p;
+ if (root == NULL)
+ return;
+ root->red = 0;
+ for(p = root->left; p; p = p->left)
+ cnt += !p->red;
+ check_tree_recurse (root, 0, cnt);
+}
+
+
+#else
+
+#define CHECK_TREE(a)
+
+#endif
+
+/* Possibly "split" a node with two red successors, and/or fix up two red
+ edges in a row. ROOTP is a pointer to the lowest node we visited, PARENTP
+ and GPARENTP pointers to its parent/grandparent. P_R and GP_R contain the
+ comparison values that determined which way was taken in the tree to reach
+ ROOTP. MODE is 1 if we need not do the split, but must check for two red
+ edges between GPARENTP and ROOTP. */
+static void
+maybe_split_for_insert (node *rootp, node *parentp, node *gparentp,
+ int p_r, int gp_r, int mode)
+{
+ node root = *rootp;
+ node *rp, *lp;
+ rp = &(*rootp)->right;
+ lp = &(*rootp)->left;
+
+ /* See if we have to split this node (both successors red). */
+ if (mode == 1
+ || ((*rp) != NULL && (*lp) != NULL && (*rp)->red && (*lp)->red))
+ {
+ /* This node becomes red, its successors black. */
+ root->red = 1;
+ if (*rp)
+ (*rp)->red = 0;
+ if (*lp)
+ (*lp)->red = 0;
+
+ /* If the parent of this node is also red, we have to do
+ rotations. */
+ if (parentp != NULL && (*parentp)->red)
+ {
+ node gp = *gparentp;
+ node p = *parentp;
+ /* There are two main cases:
+ 1. The edge types (left or right) of the two red edges differ.
+ 2. Both red edges are of the same type.
+ There exist two symmetries of each case, so there is a total of
+ 4 cases. */
+ if ((p_r > 0) != (gp_r > 0))
+ {
+ /* Put the child at the top of the tree, with its parent
+ and grandparent as successors. */
+ p->red = 1;
+ gp->red = 1;
+ root->red = 0;
+ if (p_r < 0)
+ {
+ /* Child is left of parent. */
+ p->left = *rp;
+ *rp = p;
+ gp->right = *lp;
+ *lp = gp;
+ }
+ else
+ {
+ /* Child is right of parent. */
+ p->right = *lp;
+ *lp = p;
+ gp->left = *rp;
+ *rp = gp;
+ }
+ *gparentp = root;
+ }
+ else
+ {
+ *gparentp = *parentp;
+ /* Parent becomes the top of the tree, grandparent and
+ child are its successors. */
+ p->red = 0;
+ gp->red = 1;
+ if (p_r < 0)
+ {
+ /* Left edges. */
+ gp->left = p->right;
+ p->right = gp;
+ }
+ else
+ {
+ /* Right edges. */
+ gp->right = p->left;
+ p->left = gp;
+ }
+ }
+ }
+ }
+}
+
+/* Find or insert datum into search tree.
+ KEY is the key to be located, ROOTP is the address of tree root,
+ COMPAR the ordering function. */
+void *
+__tsearch (const void *key, void **vrootp, __compar_fn_t compar)
+{
+ node q;
+ node *parentp = NULL, *gparentp = NULL;
+ node *rootp = (node *) vrootp;
+ node *nextp;
+ int r = 0, p_r = 0, gp_r = 0; /* No they might not, Mr Compiler. */
+
+ if (rootp == NULL)
+ return NULL;
+
+ /* This saves some additional tests below. */
+ if (*rootp != NULL)
+ (*rootp)->red = 0;
+
+ CHECK_TREE (*rootp);
+
+ nextp = rootp;
+ while (*nextp != NULL)
+ {
+ node root = *rootp;
+ r = (*compar) (key, root->key);
+ if (r == 0)
+ return root;
+
+ maybe_split_for_insert (rootp, parentp, gparentp, p_r, gp_r, 0);
+ /* If that did any rotations, parentp and gparentp are now garbage.
+ That doesn't matter, because the values they contain are never
+ used again in that case. */
+
+ nextp = r < 0 ? &root->left : &root->right;
+ if (*nextp == NULL)
+ break;
+
+ gparentp = parentp;
+ parentp = rootp;
+ rootp = nextp;
+
+ gp_r = p_r;
+ p_r = r;
+ }
+
+ q = (struct node_t *) malloc (sizeof (struct node_t));
+ if (q != NULL)
+ {
+ *nextp = q; /* link new node to old */
+ q->key = key; /* initialize new node */
+ q->red = 1;
+ q->left = q->right = NULL;
+
+ if (nextp != rootp)
+ /* There may be two red edges in a row now, which we must avoid by
+ rotating the tree. */
+ maybe_split_for_insert (nextp, rootp, parentp, r, p_r, 1);
+ }
+
+ return q;
+}
+#ifdef weak_alias
+weak_alias (__tsearch, tsearch)
+#endif
+
+
+/* Find datum in search tree.
+ KEY is the key to be located, ROOTP is the address of tree root,
+ COMPAR the ordering function. */
+void *
+__tfind (key, vrootp, compar)
+ const void *key;
+ void *const *vrootp;
+ __compar_fn_t compar;
+{
+ node *rootp = (node *) vrootp;
+
+ if (rootp == NULL)
+ return NULL;
+
+ CHECK_TREE (*rootp);
+
+ while (*rootp != NULL)
+ {
+ node root = *rootp;
+ int r;
+
+ r = (*compar) (key, root->key);
+ if (r == 0)
+ return root;
+
+ rootp = r < 0 ? &root->left : &root->right;
+ }
+ return NULL;
+}
+#ifdef weak_alias
+weak_alias (__tfind, tfind)
+#endif
+
+
+/* Delete node with given key.
+ KEY is the key to be deleted, ROOTP is the address of the root of tree,
+ COMPAR the comparison function. */
+void *
+__tdelete (const void *key, void **vrootp, __compar_fn_t compar)
+{
+ node p, q, r, retval;
+ int cmp;
+ node *rootp = (node *) vrootp;
+ node root, unchained;
+ /* Stack of nodes so we remember the parents without recursion. It's
+ _very_ unlikely that there are paths longer than 40 nodes. The tree
+ would need to have around 250.000 nodes. */
+ int stacksize = 100;
+ int sp = 0;
+ node *nodestack[100];
+
+ if (rootp == NULL)
+ return NULL;
+ p = *rootp;
+ if (p == NULL)
+ return NULL;
+
+ CHECK_TREE (p);
+
+ while ((cmp = (*compar) (key, (*rootp)->key)) != 0)
+ {
+ if (sp == stacksize)
+ abort ();
+
+ nodestack[sp++] = rootp;
+ p = *rootp;
+ rootp = ((cmp < 0)
+ ? &(*rootp)->left
+ : &(*rootp)->right);
+ if (*rootp == NULL)
+ return NULL;
+ }
+
+ /* This is bogus if the node to be deleted is the root... this routine
+ really should return an integer with 0 for success, -1 for failure
+ and errno = ESRCH or something. */
+ retval = p;
+
+ /* We don't unchain the node we want to delete. Instead, we overwrite
+ it with its successor and unchain the successor. If there is no
+ successor, we really unchain the node to be deleted. */
+
+ root = *rootp;
+
+ r = root->right;
+ q = root->left;
+
+ if (q == NULL || r == NULL)
+ unchained = root;
+ else
+ {
+ node *parent = rootp, *up = &root->right;
+ for (;;)
+ {
+ if (sp == stacksize)
+ abort ();
+ nodestack[sp++] = parent;
+ parent = up;
+ if ((*up)->left == NULL)
+ break;
+ up = &(*up)->left;
+ }
+ unchained = *up;
+ }
+
+ /* We know that either the left or right successor of UNCHAINED is NULL.
+ R becomes the other one, it is chained into the parent of UNCHAINED. */
+ r = unchained->left;
+ if (r == NULL)
+ r = unchained->right;
+ if (sp == 0)
+ *rootp = r;
+ else
+ {
+ q = *nodestack[sp-1];
+ if (unchained == q->right)
+ q->right = r;
+ else
+ q->left = r;
+ }
+
+ if (unchained != root)
+ root->key = unchained->key;
+ if (!unchained->red)
+ {
+ /* Now we lost a black edge, which means that the number of black
+ edges on every path is no longer constant. We must balance the
+ tree. */
+ /* NODESTACK now contains all parents of R. R is likely to be NULL
+ in the first iteration. */
+ /* NULL nodes are considered black throughout - this is necessary for
+ correctness. */
+ while (sp > 0 && (r == NULL || !r->red))
+ {
+ node *pp = nodestack[sp - 1];
+ p = *pp;
+ /* Two symmetric cases. */
+ if (r == p->left)
+ {
+ /* Q is R's brother, P is R's parent. The subtree with root
+ R has one black edge less than the subtree with root Q. */
+ q = p->right;
+ if (q->red)
+ {
+ /* If Q is red, we know that P is black. We rotate P left
+ so that Q becomes the top node in the tree, with P below
+ it. P is colored red, Q is colored black.
+ This action does not change the black edge count for any
+ leaf in the tree, but we will be able to recognize one
+ of the following situations, which all require that Q
+ is black. */
+ q->red = 0;
+ p->red = 1;
+ /* Left rotate p. */
+ p->right = q->left;
+ q->left = p;
+ *pp = q;
+ /* Make sure pp is right if the case below tries to use
+ it. */
+ nodestack[sp++] = pp = &q->left;
+ q = p->right;
+ }
+ /* We know that Q can't be NULL here. We also know that Q is
+ black. */
+ if ((q->left == NULL || !q->left->red)
+ && (q->right == NULL || !q->right->red))
+ {
+ /* Q has two black successors. We can simply color Q red.
+ The whole subtree with root P is now missing one black
+ edge. Note that this action can temporarily make the
+ tree invalid (if P is red). But we will exit the loop
+ in that case and set P black, which both makes the tree
+ valid and also makes the black edge count come out
+ right. If P is black, we are at least one step closer
+ to the root and we'll try again the next iteration. */
+ q->red = 1;
+ r = p;
+ }
+ else
+ {
+ /* Q is black, one of Q's successors is red. We can
+ repair the tree with one operation and will exit the
+ loop afterwards. */
+ if (q->right == NULL || !q->right->red)
+ {
+ /* The left one is red. We perform the same action as
+ in maybe_split_for_insert where two red edges are
+ adjacent but point in different directions:
+ Q's left successor (let's call it Q2) becomes the
+ top of the subtree we are looking at, its parent (Q)
+ and grandparent (P) become its successors. The former
+ successors of Q2 are placed below P and Q.
+ P becomes black, and Q2 gets the color that P had.
+ This changes the black edge count only for node R and
+ its successors. */
+ node q2 = q->left;
+ q2->red = p->red;
+ p->right = q2->left;
+ q->left = q2->right;
+ q2->right = q;
+ q2->left = p;
+ *pp = q2;
+ p->red = 0;
+ }
+ else
+ {
+ /* It's the right one. Rotate P left. P becomes black,
+ and Q gets the color that P had. Q's right successor
+ also becomes black. This changes the black edge
+ count only for node R and its successors. */
+ q->red = p->red;
+ p->red = 0;
+
+ q->right->red = 0;
+
+ /* left rotate p */
+ p->right = q->left;
+ q->left = p;
+ *pp = q;
+ }
+
+ /* We're done. */
+ sp = 1;
+ r = NULL;
+ }
+ }
+ else
+ {
+ /* Comments: see above. */
+ q = p->left;
+ if (q->red)
+ {
+ q->red = 0;
+ p->red = 1;
+ p->left = q->right;
+ q->right = p;
+ *pp = q;
+ nodestack[sp++] = pp = &q->right;
+ q = p->left;
+ }
+ if ((q->right == NULL || !q->right->red)
+ && (q->left == NULL || !q->left->red))
+ {
+ q->red = 1;
+ r = p;
+ }
+ else
+ {
+ if (q->left == NULL || !q->left->red)
+ {
+ node q2 = q->right;
+ q2->red = p->red;
+ p->left = q2->right;
+ q->right = q2->left;
+ q2->left = q;
+ q2->right = p;
+ *pp = q2;
+ p->red = 0;
+ }
+ else
+ {
+ q->red = p->red;
+ p->red = 0;
+ q->left->red = 0;
+ p->left = q->right;
+ q->right = p;
+ *pp = q;
+ }
+ sp = 1;
+ r = NULL;
+ }
+ }
+ --sp;
+ }
+ if (r != NULL)
+ r->red = 0;
+ }
+
+ free (unchained);
+ return retval;
+}
+#ifdef weak_alias
+weak_alias (__tdelete, tdelete)
+#endif
+
+
+/* Walk the nodes of a tree.
+ ROOT is the root of the tree to be walked, ACTION the function to be
+ called at each node. LEVEL is the level of ROOT in the whole tree. */
+static void
+internal_function
+trecurse (const void *vroot, __action_fn_t action, int level)
+{
+ const_node root = (const_node) vroot;
+
+ if (root->left == NULL && root->right == NULL)
+ (*action) (root, leaf, level);
+ else
+ {
+ (*action) (root, preorder, level);
+ if (root->left != NULL)
+ trecurse (root->left, action, level + 1);
+ (*action) (root, postorder, level);
+ if (root->right != NULL)
+ trecurse (root->right, action, level + 1);
+ (*action) (root, endorder, level);
+ }
+}
+
+
+/* Walk the nodes of a tree.
+ ROOT is the root of the tree to be walked, ACTION the function to be
+ called at each node. */
+void
+__twalk (const void *vroot, __action_fn_t action)
+{
+ const_node root = (const_node) vroot;
+
+ CHECK_TREE (root);
+
+ if (root != NULL && action != NULL)
+ trecurse (root, action, 0);
+}
+#ifdef weak_alias
+weak_alias (__twalk, twalk)
+#endif
+
+
+#ifdef _LIBC
+
+/* The standardized functions miss an important functionality: the
+ tree cannot be removed easily. We provide a function to do this. */
+static void
+internal_function
+tdestroy_recurse (node root, __free_fn_t freefct)
+{
+ if (root->left != NULL)
+ tdestroy_recurse (root->left, freefct);
+ if (root->right != NULL)
+ tdestroy_recurse (root->right, freefct);
+ (*freefct) ((void *) root->key);
+ /* Free the node itself. */
+ free (root);
+}
+
+void
+__tdestroy (void *vroot, __free_fn_t freefct)
+{
+ node root = (node) vroot;
+
+ CHECK_TREE (root);
+
+ if (root != NULL)
+ tdestroy_recurse (root, freefct);
+}
+weak_alias (__tdestroy, tdestroy)
+
+#endif /* _LIBC */
diff --git a/intl/tsearch.h b/intl/tsearch.h
new file mode 100644
index 0000000..f08e4a9
--- /dev/null
+++ b/intl/tsearch.h
@@ -0,0 +1,83 @@
+/* Binary tree data structure.
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _TSEARCH_H
+#define _TSEARCH_H
+
+#if HAVE_TSEARCH
+
+/* Get tseach(), tfind(), tdelete(), twalk() declarations. */
+#include <search.h>
+
+#else
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* See <http://www.opengroup.org/susv3xbd/search.h.html>,
+ <http://www.opengroup.org/susv3xsh/tsearch.html>
+ for details. */
+
+typedef enum
+{
+ preorder,
+ postorder,
+ endorder,
+ leaf
+}
+VISIT;
+
+/* Searches an element in the tree *VROOTP that compares equal to KEY.
+ If one is found, it is returned. Otherwise, a new element equal to KEY
+ is inserted in the tree and is returned. */
+extern void * tsearch (const void *key, void **vrootp,
+ int (*compar) (const void *, const void *));
+
+/* Searches an element in the tree *VROOTP that compares equal to KEY.
+ If one is found, it is returned. Otherwise, NULL is returned. */
+extern void * tfind (const void *key, void *const *vrootp,
+ int (*compar) (const void *, const void *));
+
+/* Searches an element in the tree *VROOTP that compares equal to KEY.
+ If one is found, it is removed from the tree, and its parent node is
+ returned. Otherwise, NULL is returned. */
+extern void * tdelete (const void *key, void **vrootp,
+ int (*compar) (const void *, const void *));
+
+/* Perform a depth-first, left-to-right traversal of the tree VROOT.
+ The ACTION function is called:
+ - for non-leaf nodes: 3 times, before the left subtree traversal,
+ after the left subtree traversal but before the right subtree traversal,
+ and after the right subtree traversal,
+ - for leaf nodes: once.
+ The arguments passed to ACTION are:
+ 1. the node; it can be casted to a 'const void * const *', i.e. into a
+ pointer to the key,
+ 2. an indicator which visit of the node this is,
+ 3. the level of the node in the tree (0 for the root). */
+extern void twalk (const void *vroot,
+ void (*action) (const void *, VISIT, int));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+#endif /* _TSEARCH_H */
diff --git a/intl/vasnprintf.c b/intl/vasnprintf.c
new file mode 100644
index 0000000..4a8e7f0
--- /dev/null
+++ b/intl/vasnprintf.c
@@ -0,0 +1,4677 @@
+/* vsprintf with automatic memory allocation.
+ Copyright (C) 1999, 2002-2007 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+/* This file can be parametrized with the following macros:
+ VASNPRINTF The name of the function being defined.
+ FCHAR_T The element type of the format string.
+ DCHAR_T The element type of the destination (result) string.
+ FCHAR_T_ONLY_ASCII Set to 1 to enable verification that all characters
+ in the format string are ASCII. MUST be set if
+ FCHAR_T and DCHAR_T are not the same type.
+ DIRECTIVE Structure denoting a format directive.
+ Depends on FCHAR_T.
+ DIRECTIVES Structure denoting the set of format directives of a
+ format string. Depends on FCHAR_T.
+ PRINTF_PARSE Function that parses a format string.
+ Depends on FCHAR_T.
+ DCHAR_CPY memcpy like function for DCHAR_T[] arrays.
+ DCHAR_SET memset like function for DCHAR_T[] arrays.
+ DCHAR_MBSNLEN mbsnlen like function for DCHAR_T[] arrays.
+ SNPRINTF The system's snprintf (or similar) function.
+ This may be either snprintf or swprintf.
+ TCHAR_T The element type of the argument and result string
+ of the said SNPRINTF function. This may be either
+ char or wchar_t. The code exploits that
+ sizeof (TCHAR_T) | sizeof (DCHAR_T) and
+ alignof (TCHAR_T) <= alignof (DCHAR_T).
+ DCHAR_IS_TCHAR Set to 1 if DCHAR_T and TCHAR_T are the same type.
+ DCHAR_CONV_FROM_ENCODING A function to convert from char[] to DCHAR[].
+ DCHAR_IS_UINT8_T Set to 1 if DCHAR_T is uint8_t.
+ DCHAR_IS_UINT16_T Set to 1 if DCHAR_T is uint16_t.
+ DCHAR_IS_UINT32_T Set to 1 if DCHAR_T is uint32_t. */
+
+/* Tell glibc's <stdio.h> to provide a prototype for snprintf().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifndef VASNPRINTF
+# include <config.h>
+#endif
+#ifndef IN_LIBINTL
+# include <alloca.h>
+#endif
+
+/* Specification. */
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# include "vasnwprintf.h"
+# else
+# include "vasnprintf.h"
+# endif
+#endif
+
+#include <locale.h> /* localeconv() */
+#include <stdio.h> /* snprintf(), sprintf() */
+#include <stdlib.h> /* abort(), malloc(), realloc(), free() */
+#include <string.h> /* memcpy(), strlen() */
+#include <errno.h> /* errno */
+#include <limits.h> /* CHAR_BIT */
+#include <float.h> /* DBL_MAX_EXP, LDBL_MAX_EXP */
+#if HAVE_NL_LANGINFO
+# include <langinfo.h>
+#endif
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# include "wprintf-parse.h"
+# else
+# include "printf-parse.h"
+# endif
+#endif
+
+/* Checked size_t computations. */
+#include "xsize.h"
+
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "float+.h"
+#endif
+
+#if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnan.h"
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "fpucw.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnan.h"
+# include "printf-frexp.h"
+#endif
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+# include <math.h>
+# include "isnanl-nolibm.h"
+# include "printf-frexpl.h"
+# include "fpucw.h"
+#endif
+
+/* Some systems, like OSF/1 4.0 and Woe32, don't have EOVERFLOW. */
+#ifndef EOVERFLOW
+# define EOVERFLOW E2BIG
+#endif
+
+#if HAVE_WCHAR_T
+# if HAVE_WCSLEN
+# define local_wcslen wcslen
+# else
+ /* Solaris 2.5.1 has wcslen() in a separate library libw.so. To avoid
+ a dependency towards this library, here is a local substitute.
+ Define this substitute only once, even if this file is included
+ twice in the same compilation unit. */
+# ifndef local_wcslen_defined
+# define local_wcslen_defined 1
+static size_t
+local_wcslen (const wchar_t *s)
+{
+ const wchar_t *ptr;
+
+ for (ptr = s; *ptr != (wchar_t) 0; ptr++)
+ ;
+ return ptr - s;
+}
+# endif
+# endif
+#endif
+
+/* Default parameters. */
+#ifndef VASNPRINTF
+# if WIDE_CHAR_VERSION
+# define VASNPRINTF vasnwprintf
+# define FCHAR_T wchar_t
+# define DCHAR_T wchar_t
+# define TCHAR_T wchar_t
+# define DCHAR_IS_TCHAR 1
+# define DIRECTIVE wchar_t_directive
+# define DIRECTIVES wchar_t_directives
+# define PRINTF_PARSE wprintf_parse
+# define DCHAR_CPY wmemcpy
+# else
+# define VASNPRINTF vasnprintf
+# define FCHAR_T char
+# define DCHAR_T char
+# define TCHAR_T char
+# define DCHAR_IS_TCHAR 1
+# define DIRECTIVE char_directive
+# define DIRECTIVES char_directives
+# define PRINTF_PARSE printf_parse
+# define DCHAR_CPY memcpy
+# endif
+#endif
+#if WIDE_CHAR_VERSION
+ /* TCHAR_T is wchar_t. */
+# define USE_SNPRINTF 1
+# if HAVE_DECL__SNWPRINTF
+ /* On Windows, the function swprintf() has a different signature than
+ on Unix; we use the _snwprintf() function instead. */
+# define SNPRINTF _snwprintf
+# else
+ /* Unix. */
+# define SNPRINTF swprintf
+# endif
+#else
+ /* TCHAR_T is char. */
+# /* Use snprintf if it exists under the name 'snprintf' or '_snprintf'.
+ But don't use it on BeOS, since BeOS snprintf produces no output if the
+ size argument is >= 0x3000000. */
+# if (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF) && !defined __BEOS__
+# define USE_SNPRINTF 1
+# else
+# define USE_SNPRINTF 0
+# endif
+# if HAVE_DECL__SNPRINTF
+ /* Windows. */
+# define SNPRINTF _snprintf
+# else
+ /* Unix. */
+# define SNPRINTF snprintf
+ /* Here we need to call the native snprintf, not rpl_snprintf. */
+# undef snprintf
+# endif
+#endif
+/* Here we need to call the native sprintf, not rpl_sprintf. */
+#undef sprintf
+
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && !defined IN_LIBINTL
+/* Determine the decimal-point character according to the current locale. */
+# ifndef decimal_point_char_defined
+# define decimal_point_char_defined 1
+static char
+decimal_point_char ()
+{
+ const char *point;
+ /* Determine it in a multithread-safe way. We know nl_langinfo is
+ multithread-safe on glibc systems, but is not required to be multithread-
+ safe by POSIX. sprintf(), however, is multithread-safe. localeconv()
+ is rarely multithread-safe. */
+# if HAVE_NL_LANGINFO && __GLIBC__
+ point = nl_langinfo (RADIXCHAR);
+# elif 1
+ char pointbuf[5];
+ sprintf (pointbuf, "%#.0f", 1.0);
+ point = &pointbuf[1];
+# else
+ point = localeconv () -> decimal_point;
+# endif
+ /* The decimal point is always a single byte: either '.' or ','. */
+ return (point[0] != '\0' ? point[0] : '.');
+}
+# endif
+#endif
+
+#if NEED_PRINTF_INFINITE_DOUBLE && !NEED_PRINTF_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x) || x == 0, but does not require libm. */
+static int
+is_infinite_or_zero (double x)
+{
+ return isnan (x) || x + x == x;
+}
+
+#endif
+
+#if NEED_PRINTF_INFINITE_LONG_DOUBLE && !NEED_PRINTF_LONG_DOUBLE && !defined IN_LIBINTL
+
+/* Equivalent to !isfinite(x), but does not require libm. */
+static int
+is_infinitel (long double x)
+{
+ return isnanl (x) || (x + x == x && x != 0.0L);
+}
+
+#endif
+
+#if (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+
+/* Converting 'long double' to decimal without rare rounding bugs requires
+ real bignums. We use the naming conventions of GNU gmp, but vastly simpler
+ (and slower) algorithms. */
+
+typedef unsigned int mp_limb_t;
+# define GMP_LIMB_BITS 32
+typedef int mp_limb_verify[2 * (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS) - 1];
+
+typedef unsigned long long mp_twolimb_t;
+# define GMP_TWOLIMB_BITS 64
+typedef int mp_twolimb_verify[2 * (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS) - 1];
+
+/* Representation of a bignum >= 0. */
+typedef struct
+{
+ size_t nlimbs;
+ mp_limb_t *limbs; /* Bits in little-endian order, allocated with malloc(). */
+} mpn_t;
+
+/* Compute the product of two bignums >= 0.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+multiply (mpn_t src1, mpn_t src2, mpn_t *dest)
+{
+ const mp_limb_t *p1;
+ const mp_limb_t *p2;
+ size_t len1;
+ size_t len2;
+
+ if (src1.nlimbs <= src2.nlimbs)
+ {
+ len1 = src1.nlimbs;
+ p1 = src1.limbs;
+ len2 = src2.nlimbs;
+ p2 = src2.limbs;
+ }
+ else
+ {
+ len1 = src2.nlimbs;
+ p1 = src2.limbs;
+ len2 = src1.nlimbs;
+ p2 = src1.limbs;
+ }
+ /* Now 0 <= len1 <= len2. */
+ if (len1 == 0)
+ {
+ /* src1 or src2 is zero. */
+ dest->nlimbs = 0;
+ dest->limbs = (mp_limb_t *) malloc (1);
+ }
+ else
+ {
+ /* Here 1 <= len1 <= len2. */
+ size_t dlen;
+ mp_limb_t *dp;
+ size_t k, i, j;
+
+ dlen = len1 + len2;
+ dp = (mp_limb_t *) malloc (dlen * sizeof (mp_limb_t));
+ if (dp == NULL)
+ return NULL;
+ for (k = len2; k > 0; )
+ dp[--k] = 0;
+ for (i = 0; i < len1; i++)
+ {
+ mp_limb_t digit1 = p1[i];
+ mp_twolimb_t carry = 0;
+ for (j = 0; j < len2; j++)
+ {
+ mp_limb_t digit2 = p2[j];
+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+ carry += dp[i + j];
+ dp[i + j] = (mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS;
+ }
+ dp[i + len2] = (mp_limb_t) carry;
+ }
+ /* Normalise. */
+ while (dlen > 0 && dp[dlen - 1] == 0)
+ dlen--;
+ dest->nlimbs = dlen;
+ dest->limbs = dp;
+ }
+ return dest->limbs;
+}
+
+/* Compute the quotient of a bignum a >= 0 and a bignum b > 0.
+ a is written as a = q * b + r with 0 <= r < b. q is the quotient, r
+ the remainder.
+ Finally, round-to-even is performed: If r > b/2 or if r = b/2 and q is odd,
+ q is incremented.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+divide (mpn_t a, mpn_t b, mpn_t *q)
+{
+ /* Algorithm:
+ First normalise a and b: a=[a[m-1],...,a[0]], b=[b[n-1],...,b[0]]
+ with m>=0 and n>0 (in base beta = 2^GMP_LIMB_BITS).
+ If m<n, then q:=0 and r:=a.
+ If m>=n=1, perform a single-precision division:
+ r:=0, j:=m,
+ while j>0 do
+ {Here (q[m-1]*beta^(m-1)+...+q[j]*beta^j) * b[0] + r*beta^j =
+ = a[m-1]*beta^(m-1)+...+a[j]*beta^j und 0<=r<b[0]<beta}
+ j:=j-1, r:=r*beta+a[j], q[j]:=floor(r/b[0]), r:=r-b[0]*q[j].
+ Normalise [q[m-1],...,q[0]], yields q.
+ If m>=n>1, perform a multiple-precision division:
+ We have a/b < beta^(m-n+1).
+ s:=intDsize-1-(hightest bit in b[n-1]), 0<=s<intDsize.
+ Shift a and b left by s bits, copying them. r:=a.
+ r=[r[m],...,r[0]], b=[b[n-1],...,b[0]] with b[n-1]>=beta/2.
+ For j=m-n,...,0: {Here 0 <= r < b*beta^(j+1).}
+ Compute q* :
+ q* := floor((r[j+n]*beta+r[j+n-1])/b[n-1]).
+ In case of overflow (q* >= beta) set q* := beta-1.
+ Compute c2 := ((r[j+n]*beta+r[j+n-1]) - q* * b[n-1])*beta + r[j+n-2]
+ and c3 := b[n-2] * q*.
+ {We have 0 <= c2 < 2*beta^2, even 0 <= c2 < beta^2 if no overflow
+ occurred. Furthermore 0 <= c3 < beta^2.
+ If there was overflow and
+ r[j+n]*beta+r[j+n-1] - q* * b[n-1] >= beta, i.e. c2 >= beta^2,
+ the next test can be skipped.}
+ While c3 > c2, {Here 0 <= c2 < c3 < beta^2}
+ Put q* := q* - 1, c2 := c2 + b[n-1]*beta, c3 := c3 - b[n-2].
+ If q* > 0:
+ Put r := r - b * q* * beta^j. In detail:
+ [r[n+j],...,r[j]] := [r[n+j],...,r[j]] - q* * [b[n-1],...,b[0]].
+ hence: u:=0, for i:=0 to n-1 do
+ u := u + q* * b[i],
+ r[j+i]:=r[j+i]-(u mod beta) (+ beta, if carry),
+ u:=u div beta (+ 1, if carry in subtraction)
+ r[n+j]:=r[n+j]-u.
+ {Since always u = (q* * [b[i-1],...,b[0]] div beta^i) + 1
+ < q* + 1 <= beta,
+ the carry u does not overflow.}
+ If a negative carry occurs, put q* := q* - 1
+ and [r[n+j],...,r[j]] := [r[n+j],...,r[j]] + [0,b[n-1],...,b[0]].
+ Set q[j] := q*.
+ Normalise [q[m-n],..,q[0]]; this yields the quotient q.
+ Shift [r[n-1],...,r[0]] right by s bits and normalise; this yields the
+ rest r.
+ The room for q[j] can be allocated at the memory location of r[n+j].
+ Finally, round-to-even:
+ Shift r left by 1 bit.
+ If r > b or if r = b and q[0] is odd, q := q+1.
+ */
+ const mp_limb_t *a_ptr = a.limbs;
+ size_t a_len = a.nlimbs;
+ const mp_limb_t *b_ptr = b.limbs;
+ size_t b_len = b.nlimbs;
+ mp_limb_t *roomptr;
+ mp_limb_t *tmp_roomptr = NULL;
+ mp_limb_t *q_ptr;
+ size_t q_len;
+ mp_limb_t *r_ptr;
+ size_t r_len;
+
+ /* Allocate room for a_len+2 digits.
+ (Need a_len+1 digits for the real division and 1 more digit for the
+ final rounding of q.) */
+ roomptr = (mp_limb_t *) malloc ((a_len + 2) * sizeof (mp_limb_t));
+ if (roomptr == NULL)
+ return NULL;
+
+ /* Normalise a. */
+ while (a_len > 0 && a_ptr[a_len - 1] == 0)
+ a_len--;
+
+ /* Normalise b. */
+ for (;;)
+ {
+ if (b_len == 0)
+ /* Division by zero. */
+ abort ();
+ if (b_ptr[b_len - 1] == 0)
+ b_len--;
+ else
+ break;
+ }
+
+ /* Here m = a_len >= 0 and n = b_len > 0. */
+
+ if (a_len < b_len)
+ {
+ /* m<n: trivial case. q=0, r := copy of a. */
+ r_ptr = roomptr;
+ r_len = a_len;
+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+ q_ptr = roomptr + a_len;
+ q_len = 0;
+ }
+ else if (b_len == 1)
+ {
+ /* n=1: single precision division.
+ beta^(m-1) <= a < beta^m ==> beta^(m-2) <= a/b < beta^m */
+ r_ptr = roomptr;
+ q_ptr = roomptr + 1;
+ {
+ mp_limb_t den = b_ptr[0];
+ mp_limb_t remainder = 0;
+ const mp_limb_t *sourceptr = a_ptr + a_len;
+ mp_limb_t *destptr = q_ptr + a_len;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ mp_twolimb_t num =
+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--sourceptr;
+ *--destptr = num / den;
+ remainder = num % den;
+ }
+ /* Normalise and store r. */
+ if (remainder > 0)
+ {
+ r_ptr[0] = remainder;
+ r_len = 1;
+ }
+ else
+ r_len = 0;
+ /* Normalise q. */
+ q_len = a_len;
+ if (q_ptr[q_len - 1] == 0)
+ q_len--;
+ }
+ }
+ else
+ {
+ /* n>1: multiple precision division.
+ beta^(m-1) <= a < beta^m, beta^(n-1) <= b < beta^n ==>
+ beta^(m-n-1) <= a/b < beta^(m-n+1). */
+ /* Determine s. */
+ size_t s;
+ {
+ mp_limb_t msd = b_ptr[b_len - 1]; /* = b[n-1], > 0 */
+ s = 31;
+ if (msd >= 0x10000)
+ {
+ msd = msd >> 16;
+ s -= 16;
+ }
+ if (msd >= 0x100)
+ {
+ msd = msd >> 8;
+ s -= 8;
+ }
+ if (msd >= 0x10)
+ {
+ msd = msd >> 4;
+ s -= 4;
+ }
+ if (msd >= 0x4)
+ {
+ msd = msd >> 2;
+ s -= 2;
+ }
+ if (msd >= 0x2)
+ {
+ msd = msd >> 1;
+ s -= 1;
+ }
+ }
+ /* 0 <= s < GMP_LIMB_BITS.
+ Copy b, shifting it left by s bits. */
+ if (s > 0)
+ {
+ tmp_roomptr = (mp_limb_t *) malloc (b_len * sizeof (mp_limb_t));
+ if (tmp_roomptr == NULL)
+ {
+ free (roomptr);
+ return NULL;
+ }
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = tmp_roomptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ /* accu must be zero, since that was how s was determined. */
+ if (accu != 0)
+ abort ();
+ }
+ b_ptr = tmp_roomptr;
+ }
+ /* Copy a, shifting it left by s bits, yields r.
+ Memory layout:
+ At the beginning: r = roomptr[0..a_len],
+ at the end: r = roomptr[0..b_len-1], q = roomptr[b_len..a_len] */
+ r_ptr = roomptr;
+ if (s == 0)
+ {
+ memcpy (r_ptr, a_ptr, a_len * sizeof (mp_limb_t));
+ r_ptr[a_len] = 0;
+ }
+ else
+ {
+ const mp_limb_t *sourceptr = a_ptr;
+ mp_limb_t *destptr = r_ptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ *destptr++ = (mp_limb_t) accu;
+ }
+ q_ptr = roomptr + b_len;
+ q_len = a_len - b_len + 1; /* q will have m-n+1 limbs */
+ {
+ size_t j = a_len - b_len; /* m-n */
+ mp_limb_t b_msd = b_ptr[b_len - 1]; /* b[n-1] */
+ mp_limb_t b_2msd = b_ptr[b_len - 2]; /* b[n-2] */
+ mp_twolimb_t b_msdd = /* b[n-1]*beta+b[n-2] */
+ ((mp_twolimb_t) b_msd << GMP_LIMB_BITS) | b_2msd;
+ /* Division loop, traversed m-n+1 times.
+ j counts down, b is unchanged, beta/2 <= b[n-1] < beta. */
+ for (;;)
+ {
+ mp_limb_t q_star;
+ mp_limb_t c1;
+ if (r_ptr[j + b_len] < b_msd) /* r[j+n] < b[n-1] ? */
+ {
+ /* Divide r[j+n]*beta+r[j+n-1] by b[n-1], no overflow. */
+ mp_twolimb_t num =
+ ((mp_twolimb_t) r_ptr[j + b_len] << GMP_LIMB_BITS)
+ | r_ptr[j + b_len - 1];
+ q_star = num / b_msd;
+ c1 = num % b_msd;
+ }
+ else
+ {
+ /* Overflow, hence r[j+n]*beta+r[j+n-1] >= beta*b[n-1]. */
+ q_star = (mp_limb_t)~(mp_limb_t)0; /* q* = beta-1 */
+ /* Test whether r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] >= beta
+ <==> r[j+n]*beta+r[j+n-1] + b[n-1] >= beta*b[n-1]+beta
+ <==> b[n-1] < floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta)
+ {<= beta !}.
+ If yes, jump directly to the subtraction loop.
+ (Otherwise, r[j+n]*beta+r[j+n-1] - (beta-1)*b[n-1] < beta
+ <==> floor((r[j+n]*beta+r[j+n-1]+b[n-1])/beta) = b[n-1] ) */
+ if (r_ptr[j + b_len] > b_msd
+ || (c1 = r_ptr[j + b_len - 1] + b_msd) < b_msd)
+ /* r[j+n] >= b[n-1]+1 or
+ r[j+n] = b[n-1] and the addition r[j+n-1]+b[n-1] gives a
+ carry. */
+ goto subtract;
+ }
+ /* q_star = q*,
+ c1 = (r[j+n]*beta+r[j+n-1]) - q* * b[n-1] (>=0, <beta). */
+ {
+ mp_twolimb_t c2 = /* c1*beta+r[j+n-2] */
+ ((mp_twolimb_t) c1 << GMP_LIMB_BITS) | r_ptr[j + b_len - 2];
+ mp_twolimb_t c3 = /* b[n-2] * q* */
+ (mp_twolimb_t) b_2msd * (mp_twolimb_t) q_star;
+ /* While c2 < c3, increase c2 and decrease c3.
+ Consider c3-c2. While it is > 0, decrease it by
+ b[n-1]*beta+b[n-2]. Because of b[n-1]*beta+b[n-2] >= beta^2/2
+ this can happen only twice. */
+ if (c3 > c2)
+ {
+ q_star = q_star - 1; /* q* := q* - 1 */
+ if (c3 - c2 > b_msdd)
+ q_star = q_star - 1; /* q* := q* - 1 */
+ }
+ }
+ if (q_star > 0)
+ subtract:
+ {
+ /* Subtract r := r - b * q* * beta^j. */
+ mp_limb_t cr;
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = r_ptr + j;
+ mp_twolimb_t carry = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ /* Here 0 <= carry <= q*. */
+ carry =
+ carry
+ + (mp_twolimb_t) q_star * (mp_twolimb_t) *sourceptr++
+ + (mp_limb_t) ~(*destptr);
+ /* Here 0 <= carry <= beta*q* + beta-1. */
+ *destptr++ = ~(mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS; /* <= q* */
+ }
+ cr = (mp_limb_t) carry;
+ }
+ /* Subtract cr from r_ptr[j + b_len], then forget about
+ r_ptr[j + b_len]. */
+ if (cr > r_ptr[j + b_len])
+ {
+ /* Subtraction gave a carry. */
+ q_star = q_star - 1; /* q* := q* - 1 */
+ /* Add b back. */
+ {
+ const mp_limb_t *sourceptr = b_ptr;
+ mp_limb_t *destptr = r_ptr + j;
+ mp_limb_t carry = 0;
+ size_t count;
+ for (count = b_len; count > 0; count--)
+ {
+ mp_limb_t source1 = *sourceptr++;
+ mp_limb_t source2 = *destptr;
+ *destptr++ = source1 + source2 + carry;
+ carry =
+ (carry
+ ? source1 >= (mp_limb_t) ~source2
+ : source1 > (mp_limb_t) ~source2);
+ }
+ }
+ /* Forget about the carry and about r[j+n]. */
+ }
+ }
+ /* q* is determined. Store it as q[j]. */
+ q_ptr[j] = q_star;
+ if (j == 0)
+ break;
+ j--;
+ }
+ }
+ r_len = b_len;
+ /* Normalise q. */
+ if (q_ptr[q_len - 1] == 0)
+ q_len--;
+# if 0 /* Not needed here, since we need r only to compare it with b/2, and
+ b is shifted left by s bits. */
+ /* Shift r right by s bits. */
+ if (s > 0)
+ {
+ mp_limb_t ptr = r_ptr + r_len;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = r_len; count > 0; count--)
+ {
+ accu = (mp_twolimb_t) (mp_limb_t) accu << GMP_LIMB_BITS;
+ accu += (mp_twolimb_t) *--ptr << (GMP_LIMB_BITS - s);
+ *ptr = (mp_limb_t) (accu >> GMP_LIMB_BITS);
+ }
+ }
+# endif
+ /* Normalise r. */
+ while (r_len > 0 && r_ptr[r_len - 1] == 0)
+ r_len--;
+ }
+ /* Compare r << 1 with b. */
+ if (r_len > b_len)
+ goto increment_q;
+ {
+ size_t i;
+ for (i = b_len;;)
+ {
+ mp_limb_t r_i =
+ (i <= r_len && i > 0 ? r_ptr[i - 1] >> (GMP_LIMB_BITS - 1) : 0)
+ | (i < r_len ? r_ptr[i] << 1 : 0);
+ mp_limb_t b_i = (i < b_len ? b_ptr[i] : 0);
+ if (r_i > b_i)
+ goto increment_q;
+ if (r_i < b_i)
+ goto keep_q;
+ if (i == 0)
+ break;
+ i--;
+ }
+ }
+ if (q_len > 0 && ((q_ptr[0] & 1) != 0))
+ /* q is odd. */
+ increment_q:
+ {
+ size_t i;
+ for (i = 0; i < q_len; i++)
+ if (++(q_ptr[i]) != 0)
+ goto keep_q;
+ q_ptr[q_len++] = 1;
+ }
+ keep_q:
+ if (tmp_roomptr != NULL)
+ free (tmp_roomptr);
+ q->limbs = q_ptr;
+ q->nlimbs = q_len;
+ return roomptr;
+}
+
+/* Convert a bignum a >= 0, multiplied with 10^extra_zeroes, to decimal
+ representation.
+ Destroys the contents of a.
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+convert_to_decimal (mpn_t a, size_t extra_zeroes)
+{
+ mp_limb_t *a_ptr = a.limbs;
+ size_t a_len = a.nlimbs;
+ /* 0.03345 is slightly larger than log(2)/(9*log(10)). */
+ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1);
+ char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes));
+ if (c_ptr != NULL)
+ {
+ char *d_ptr = c_ptr;
+ for (; extra_zeroes > 0; extra_zeroes--)
+ *d_ptr++ = '0';
+ while (a_len > 0)
+ {
+ /* Divide a by 10^9, in-place. */
+ mp_limb_t remainder = 0;
+ mp_limb_t *ptr = a_ptr + a_len;
+ size_t count;
+ for (count = a_len; count > 0; count--)
+ {
+ mp_twolimb_t num =
+ ((mp_twolimb_t) remainder << GMP_LIMB_BITS) | *--ptr;
+ *ptr = num / 1000000000;
+ remainder = num % 1000000000;
+ }
+ /* Store the remainder as 9 decimal digits. */
+ for (count = 9; count > 0; count--)
+ {
+ *d_ptr++ = '0' + (remainder % 10);
+ remainder = remainder / 10;
+ }
+ /* Normalize a. */
+ if (a_ptr[a_len - 1] == 0)
+ a_len--;
+ }
+ /* Remove leading zeroes. */
+ while (d_ptr > c_ptr && d_ptr[-1] == '0')
+ d_ptr--;
+ /* But keep at least one zero. */
+ if (d_ptr == c_ptr)
+ *d_ptr++ = '0';
+ /* Terminate the string. */
+ *d_ptr = '\0';
+ }
+ return c_ptr;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0:
+ write x as x = 2^e * m, where m is a bignum.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+decode_long_double (long double x, int *ep, mpn_t *mp)
+{
+ mpn_t m;
+ int exp;
+ long double y;
+ size_t i;
+
+ /* Allocate memory for result. */
+ m.nlimbs = (LDBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+ if (m.limbs == NULL)
+ return NULL;
+ /* Split into exponential part and mantissa. */
+ y = frexpl (x, &exp);
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ /* x = 2^exp * y = 2^(exp - LDBL_MANT_BIT) * (y * LDBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * LDBL_MANT_BIT) to a sequence of limbs.
+ I'm not sure whether it's safe to cast a 'long double' value between
+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+ 'long double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+ doesn't matter). */
+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) != 0
+# if (LDBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+# else
+ {
+ mp_limb_t d;
+ y *= (mp_limb_t) 1 << (LDBL_MANT_BIT % GMP_LIMB_BITS);
+ d = (int) y;
+ y -= d;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[LDBL_MANT_BIT / GMP_LIMB_BITS] = d;
+ }
+# endif
+# endif
+ for (i = LDBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+ if (!(y == 0.0L))
+ abort ();
+ /* Normalise. */
+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+ m.nlimbs--;
+ *mp = m;
+ *ep = exp - LDBL_MANT_BIT;
+ return m.limbs;
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0:
+ write x as x = 2^e * m, where m is a bignum.
+ Return the allocated memory in case of success, NULL in case of memory
+ allocation failure. */
+static void *
+decode_double (double x, int *ep, mpn_t *mp)
+{
+ mpn_t m;
+ int exp;
+ double y;
+ size_t i;
+
+ /* Allocate memory for result. */
+ m.nlimbs = (DBL_MANT_BIT + GMP_LIMB_BITS - 1) / GMP_LIMB_BITS;
+ m.limbs = (mp_limb_t *) malloc (m.nlimbs * sizeof (mp_limb_t));
+ if (m.limbs == NULL)
+ return NULL;
+ /* Split into exponential part and mantissa. */
+ y = frexp (x, &exp);
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ /* x = 2^exp * y = 2^(exp - DBL_MANT_BIT) * (y * DBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * DBL_MANT_BIT) to a sequence of limbs.
+ I'm not sure whether it's safe to cast a 'double' value between
+ 2^31 and 2^32 to 'unsigned int', therefore play safe and cast only
+ 'double' values between 0 and 2^16 (to 'unsigned int' or 'int',
+ doesn't matter). */
+# if (DBL_MANT_BIT % GMP_LIMB_BITS) != 0
+# if (DBL_MANT_BIT % GMP_LIMB_BITS) > GMP_LIMB_BITS / 2
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % (GMP_LIMB_BITS / 2));
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+# else
+ {
+ mp_limb_t d;
+ y *= (mp_limb_t) 1 << (DBL_MANT_BIT % GMP_LIMB_BITS);
+ d = (int) y;
+ y -= d;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[DBL_MANT_BIT / GMP_LIMB_BITS] = d;
+ }
+# endif
+# endif
+ for (i = DBL_MANT_BIT / GMP_LIMB_BITS; i > 0; )
+ {
+ mp_limb_t hi, lo;
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ hi = (int) y;
+ y -= hi;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ y *= (mp_limb_t) 1 << (GMP_LIMB_BITS / 2);
+ lo = (int) y;
+ y -= lo;
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ m.limbs[--i] = (hi << (GMP_LIMB_BITS / 2)) | lo;
+ }
+ if (!(y == 0.0))
+ abort ();
+ /* Normalise. */
+ while (m.nlimbs > 0 && m.limbs[m.nlimbs - 1] == 0)
+ m.nlimbs--;
+ *mp = m;
+ *ep = exp - DBL_MANT_BIT;
+ return m.limbs;
+}
+
+# endif
+
+/* Assuming x = 2^e * m is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_decoded (int e, mpn_t m, void *memory, int n)
+{
+ int s;
+ size_t extra_zeroes;
+ unsigned int abs_n;
+ unsigned int abs_s;
+ mp_limb_t *pow5_ptr;
+ size_t pow5_len;
+ unsigned int s_limbs;
+ unsigned int s_bits;
+ mpn_t pow5;
+ mpn_t z;
+ void *z_memory;
+ char *digits;
+
+ if (memory == NULL)
+ return NULL;
+ /* x = 2^e * m, hence
+ y = round (2^e * 10^n * m) = round (2^(e+n) * 5^n * m)
+ = round (2^s * 5^n * m). */
+ s = e + n;
+ extra_zeroes = 0;
+ /* Factor out a common power of 10 if possible. */
+ if (s > 0 && n > 0)
+ {
+ extra_zeroes = (s < n ? s : n);
+ s -= extra_zeroes;
+ n -= extra_zeroes;
+ }
+ /* Here y = round (2^s * 5^n * m) * 10^extra_zeroes.
+ Before converting to decimal, we need to compute
+ z = round (2^s * 5^n * m). */
+ /* Compute 5^|n|, possibly shifted by |s| bits if n and s have the same
+ sign. 2.322 is slightly larger than log(5)/log(2). */
+ abs_n = (n >= 0 ? n : -n);
+ abs_s = (s >= 0 ? s : -s);
+ pow5_ptr = (mp_limb_t *) malloc (((int)(abs_n * (2.322f / GMP_LIMB_BITS)) + 1
+ + abs_s / GMP_LIMB_BITS + 1)
+ * sizeof (mp_limb_t));
+ if (pow5_ptr == NULL)
+ {
+ free (memory);
+ return NULL;
+ }
+ /* Initialize with 1. */
+ pow5_ptr[0] = 1;
+ pow5_len = 1;
+ /* Multiply with 5^|n|. */
+ if (abs_n > 0)
+ {
+ static mp_limb_t const small_pow5[13 + 1] =
+ {
+ 1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625,
+ 48828125, 244140625, 1220703125
+ };
+ unsigned int n13;
+ for (n13 = 0; n13 <= abs_n; n13 += 13)
+ {
+ mp_limb_t digit1 = small_pow5[n13 + 13 <= abs_n ? 13 : abs_n - n13];
+ size_t j;
+ mp_twolimb_t carry = 0;
+ for (j = 0; j < pow5_len; j++)
+ {
+ mp_limb_t digit2 = pow5_ptr[j];
+ carry += (mp_twolimb_t) digit1 * (mp_twolimb_t) digit2;
+ pow5_ptr[j] = (mp_limb_t) carry;
+ carry = carry >> GMP_LIMB_BITS;
+ }
+ if (carry > 0)
+ pow5_ptr[pow5_len++] = (mp_limb_t) carry;
+ }
+ }
+ s_limbs = abs_s / GMP_LIMB_BITS;
+ s_bits = abs_s % GMP_LIMB_BITS;
+ if (n >= 0 ? s >= 0 : s <= 0)
+ {
+ /* Multiply with 2^|s|. */
+ if (s_bits > 0)
+ {
+ mp_limb_t *ptr = pow5_ptr;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = pow5_len; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *ptr << s_bits;
+ *ptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ if (accu > 0)
+ {
+ *ptr = (mp_limb_t) accu;
+ pow5_len++;
+ }
+ }
+ if (s_limbs > 0)
+ {
+ size_t count;
+ for (count = pow5_len; count > 0;)
+ {
+ count--;
+ pow5_ptr[s_limbs + count] = pow5_ptr[count];
+ }
+ for (count = s_limbs; count > 0;)
+ {
+ count--;
+ pow5_ptr[count] = 0;
+ }
+ pow5_len += s_limbs;
+ }
+ pow5.limbs = pow5_ptr;
+ pow5.nlimbs = pow5_len;
+ if (n >= 0)
+ {
+ /* Multiply m with pow5. No division needed. */
+ z_memory = multiply (m, pow5, &z);
+ }
+ else
+ {
+ /* Divide m by pow5 and round. */
+ z_memory = divide (m, pow5, &z);
+ }
+ }
+ else
+ {
+ pow5.limbs = pow5_ptr;
+ pow5.nlimbs = pow5_len;
+ if (n >= 0)
+ {
+ /* n >= 0, s < 0.
+ Multiply m with pow5, then divide by 2^|s|. */
+ mpn_t numerator;
+ mpn_t denominator;
+ void *tmp_memory;
+ tmp_memory = multiply (m, pow5, &numerator);
+ if (tmp_memory == NULL)
+ {
+ free (pow5_ptr);
+ free (memory);
+ return NULL;
+ }
+ /* Construct 2^|s|. */
+ {
+ mp_limb_t *ptr = pow5_ptr + pow5_len;
+ size_t i;
+ for (i = 0; i < s_limbs; i++)
+ ptr[i] = 0;
+ ptr[s_limbs] = (mp_limb_t) 1 << s_bits;
+ denominator.limbs = ptr;
+ denominator.nlimbs = s_limbs + 1;
+ }
+ z_memory = divide (numerator, denominator, &z);
+ free (tmp_memory);
+ }
+ else
+ {
+ /* n < 0, s > 0.
+ Multiply m with 2^s, then divide by pow5. */
+ mpn_t numerator;
+ mp_limb_t *num_ptr;
+ num_ptr = (mp_limb_t *) malloc ((m.nlimbs + s_limbs + 1)
+ * sizeof (mp_limb_t));
+ if (num_ptr == NULL)
+ {
+ free (pow5_ptr);
+ free (memory);
+ return NULL;
+ }
+ {
+ mp_limb_t *destptr = num_ptr;
+ {
+ size_t i;
+ for (i = 0; i < s_limbs; i++)
+ *destptr++ = 0;
+ }
+ if (s_bits > 0)
+ {
+ const mp_limb_t *sourceptr = m.limbs;
+ mp_twolimb_t accu = 0;
+ size_t count;
+ for (count = m.nlimbs; count > 0; count--)
+ {
+ accu += (mp_twolimb_t) *sourceptr++ << s_bits;
+ *destptr++ = (mp_limb_t) accu;
+ accu = accu >> GMP_LIMB_BITS;
+ }
+ if (accu > 0)
+ *destptr++ = (mp_limb_t) accu;
+ }
+ else
+ {
+ const mp_limb_t *sourceptr = m.limbs;
+ size_t count;
+ for (count = m.nlimbs; count > 0; count--)
+ *destptr++ = *sourceptr++;
+ }
+ numerator.limbs = num_ptr;
+ numerator.nlimbs = destptr - num_ptr;
+ }
+ z_memory = divide (numerator, pow5, &z);
+ free (num_ptr);
+ }
+ }
+ free (pow5_ptr);
+ free (memory);
+
+ /* Here y = round (x * 10^n) = z * 10^extra_zeroes. */
+
+ if (z_memory == NULL)
+ return NULL;
+ digits = convert_to_decimal (z, extra_zeroes);
+ free (z_memory);
+ return digits;
+}
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_long_double (long double x, int n)
+{
+ int e;
+ mpn_t m;
+ void *memory = decode_long_double (x, &e, &m);
+ return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and >= 0, and n is an integer:
+ Returns the decimal representation of round (x * 10^n).
+ Return the allocated memory - containing the decimal digits in low-to-high
+ order, terminated with a NUL character - in case of success, NULL in case
+ of memory allocation failure. */
+static char *
+scale10_round_decimal_double (double x, int n)
+{
+ int e;
+ mpn_t m;
+ void *memory = decode_double (x, &e, &m);
+ return scale10_round_decimal_decoded (e, m, memory, n);
+}
+
+# endif
+
+# if NEED_PRINTF_LONG_DOUBLE
+
+/* Assuming x is finite and > 0:
+ Return an approximation for n with 10^n <= x < 10^(n+1).
+ The approximation is usually the right n, but may be off by 1 sometimes. */
+static int
+floorlog10l (long double x)
+{
+ int exp;
+ long double y;
+ double z;
+ double l;
+
+ /* Split into exponential part and mantissa. */
+ y = frexpl (x, &exp);
+ if (!(y >= 0.0L && y < 1.0L))
+ abort ();
+ if (y == 0.0L)
+ return INT_MIN;
+ if (y < 0.5L)
+ {
+ while (y < (1.0L / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+ {
+ y *= 1.0L * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+ exp -= GMP_LIMB_BITS;
+ }
+ if (y < (1.0L / (1 << 16)))
+ {
+ y *= 1.0L * (1 << 16);
+ exp -= 16;
+ }
+ if (y < (1.0L / (1 << 8)))
+ {
+ y *= 1.0L * (1 << 8);
+ exp -= 8;
+ }
+ if (y < (1.0L / (1 << 4)))
+ {
+ y *= 1.0L * (1 << 4);
+ exp -= 4;
+ }
+ if (y < (1.0L / (1 << 2)))
+ {
+ y *= 1.0L * (1 << 2);
+ exp -= 2;
+ }
+ if (y < (1.0L / (1 << 1)))
+ {
+ y *= 1.0L * (1 << 1);
+ exp -= 1;
+ }
+ }
+ if (!(y >= 0.5L && y < 1.0L))
+ abort ();
+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
+ l = exp;
+ z = y;
+ if (z < 0.70710678118654752444)
+ {
+ z *= 1.4142135623730950488;
+ l -= 0.5;
+ }
+ if (z < 0.8408964152537145431)
+ {
+ z *= 1.1892071150027210667;
+ l -= 0.25;
+ }
+ if (z < 0.91700404320467123175)
+ {
+ z *= 1.0905077326652576592;
+ l -= 0.125;
+ }
+ if (z < 0.9576032806985736469)
+ {
+ z *= 1.0442737824274138403;
+ l -= 0.0625;
+ }
+ /* Now 0.95 <= z <= 1.01. */
+ z = 1 - z;
+ /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ...
+ Four terms are enough to get an approximation with error < 10^-7. */
+ l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+ /* Finally multiply with log(2)/log(10), yields an approximation for
+ log10(x). */
+ l *= 0.30102999566398119523;
+ /* Round down to the next integer. */
+ return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+# if NEED_PRINTF_DOUBLE
+
+/* Assuming x is finite and > 0:
+ Return an approximation for n with 10^n <= x < 10^(n+1).
+ The approximation is usually the right n, but may be off by 1 sometimes. */
+static int
+floorlog10 (double x)
+{
+ int exp;
+ double y;
+ double z;
+ double l;
+
+ /* Split into exponential part and mantissa. */
+ y = frexp (x, &exp);
+ if (!(y >= 0.0 && y < 1.0))
+ abort ();
+ if (y == 0.0)
+ return INT_MIN;
+ if (y < 0.5)
+ {
+ while (y < (1.0 / (1 << (GMP_LIMB_BITS / 2)) / (1 << (GMP_LIMB_BITS / 2))))
+ {
+ y *= 1.0 * (1 << (GMP_LIMB_BITS / 2)) * (1 << (GMP_LIMB_BITS / 2));
+ exp -= GMP_LIMB_BITS;
+ }
+ if (y < (1.0 / (1 << 16)))
+ {
+ y *= 1.0 * (1 << 16);
+ exp -= 16;
+ }
+ if (y < (1.0 / (1 << 8)))
+ {
+ y *= 1.0 * (1 << 8);
+ exp -= 8;
+ }
+ if (y < (1.0 / (1 << 4)))
+ {
+ y *= 1.0 * (1 << 4);
+ exp -= 4;
+ }
+ if (y < (1.0 / (1 << 2)))
+ {
+ y *= 1.0 * (1 << 2);
+ exp -= 2;
+ }
+ if (y < (1.0 / (1 << 1)))
+ {
+ y *= 1.0 * (1 << 1);
+ exp -= 1;
+ }
+ }
+ if (!(y >= 0.5 && y < 1.0))
+ abort ();
+ /* Compute an approximation for l = log2(x) = exp + log2(y). */
+ l = exp;
+ z = y;
+ if (z < 0.70710678118654752444)
+ {
+ z *= 1.4142135623730950488;
+ l -= 0.5;
+ }
+ if (z < 0.8408964152537145431)
+ {
+ z *= 1.1892071150027210667;
+ l -= 0.25;
+ }
+ if (z < 0.91700404320467123175)
+ {
+ z *= 1.0905077326652576592;
+ l -= 0.125;
+ }
+ if (z < 0.9576032806985736469)
+ {
+ z *= 1.0442737824274138403;
+ l -= 0.0625;
+ }
+ /* Now 0.95 <= z <= 1.01. */
+ z = 1 - z;
+ /* log(1-z) = - z - z^2/2 - z^3/3 - z^4/4 - ...
+ Four terms are enough to get an approximation with error < 10^-7. */
+ l -= z * (1.0 + z * (0.5 + z * ((1.0 / 3) + z * 0.25)));
+ /* Finally multiply with log(2)/log(10), yields an approximation for
+ log10(x). */
+ l *= 0.30102999566398119523;
+ /* Round down to the next integer. */
+ return (int) l + (l < 0 ? -1 : 0);
+}
+
+# endif
+
+#endif
+
+DCHAR_T *
+VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
+ const FCHAR_T *format, va_list args)
+{
+ DIRECTIVES d;
+ arguments a;
+
+ if (PRINTF_PARSE (format, &d, &a) < 0)
+ /* errno is already set. */
+ return NULL;
+
+#define CLEANUP() \
+ free (d.dir); \
+ if (a.arg) \
+ free (a.arg);
+
+ if (PRINTF_FETCHARGS (args, &a) < 0)
+ {
+ CLEANUP ();
+ errno = EINVAL;
+ return NULL;
+ }
+
+ {
+ size_t buf_neededlength;
+ TCHAR_T *buf;
+ TCHAR_T *buf_malloced;
+ const FCHAR_T *cp;
+ size_t i;
+ DIRECTIVE *dp;
+ /* Output string accumulator. */
+ DCHAR_T *result;
+ size_t allocated;
+ size_t length;
+
+ /* Allocate a small buffer that will hold a directive passed to
+ sprintf or snprintf. */
+ buf_neededlength =
+ xsum4 (7, d.max_width_length, d.max_precision_length, 6);
+#if HAVE_ALLOCA
+ if (buf_neededlength < 4000 / sizeof (TCHAR_T))
+ {
+ buf = (TCHAR_T *) alloca (buf_neededlength * sizeof (TCHAR_T));
+ buf_malloced = NULL;
+ }
+ else
+#endif
+ {
+ size_t buf_memsize = xtimes (buf_neededlength, sizeof (TCHAR_T));
+ if (size_overflow_p (buf_memsize))
+ goto out_of_memory_1;
+ buf = (TCHAR_T *) malloc (buf_memsize);
+ if (buf == NULL)
+ goto out_of_memory_1;
+ buf_malloced = buf;
+ }
+
+ if (resultbuf != NULL)
+ {
+ result = resultbuf;
+ allocated = *lengthp;
+ }
+ else
+ {
+ result = NULL;
+ allocated = 0;
+ }
+ length = 0;
+ /* Invariants:
+ result is either == resultbuf or == NULL or malloc-allocated.
+ If length > 0, then result != NULL. */
+
+ /* Ensures that allocated >= needed. Aborts through a jump to
+ out_of_memory if needed is SIZE_MAX or otherwise too big. */
+#define ENSURE_ALLOCATION(needed) \
+ if ((needed) > allocated) \
+ { \
+ size_t memory_size; \
+ DCHAR_T *memory; \
+ \
+ allocated = (allocated > 0 ? xtimes (allocated, 2) : 12); \
+ if ((needed) > allocated) \
+ allocated = (needed); \
+ memory_size = xtimes (allocated, sizeof (DCHAR_T)); \
+ if (size_overflow_p (memory_size)) \
+ goto out_of_memory; \
+ if (result == resultbuf || result == NULL) \
+ memory = (DCHAR_T *) malloc (memory_size); \
+ else \
+ memory = (DCHAR_T *) realloc (result, memory_size); \
+ if (memory == NULL) \
+ goto out_of_memory; \
+ if (result == resultbuf && length > 0) \
+ DCHAR_CPY (memory, result, length); \
+ result = memory; \
+ }
+
+ for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
+ {
+ if (cp != dp->dir_start)
+ {
+ size_t n = dp->dir_start - cp;
+ size_t augmented_length = xsum (length, n);
+
+ ENSURE_ALLOCATION (augmented_length);
+ /* This copies a piece of FCHAR_T[] into a DCHAR_T[]. Here we
+ need that the format string contains only ASCII characters
+ if FCHAR_T and DCHAR_T are not the same type. */
+ if (sizeof (FCHAR_T) == sizeof (DCHAR_T))
+ {
+ DCHAR_CPY (result + length, (const DCHAR_T *) cp, n);
+ length = augmented_length;
+ }
+ else
+ {
+ do
+ result[length++] = (unsigned char) *cp++;
+ while (--n > 0);
+ }
+ }
+ if (i == d.count)
+ break;
+
+ /* Execute a single directive. */
+ if (dp->conversion == '%')
+ {
+ size_t augmented_length;
+
+ if (!(dp->arg_index == ARG_NONE))
+ abort ();
+ augmented_length = xsum (length, 1);
+ ENSURE_ALLOCATION (augmented_length);
+ result[length] = '%';
+ length = augmented_length;
+ }
+ else
+ {
+ if (!(dp->arg_index != ARG_NONE))
+ abort ();
+
+ if (dp->conversion == 'n')
+ {
+ switch (a.arg[dp->arg_index].type)
+ {
+ case TYPE_COUNT_SCHAR_POINTER:
+ *a.arg[dp->arg_index].a.a_count_schar_pointer = length;
+ break;
+ case TYPE_COUNT_SHORT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_short_pointer = length;
+ break;
+ case TYPE_COUNT_INT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_int_pointer = length;
+ break;
+ case TYPE_COUNT_LONGINT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_longint_pointer = length;
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_COUNT_LONGLONGINT_POINTER:
+ *a.arg[dp->arg_index].a.a_count_longlongint_pointer = length;
+ break;
+#endif
+ default:
+ abort ();
+ }
+ }
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+ else if (dp->conversion == 'U')
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ switch (type)
+ {
+ case TYPE_U8_STRING:
+ {
+ const uint8_t *arg = a.arg[dp->arg_index].a.a_u8_string;
+ const uint8_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u8_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u8_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u8_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT8_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-8 to locale encoding. */
+ if (u8_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ &converted, &converted_len)
+ < 0)
+# else
+ /* Convert from UTF-8 to UTF-16/UTF-32. */
+ converted =
+ U8_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+ if (converted == NULL)
+# endif
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ case TYPE_U16_STRING:
+ {
+ const uint16_t *arg = a.arg[dp->arg_index].a.a_u16_string;
+ const uint16_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u16_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u16_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u16_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT16_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-16 to locale encoding. */
+ if (u16_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ &converted, &converted_len)
+ < 0)
+# else
+ /* Convert from UTF-16 to UTF-8/UTF-32. */
+ converted =
+ U16_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+ if (converted == NULL)
+# endif
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ case TYPE_U32_STRING:
+ {
+ const uint32_t *arg = a.arg[dp->arg_index].a.a_u32_string;
+ const uint32_t *arg_end;
+ size_t characters;
+
+ if (has_precision)
+ {
+ /* Use only PRECISION characters, from the left. */
+ arg_end = arg;
+ characters = 0;
+ for (; precision > 0; precision--)
+ {
+ int count = u32_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else if (has_width)
+ {
+ /* Use the entire string, and count the number of
+ characters. */
+ arg_end = arg;
+ characters = 0;
+ for (;;)
+ {
+ int count = u32_strmblen (arg_end);
+ if (count == 0)
+ break;
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ arg_end += count;
+ characters++;
+ }
+ }
+ else
+ {
+ /* Use the entire string. */
+ arg_end = arg + u32_strlen (arg);
+ /* The number of characters doesn't matter. */
+ characters = 0;
+ }
+
+ if (has_width && width > characters
+ && !(dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+
+# if DCHAR_IS_UINT32_T
+ {
+ size_t n = arg_end - arg;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_CPY (result + length, arg, n);
+ length += n;
+ }
+# else
+ { /* Convert. */
+ DCHAR_T *converted = result + length;
+ size_t converted_len = allocated - length;
+# if DCHAR_IS_TCHAR
+ /* Convert from UTF-32 to locale encoding. */
+ if (u32_conv_to_encoding (locale_charset (),
+ iconveh_question_mark,
+ arg, arg_end - arg, NULL,
+ &converted, &converted_len)
+ < 0)
+# else
+ /* Convert from UTF-32 to UTF-8/UTF-16. */
+ converted =
+ U32_TO_DCHAR (arg, arg_end - arg,
+ converted, &converted_len);
+ if (converted == NULL)
+# endif
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ if (converted != result + length)
+ {
+ ENSURE_ALLOCATION (xsum (length, converted_len));
+ DCHAR_CPY (result + length, converted, converted_len);
+ free (converted);
+ }
+ length += converted_len;
+ }
+# endif
+
+ if (has_width && width > characters
+ && (dp->flags & FLAG_LEFT))
+ {
+ size_t n = width - characters;
+ ENSURE_ALLOCATION (xsum (length, n));
+ DCHAR_SET (result + length, ' ', n);
+ length += n;
+ }
+ }
+ break;
+
+ default:
+ abort ();
+ }
+ }
+#endif
+#if (NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE) && !defined IN_LIBINTL
+ else if ((dp->conversion == 'a' || dp->conversion == 'A')
+# if !(NEED_PRINTF_DIRECTIVE_A || (NEED_PRINTF_LONG_DOUBLE && NEED_PRINTF_DOUBLE))
+ && (0
+# if NEED_PRINTF_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
+# endif
+# if NEED_PRINTF_LONG_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+# endif
+ )
+# endif
+ )
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+ size_t tmp_length;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
+ DCHAR_T *pad_ptr;
+ DCHAR_T *p;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ /* Allocate a temporary buffer of sufficient size. */
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) ((LDBL_DIG + 1)
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) ((DBL_DIG + 1)
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+
+ if (tmp_length < width)
+ tmp_length = width;
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (DCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+
+ pad_ptr = NULL;
+ p = tmp;
+ if (type == TYPE_LONGDOUBLE)
+ {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_LONG_DOUBLE
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+ if (isnanl (arg))
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ if (signbit (arg)) /* arg < 0.0L or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0L && arg + arg == arg)
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+ int exponent;
+ long double mantissa;
+
+ if (arg > 0.0L)
+ mantissa = printf_frexpl (arg, &exponent);
+ else
+ {
+ exponent = 0;
+ mantissa = 0.0L;
+ }
+
+ if (has_precision
+ && precision < (unsigned int) ((LDBL_DIG + 1) * 0.831) + 1)
+ {
+ /* Round the mantissa. */
+ long double tail = mantissa;
+ size_t q;
+
+ for (q = precision; ; q--)
+ {
+ int digit = (int) tail;
+ tail -= digit;
+ if (q == 0)
+ {
+ if (digit & 1 ? tail >= 0.5L : tail > 0.5L)
+ tail = 1 - tail;
+ else
+ tail = - tail;
+ break;
+ }
+ tail *= 16.0L;
+ }
+ if (tail != 0.0L)
+ for (q = precision; q > 0; q--)
+ tail *= 0.0625L;
+ mantissa += tail;
+ }
+
+ *p++ = '0';
+ *p++ = dp->conversion - 'A' + 'X';
+ pad_ptr = p;
+ {
+ int digit;
+
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = '0' + digit;
+ if ((flags & FLAG_ALT)
+ || mantissa > 0.0L || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ /* This loop terminates because we assume
+ that FLT_RADIX is a power of 2. */
+ while (mantissa > 0.0L)
+ {
+ mantissa *= 16.0L;
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = digit
+ + (digit < 10
+ ? '0'
+ : dp->conversion - 10);
+ if (precision > 0)
+ precision--;
+ }
+ while (precision > 0)
+ {
+ *p++ = '0';
+ precision--;
+ }
+ }
+ }
+ *p++ = dp->conversion - 'A' + 'P';
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+
+ END_LONG_DOUBLE_ROUNDING ();
+ }
+# else
+ abort ();
+# endif
+ }
+ else
+ {
+# if NEED_PRINTF_DIRECTIVE_A || NEED_PRINTF_DOUBLE
+ double arg = a.arg[dp->arg_index].a.a_double;
+
+ if (isnan (arg))
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+
+ if (signbit (arg)) /* arg < 0.0 or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0 && arg + arg == arg)
+ {
+ if (dp->conversion == 'A')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+ int exponent;
+ double mantissa;
+
+ if (arg > 0.0)
+ mantissa = printf_frexp (arg, &exponent);
+ else
+ {
+ exponent = 0;
+ mantissa = 0.0;
+ }
+
+ if (has_precision
+ && precision < (unsigned int) ((DBL_DIG + 1) * 0.831) + 1)
+ {
+ /* Round the mantissa. */
+ double tail = mantissa;
+ size_t q;
+
+ for (q = precision; ; q--)
+ {
+ int digit = (int) tail;
+ tail -= digit;
+ if (q == 0)
+ {
+ if (digit & 1 ? tail >= 0.5 : tail > 0.5)
+ tail = 1 - tail;
+ else
+ tail = - tail;
+ break;
+ }
+ tail *= 16.0;
+ }
+ if (tail != 0.0)
+ for (q = precision; q > 0; q--)
+ tail *= 0.0625;
+ mantissa += tail;
+ }
+
+ *p++ = '0';
+ *p++ = dp->conversion - 'A' + 'X';
+ pad_ptr = p;
+ {
+ int digit;
+
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = '0' + digit;
+ if ((flags & FLAG_ALT)
+ || mantissa > 0.0 || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ /* This loop terminates because we assume
+ that FLT_RADIX is a power of 2. */
+ while (mantissa > 0.0)
+ {
+ mantissa *= 16.0;
+ digit = (int) mantissa;
+ mantissa -= digit;
+ *p++ = digit
+ + (digit < 10
+ ? '0'
+ : dp->conversion - 10);
+ if (precision > 0)
+ precision--;
+ }
+ while (precision > 0)
+ {
+ *p++ = '0';
+ precision--;
+ }
+ }
+ }
+ *p++ = dp->conversion - 'A' + 'P';
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+ }
+# else
+ abort ();
+# endif
+ }
+ /* The generated string now extends from tmp to p, with the
+ zero padding insertion point being at pad_ptr. */
+ if (has_width && p - tmp < width)
+ {
+ size_t pad = width - (p - tmp);
+ DCHAR_T *end = p + pad;
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > tmp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+
+ p = end;
+ }
+
+ {
+ size_t count = p - tmp;
+
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+
+ /* Make room for the result. */
+ if (count >= allocated - length)
+ {
+ size_t n = xsum (length, count);
+
+ ENSURE_ALLOCATION (n);
+ }
+
+ /* Append the result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+ if (tmp != tmpbuf)
+ free (tmp);
+ length += count;
+ }
+ }
+#endif
+#if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
+ else if ((dp->conversion == 'f' || dp->conversion == 'F'
+ || dp->conversion == 'e' || dp->conversion == 'E'
+ || dp->conversion == 'g' || dp->conversion == 'G'
+ || dp->conversion == 'a' || dp->conversion == 'A')
+ && (0
+# if NEED_PRINTF_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_DOUBLE
+# elif NEED_PRINTF_INFINITE_DOUBLE
+ || (a.arg[dp->arg_index].type == TYPE_DOUBLE
+ /* The systems (mingw) which produce wrong output
+ for Inf, -Inf, and NaN also do so for -0.0.
+ Therefore we treat this case here as well. */
+ && is_infinite_or_zero (a.arg[dp->arg_index].a.a_double))
+# endif
+# if NEED_PRINTF_LONG_DOUBLE
+ || a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+# elif NEED_PRINTF_INFINITE_LONG_DOUBLE
+ || (a.arg[dp->arg_index].type == TYPE_LONGDOUBLE
+ /* Some systems produce wrong output for Inf,
+ -Inf, and NaN. */
+ && is_infinitel (a.arg[dp->arg_index].a.a_longdouble))
+# endif
+ ))
+ {
+# if (NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE) && (NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE)
+ arg_type type = a.arg[dp->arg_index].type;
+# endif
+ int flags = dp->flags;
+ int has_width;
+ size_t width;
+ int has_precision;
+ size_t precision;
+ size_t tmp_length;
+ DCHAR_T tmpbuf[700];
+ DCHAR_T *tmp;
+ DCHAR_T *pad_ptr;
+ DCHAR_T *p;
+
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+
+ has_precision = 0;
+ precision = 0;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+
+ /* POSIX specifies the default precision to be 6 for %f, %F,
+ %e, %E, but not for %g, %G. Implementations appear to use
+ the same default precision also for %g, %G. */
+ if (!has_precision)
+ precision = 6;
+
+ /* Allocate a temporary buffer of sufficient size. */
+# if NEED_PRINTF_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : DBL_DIG + 1);
+# elif NEED_PRINTF_INFINITE_DOUBLE && NEED_PRINTF_LONG_DOUBLE
+ tmp_length = (type == TYPE_LONGDOUBLE ? LDBL_DIG + 1 : 0);
+# elif NEED_PRINTF_LONG_DOUBLE
+ tmp_length = LDBL_DIG + 1;
+# elif NEED_PRINTF_DOUBLE
+ tmp_length = DBL_DIG + 1;
+# else
+ tmp_length = 0;
+# endif
+ if (tmp_length < precision)
+ tmp_length = precision;
+# if NEED_PRINTF_LONG_DOUBLE
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ if (type == TYPE_LONGDOUBLE)
+# endif
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+ if (!(isnanl (arg) || arg + arg == arg))
+ {
+ /* arg is finite and nonzero. */
+ int exponent = floorlog10l (arg < 0 ? -arg : arg);
+ if (exponent >= 0 && tmp_length < exponent + precision)
+ tmp_length = exponent + precision;
+ }
+ }
+# endif
+# if NEED_PRINTF_DOUBLE
+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+ if (type == TYPE_DOUBLE)
+# endif
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+ if (!(isnan (arg) || arg + arg == arg))
+ {
+ /* arg is finite and nonzero. */
+ int exponent = floorlog10 (arg < 0 ? -arg : arg);
+ if (exponent >= 0 && tmp_length < exponent + precision)
+ tmp_length = exponent + precision;
+ }
+ }
+# endif
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+
+ if (tmp_length < width)
+ tmp_length = width;
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (DCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (DCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (DCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+
+ pad_ptr = NULL;
+ p = tmp;
+
+# if NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ if (type == TYPE_LONGDOUBLE)
+# endif
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+
+ if (isnanl (arg))
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+ DECL_LONG_DOUBLE_ROUNDING
+
+ BEGIN_LONG_DOUBLE_ROUNDING ();
+
+ if (signbit (arg)) /* arg < 0.0L or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0L && arg + arg == arg)
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+# if NEED_PRINTF_LONG_DOUBLE
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ char *digits;
+ size_t ndigits;
+
+ digits =
+ scale10_round_decimal_long_double (arg, precision);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits > precision)
+ do
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ while (ndigits > precision);
+ else
+ *p++ = '0';
+ /* Here ndigits <= precision. */
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > ndigits; precision--)
+ *p++ = '0';
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ int exponent;
+
+ if (arg == 0.0L)
+ {
+ exponent = 0;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else
+ {
+ /* arg > 0.0L. */
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+
+ exponent = floorlog10l (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_long_double (arg,
+ (int)precision - exponent);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits == precision + 1)
+ break;
+ if (ndigits < precision
+ || ndigits > precision + 2)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits == precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+
+ /* Here ndigits = precision+1. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+
+ *p++ = dp->conversion; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', '.', '2', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+.2d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+.2d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ if (precision == 0)
+ precision = 1;
+ /* precision >= 1. */
+
+ if (arg == 0.0L)
+ /* The exponent is 0, >= -4, < precision.
+ Use fixed-point notation. */
+ {
+ size_t ndigits = precision;
+ /* Number of trailing zeroes that have to be
+ dropped. */
+ size_t nzeroes =
+ (flags & FLAG_ALT ? 0 : precision - 1);
+
+ --ndigits;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = '0';
+ }
+ }
+ }
+ else
+ {
+ /* arg > 0.0L. */
+ int exponent;
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+ size_t nzeroes;
+
+ exponent = floorlog10l (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_long_double (arg,
+ (int)(precision - 1) - exponent);
+ if (digits == NULL)
+ {
+ END_LONG_DOUBLE_ROUNDING ();
+ goto out_of_memory;
+ }
+ ndigits = strlen (digits);
+
+ if (ndigits == precision)
+ break;
+ if (ndigits < precision - 1
+ || ndigits > precision + 1)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits < precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision. */
+
+ /* Determine the number of trailing zeroes
+ that have to be dropped. */
+ nzeroes = 0;
+ if ((flags & FLAG_ALT) == 0)
+ while (nzeroes < ndigits
+ && digits[nzeroes] == '0')
+ nzeroes++;
+
+ /* The exponent is now determined. */
+ if (exponent >= -4
+ && exponent < (long)precision)
+ {
+ /* Fixed-point notation:
+ max(exponent,0)+1 digits, then the
+ decimal point, then the remaining
+ digits without trailing zeroes. */
+ if (exponent >= 0)
+ {
+ size_t count = exponent + 1;
+ /* Note: count <= precision = ndigits. */
+ for (; count > 0; count--)
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ size_t count = -exponent - 1;
+ *p++ = '0';
+ *p++ = decimal_point_char ();
+ for (; count > 0; count--)
+ *p++ = '0';
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ /* Exponential notation. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ { '%', '+', '.', '2', 'd', '\0' };
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, "%+.2d", exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, "%+.2d", exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+# endif
+ }
+
+ free (digits);
+ }
+ }
+ else
+ abort ();
+# else
+ /* arg is finite. */
+ abort ();
+# endif
+ }
+
+ END_LONG_DOUBLE_ROUNDING ();
+ }
+ }
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ else
+# endif
+# endif
+# if NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_DOUBLE
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+
+ if (isnan (arg))
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'N'; *p++ = 'A'; *p++ = 'N';
+ }
+ else
+ {
+ *p++ = 'n'; *p++ = 'a'; *p++ = 'n';
+ }
+ }
+ else
+ {
+ int sign = 0;
+
+ if (signbit (arg)) /* arg < 0.0 or negative zero */
+ {
+ sign = -1;
+ arg = -arg;
+ }
+
+ if (sign < 0)
+ *p++ = '-';
+ else if (flags & FLAG_SHOWSIGN)
+ *p++ = '+';
+ else if (flags & FLAG_SPACE)
+ *p++ = ' ';
+
+ if (arg > 0.0 && arg + arg == arg)
+ {
+ if (dp->conversion >= 'A' && dp->conversion <= 'Z')
+ {
+ *p++ = 'I'; *p++ = 'N'; *p++ = 'F';
+ }
+ else
+ {
+ *p++ = 'i'; *p++ = 'n'; *p++ = 'f';
+ }
+ }
+ else
+ {
+# if NEED_PRINTF_DOUBLE
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ char *digits;
+ size_t ndigits;
+
+ digits =
+ scale10_round_decimal_double (arg, precision);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits > precision)
+ do
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ while (ndigits > precision);
+ else
+ *p++ = '0';
+ /* Here ndigits <= precision. */
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > ndigits; precision--)
+ *p++ = '0';
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ int exponent;
+
+ if (arg == 0.0)
+ {
+ exponent = 0;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else
+ {
+ /* arg > 0.0. */
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+
+ exponent = floorlog10 (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_double (arg,
+ (int)precision - exponent);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits == precision + 1)
+ break;
+ if (ndigits < precision
+ || ndigits > precision + 2)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits == precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+
+ /* Here ndigits = precision+1. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > 0)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+
+ free (digits);
+ }
+
+ *p++ = dp->conversion; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ { '%', '+', '.', '3', 'd', '\0' };
+# else
+ { '%', '+', '.', '2', 'd', '\0' };
+# endif
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ {
+ static const char decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ "%+.3d";
+# else
+ "%+.2d";
+# endif
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, decimal_format, exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, decimal_format, exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+ }
+# endif
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ if (precision == 0)
+ precision = 1;
+ /* precision >= 1. */
+
+ if (arg == 0.0)
+ /* The exponent is 0, >= -4, < precision.
+ Use fixed-point notation. */
+ {
+ size_t ndigits = precision;
+ /* Number of trailing zeroes that have to be
+ dropped. */
+ size_t nzeroes =
+ (flags & FLAG_ALT ? 0 : precision - 1);
+
+ --ndigits;
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = '0';
+ }
+ }
+ }
+ else
+ {
+ /* arg > 0.0. */
+ int exponent;
+ int adjusted;
+ char *digits;
+ size_t ndigits;
+ size_t nzeroes;
+
+ exponent = floorlog10 (arg);
+ adjusted = 0;
+ for (;;)
+ {
+ digits =
+ scale10_round_decimal_double (arg,
+ (int)(precision - 1) - exponent);
+ if (digits == NULL)
+ goto out_of_memory;
+ ndigits = strlen (digits);
+
+ if (ndigits == precision)
+ break;
+ if (ndigits < precision - 1
+ || ndigits > precision + 1)
+ /* The exponent was not guessed
+ precisely enough. */
+ abort ();
+ if (adjusted)
+ /* None of two values of exponent is
+ the right one. Prevent an endless
+ loop. */
+ abort ();
+ free (digits);
+ if (ndigits < precision)
+ exponent -= 1;
+ else
+ exponent += 1;
+ adjusted = 1;
+ }
+ /* Here ndigits = precision. */
+
+ /* Determine the number of trailing zeroes
+ that have to be dropped. */
+ nzeroes = 0;
+ if ((flags & FLAG_ALT) == 0)
+ while (nzeroes < ndigits
+ && digits[nzeroes] == '0')
+ nzeroes++;
+
+ /* The exponent is now determined. */
+ if (exponent >= -4
+ && exponent < (long)precision)
+ {
+ /* Fixed-point notation:
+ max(exponent,0)+1 digits, then the
+ decimal point, then the remaining
+ digits without trailing zeroes. */
+ if (exponent >= 0)
+ {
+ size_t count = exponent + 1;
+ /* Note: count <= precision = ndigits. */
+ for (; count > 0; count--)
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ size_t count = -exponent - 1;
+ *p++ = '0';
+ *p++ = decimal_point_char ();
+ for (; count > 0; count--)
+ *p++ = '0';
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ }
+ else
+ {
+ /* Exponential notation. */
+ *p++ = digits[--ndigits];
+ if ((flags & FLAG_ALT) || ndigits > nzeroes)
+ {
+ *p++ = decimal_point_char ();
+ while (ndigits > nzeroes)
+ {
+ --ndigits;
+ *p++ = digits[ndigits];
+ }
+ }
+ *p++ = dp->conversion - 'G' + 'E'; /* 'e' or 'E' */
+# if WIDE_CHAR_VERSION
+ {
+ static const wchar_t decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ { '%', '+', '.', '3', 'd', '\0' };
+# else
+ { '%', '+', '.', '2', 'd', '\0' };
+# endif
+ SNPRINTF (p, 6 + 1, decimal_format, exponent);
+ }
+ while (*p != '\0')
+ p++;
+# else
+ {
+ static const char decimal_format[] =
+ /* Produce the same number of exponent digits
+ as the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ "%+.3d";
+# else
+ "%+.2d";
+# endif
+ if (sizeof (DCHAR_T) == 1)
+ {
+ sprintf ((char *) p, decimal_format, exponent);
+ while (*p != '\0')
+ p++;
+ }
+ else
+ {
+ char expbuf[6 + 1];
+ const char *ep;
+ sprintf (expbuf, decimal_format, exponent);
+ for (ep = expbuf; (*p = *ep) != '\0'; ep++)
+ p++;
+ }
+ }
+# endif
+ }
+
+ free (digits);
+ }
+ }
+ else
+ abort ();
+# else
+ /* arg is finite. */
+ if (!(arg == 0.0))
+ abort ();
+
+ pad_ptr = p;
+
+ if (dp->conversion == 'f' || dp->conversion == 'F')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ }
+ else if (dp->conversion == 'e' || dp->conversion == 'E')
+ {
+ *p++ = '0';
+ if ((flags & FLAG_ALT) || precision > 0)
+ {
+ *p++ = decimal_point_char ();
+ for (; precision > 0; precision--)
+ *p++ = '0';
+ }
+ *p++ = dp->conversion; /* 'e' or 'E' */
+ *p++ = '+';
+ /* Produce the same number of exponent digits as
+ the native printf implementation. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ *p++ = '0';
+# endif
+ *p++ = '0';
+ *p++ = '0';
+ }
+ else if (dp->conversion == 'g' || dp->conversion == 'G')
+ {
+ *p++ = '0';
+ if (flags & FLAG_ALT)
+ {
+ size_t ndigits =
+ (precision > 0 ? precision - 1 : 0);
+ *p++ = decimal_point_char ();
+ for (; ndigits > 0; --ndigits)
+ *p++ = '0';
+ }
+ }
+ else
+ abort ();
+# endif
+ }
+ }
+ }
+# endif
+
+ /* The generated string now extends from tmp to p, with the
+ zero padding insertion point being at pad_ptr. */
+ if (has_width && p - tmp < width)
+ {
+ size_t pad = width - (p - tmp);
+ DCHAR_T *end = p + pad;
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > tmp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+
+ p = end;
+ }
+
+ {
+ size_t count = p - tmp;
+
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+
+ /* Make room for the result. */
+ if (count >= allocated - length)
+ {
+ size_t n = xsum (length, count);
+
+ ENSURE_ALLOCATION (n);
+ }
+
+ /* Append the result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+ if (tmp != tmpbuf)
+ free (tmp);
+ length += count;
+ }
+ }
+#endif
+ else
+ {
+ arg_type type = a.arg[dp->arg_index].type;
+ int flags = dp->flags;
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ int has_width;
+ size_t width;
+#endif
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+ int has_precision;
+ size_t precision;
+#endif
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ int prec_ourselves;
+#else
+# define prec_ourselves 0
+#endif
+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ int pad_ourselves;
+#else
+# define pad_ourselves 0
+#endif
+ TCHAR_T *fbp;
+ unsigned int prefix_count;
+ int prefixes[2];
+#if !USE_SNPRINTF
+ size_t tmp_length;
+ TCHAR_T tmpbuf[700];
+ TCHAR_T *tmp;
+#endif
+
+#if !USE_SNPRINTF || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ has_width = 0;
+ width = 0;
+ if (dp->width_start != dp->width_end)
+ {
+ if (dp->width_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->width_arg_index].a.a_int;
+ if (arg < 0)
+ {
+ /* "A negative field width is taken as a '-' flag
+ followed by a positive field width." */
+ flags |= FLAG_LEFT;
+ width = (unsigned int) (-arg);
+ }
+ else
+ width = arg;
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->width_start;
+
+ do
+ width = xsum (xtimes (width, 10), *digitp++ - '0');
+ while (digitp != dp->width_end);
+ }
+ has_width = 1;
+ }
+#endif
+
+#if !USE_SNPRINTF || NEED_PRINTF_UNBOUNDED_PRECISION
+ has_precision = 0;
+ precision = 6;
+ if (dp->precision_start != dp->precision_end)
+ {
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ int arg;
+
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ arg = a.arg[dp->precision_arg_index].a.a_int;
+ /* "A negative precision is taken as if the precision
+ were omitted." */
+ if (arg >= 0)
+ {
+ precision = arg;
+ has_precision = 1;
+ }
+ }
+ else
+ {
+ const FCHAR_T *digitp = dp->precision_start + 1;
+
+ precision = 0;
+ while (digitp != dp->precision_end)
+ precision = xsum (xtimes (precision, 10), *digitp++ - '0');
+ has_precision = 1;
+ }
+ }
+#endif
+
+#if !USE_SNPRINTF
+ /* Allocate a temporary buffer of sufficient size for calling
+ sprintf. */
+ {
+ switch (dp->conversion)
+ {
+
+ case 'd': case 'i': case 'u':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.30103 /* binary -> decimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Multiply by 2, as an estimate for FLAG_GROUP. */
+ tmp_length = xsum (tmp_length, tmp_length);
+ /* Add 1, to account for a leading sign. */
+ tmp_length = xsum (tmp_length, 1);
+ break;
+
+ case 'o':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.333334 /* binary -> octal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Add 1, to account for a leading sign. */
+ tmp_length = xsum (tmp_length, 1);
+ break;
+
+ case 'x': case 'X':
+# if HAVE_LONG_LONG_INT
+ if (type == TYPE_LONGLONGINT || type == TYPE_ULONGLONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long long) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+# endif
+ if (type == TYPE_LONGINT || type == TYPE_ULONGINT)
+ tmp_length =
+ (unsigned int) (sizeof (unsigned long) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (sizeof (unsigned int) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Add 2, to account for a leading sign or alternate form. */
+ tmp_length = xsum (tmp_length, 2);
+ break;
+
+ case 'f': case 'F':
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) (LDBL_MAX_EXP
+ * 0.30103 /* binary -> decimal */
+ * 2 /* estimate for FLAG_GROUP */
+ )
+ + 1 /* turn floor into ceil */
+ + 10; /* sign, decimal point etc. */
+ else
+ tmp_length =
+ (unsigned int) (DBL_MAX_EXP
+ * 0.30103 /* binary -> decimal */
+ * 2 /* estimate for FLAG_GROUP */
+ )
+ + 1 /* turn floor into ceil */
+ + 10; /* sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, precision);
+ break;
+
+ case 'e': case 'E': case 'g': case 'G':
+ tmp_length =
+ 12; /* sign, decimal point, exponent etc. */
+ tmp_length = xsum (tmp_length, precision);
+ break;
+
+ case 'a': case 'A':
+ if (type == TYPE_LONGDOUBLE)
+ tmp_length =
+ (unsigned int) (LDBL_DIG
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ else
+ tmp_length =
+ (unsigned int) (DBL_DIG
+ * 0.831 /* decimal -> hexadecimal */
+ )
+ + 1; /* turn floor into ceil */
+ if (tmp_length < precision)
+ tmp_length = precision;
+ /* Account for sign, decimal point etc. */
+ tmp_length = xsum (tmp_length, 12);
+ break;
+
+ case 'c':
+# if HAVE_WINT_T && !WIDE_CHAR_VERSION
+ if (type == TYPE_WIDE_CHAR)
+ tmp_length = MB_CUR_MAX;
+ else
+# endif
+ tmp_length = 1;
+ break;
+
+ case 's':
+# if HAVE_WCHAR_T
+ if (type == TYPE_WIDE_STRING)
+ {
+ tmp_length =
+ local_wcslen (a.arg[dp->arg_index].a.a_wide_string);
+
+# if !WIDE_CHAR_VERSION
+ tmp_length = xtimes (tmp_length, MB_CUR_MAX);
+# endif
+ }
+ else
+# endif
+ tmp_length = strlen (a.arg[dp->arg_index].a.a_string);
+ break;
+
+ case 'p':
+ tmp_length =
+ (unsigned int) (sizeof (void *) * CHAR_BIT
+ * 0.25 /* binary -> hexadecimal */
+ )
+ + 1 /* turn floor into ceil */
+ + 2; /* account for leading 0x */
+ break;
+
+ default:
+ abort ();
+ }
+
+# if ENABLE_UNISTDIO
+ /* Padding considers the number of characters, therefore the
+ number of elements after padding may be
+ > max (tmp_length, width)
+ but is certainly
+ <= tmp_length + width. */
+ tmp_length = xsum (tmp_length, width);
+# else
+ /* Padding considers the number of elements, says POSIX. */
+ if (tmp_length < width)
+ tmp_length = width;
+# endif
+
+ tmp_length = xsum (tmp_length, 1); /* account for trailing NUL */
+ }
+
+ if (tmp_length <= sizeof (tmpbuf) / sizeof (TCHAR_T))
+ tmp = tmpbuf;
+ else
+ {
+ size_t tmp_memsize = xtimes (tmp_length, sizeof (TCHAR_T));
+
+ if (size_overflow_p (tmp_memsize))
+ /* Overflow, would lead to out of memory. */
+ goto out_of_memory;
+ tmp = (TCHAR_T *) malloc (tmp_memsize);
+ if (tmp == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ }
+#endif
+
+ /* Decide whether to handle the precision ourselves. */
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ switch (dp->conversion)
+ {
+ case 'd': case 'i': case 'u':
+ case 'o':
+ case 'x': case 'X': case 'p':
+ prec_ourselves = has_precision && (precision > 0);
+ break;
+ default:
+ prec_ourselves = 0;
+ break;
+ }
+#endif
+
+ /* Decide whether to perform the padding ourselves. */
+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ switch (dp->conversion)
+ {
+# if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO
+ /* If we need conversion from TCHAR_T[] to DCHAR_T[], we need
+ to perform the padding after this conversion. Functions
+ with unistdio extensions perform the padding based on
+ character count rather than element count. */
+ case 'c': case 's':
+# endif
+# if NEED_PRINTF_FLAG_ZERO
+ case 'f': case 'F': case 'e': case 'E': case 'g': case 'G':
+ case 'a': case 'A':
+# endif
+ pad_ourselves = 1;
+ break;
+ default:
+ pad_ourselves = prec_ourselves;
+ break;
+ }
+#endif
+
+ /* Construct the format string for calling snprintf or
+ sprintf. */
+ fbp = buf;
+ *fbp++ = '%';
+#if NEED_PRINTF_FLAG_GROUPING
+ /* The underlying implementation doesn't support the ' flag.
+ Produce no grouping characters in this case; this is
+ acceptable because the grouping is locale dependent. */
+#else
+ if (flags & FLAG_GROUP)
+ *fbp++ = '\'';
+#endif
+ if (flags & FLAG_LEFT)
+ *fbp++ = '-';
+ if (flags & FLAG_SHOWSIGN)
+ *fbp++ = '+';
+ if (flags & FLAG_SPACE)
+ *fbp++ = ' ';
+ if (flags & FLAG_ALT)
+ *fbp++ = '#';
+ if (!pad_ourselves)
+ {
+ if (flags & FLAG_ZERO)
+ *fbp++ = '0';
+ if (dp->width_start != dp->width_end)
+ {
+ size_t n = dp->width_end - dp->width_start;
+ /* The width specification is known to consist only
+ of standard ASCII characters. */
+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+ {
+ memcpy (fbp, dp->width_start, n * sizeof (TCHAR_T));
+ fbp += n;
+ }
+ else
+ {
+ const FCHAR_T *mp = dp->width_start;
+ do
+ *fbp++ = (unsigned char) *mp++;
+ while (--n > 0);
+ }
+ }
+ }
+ if (!prec_ourselves)
+ {
+ if (dp->precision_start != dp->precision_end)
+ {
+ size_t n = dp->precision_end - dp->precision_start;
+ /* The precision specification is known to consist only
+ of standard ASCII characters. */
+ if (sizeof (FCHAR_T) == sizeof (TCHAR_T))
+ {
+ memcpy (fbp, dp->precision_start, n * sizeof (TCHAR_T));
+ fbp += n;
+ }
+ else
+ {
+ const FCHAR_T *mp = dp->precision_start;
+ do
+ *fbp++ = (unsigned char) *mp++;
+ while (--n > 0);
+ }
+ }
+ }
+
+ switch (type)
+ {
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ case TYPE_ULONGLONGINT:
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ *fbp++ = 'I';
+ *fbp++ = '6';
+ *fbp++ = '4';
+ break;
+# else
+ *fbp++ = 'l';
+ /*FALLTHROUGH*/
+# endif
+#endif
+ case TYPE_LONGINT:
+ case TYPE_ULONGINT:
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+#endif
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+#endif
+ *fbp++ = 'l';
+ break;
+ case TYPE_LONGDOUBLE:
+ *fbp++ = 'L';
+ break;
+ default:
+ break;
+ }
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ *fbp = 'f';
+ else
+#endif
+ *fbp = dp->conversion;
+#if USE_SNPRINTF
+# if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))
+ fbp[1] = '%';
+ fbp[2] = 'n';
+ fbp[3] = '\0';
+# else
+ /* On glibc2 systems from glibc >= 2.3 - probably also older
+ ones - we know that snprintf's returns value conforms to
+ ISO C 99: the gl_SNPRINTF_DIRECTIVE_N test passes.
+ Therefore we can avoid using %n in this situation.
+ On glibc2 systems from 2004-10-18 or newer, the use of %n
+ in format strings in writable memory may crash the program
+ (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
+ in this situation. */
+ fbp[1] = '\0';
+# endif
+#else
+ fbp[1] = '\0';
+#endif
+
+ /* Construct the arguments for calling snprintf or sprintf. */
+ prefix_count = 0;
+ if (!pad_ourselves && dp->width_arg_index != ARG_NONE)
+ {
+ if (!(a.arg[dp->width_arg_index].type == TYPE_INT))
+ abort ();
+ prefixes[prefix_count++] = a.arg[dp->width_arg_index].a.a_int;
+ }
+ if (dp->precision_arg_index != ARG_NONE)
+ {
+ if (!(a.arg[dp->precision_arg_index].type == TYPE_INT))
+ abort ();
+ prefixes[prefix_count++] = a.arg[dp->precision_arg_index].a.a_int;
+ }
+
+#if USE_SNPRINTF
+ /* The SNPRINTF result is appended after result[0..length].
+ The latter is an array of DCHAR_T; SNPRINTF appends an
+ array of TCHAR_T to it. This is possible because
+ sizeof (TCHAR_T) divides sizeof (DCHAR_T) and
+ alignof (TCHAR_T) <= alignof (DCHAR_T). */
+# define TCHARS_PER_DCHAR (sizeof (DCHAR_T) / sizeof (TCHAR_T))
+ /* Prepare checking whether snprintf returns the count
+ via %n. */
+ ENSURE_ALLOCATION (xsum (length, 1));
+ *(TCHAR_T *) (result + length) = '\0';
+#endif
+
+ for (;;)
+ {
+ int count = -1;
+
+#if USE_SNPRINTF
+ int retcount = 0;
+ size_t maxlen = allocated - length;
+ /* SNPRINTF can fail if its second argument is
+ > INT_MAX. */
+ if (maxlen > INT_MAX / TCHARS_PER_DCHAR)
+ maxlen = INT_MAX / TCHARS_PER_DCHAR;
+ maxlen = maxlen * TCHARS_PER_DCHAR;
+# define SNPRINTF_BUF(arg) \
+ switch (prefix_count) \
+ { \
+ case 0: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ arg, &count); \
+ break; \
+ case 1: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ prefixes[0], arg, &count); \
+ break; \
+ case 2: \
+ retcount = SNPRINTF ((TCHAR_T *) (result + length), \
+ maxlen, buf, \
+ prefixes[0], prefixes[1], arg, \
+ &count); \
+ break; \
+ default: \
+ abort (); \
+ }
+#else
+# define SNPRINTF_BUF(arg) \
+ switch (prefix_count) \
+ { \
+ case 0: \
+ count = sprintf (tmp, buf, arg); \
+ break; \
+ case 1: \
+ count = sprintf (tmp, buf, prefixes[0], arg); \
+ break; \
+ case 2: \
+ count = sprintf (tmp, buf, prefixes[0], prefixes[1],\
+ arg); \
+ break; \
+ default: \
+ abort (); \
+ }
+#endif
+
+ switch (type)
+ {
+ case TYPE_SCHAR:
+ {
+ int arg = a.arg[dp->arg_index].a.a_schar;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_UCHAR:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_uchar;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_SHORT:
+ {
+ int arg = a.arg[dp->arg_index].a.a_short;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_USHORT:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_ushort;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_INT:
+ {
+ int arg = a.arg[dp->arg_index].a.a_int;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_UINT:
+ {
+ unsigned int arg = a.arg[dp->arg_index].a.a_uint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_LONGINT:
+ {
+ long int arg = a.arg[dp->arg_index].a.a_longint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_ULONGINT:
+ {
+ unsigned long int arg = a.arg[dp->arg_index].a.a_ulongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_LONG_LONG_INT
+ case TYPE_LONGLONGINT:
+ {
+ long long int arg = a.arg[dp->arg_index].a.a_longlongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_ULONGLONGINT:
+ {
+ unsigned long long int arg = a.arg[dp->arg_index].a.a_ulonglongint;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_DOUBLE:
+ {
+ double arg = a.arg[dp->arg_index].a.a_double;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_LONGDOUBLE:
+ {
+ long double arg = a.arg[dp->arg_index].a.a_longdouble;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ case TYPE_CHAR:
+ {
+ int arg = a.arg[dp->arg_index].a.a_char;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_WINT_T
+ case TYPE_WIDE_CHAR:
+ {
+ wint_t arg = a.arg[dp->arg_index].a.a_wide_char;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_STRING:
+ {
+ const char *arg = a.arg[dp->arg_index].a.a_string;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#if HAVE_WCHAR_T
+ case TYPE_WIDE_STRING:
+ {
+ const wchar_t *arg = a.arg[dp->arg_index].a.a_wide_string;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+#endif
+ case TYPE_POINTER:
+ {
+ void *arg = a.arg[dp->arg_index].a.a_pointer;
+ SNPRINTF_BUF (arg);
+ }
+ break;
+ default:
+ abort ();
+ }
+
+#if USE_SNPRINTF
+ /* Portability: Not all implementations of snprintf()
+ are ISO C 99 compliant. Determine the number of
+ bytes that snprintf() has produced or would have
+ produced. */
+ if (count >= 0)
+ {
+ /* Verify that snprintf() has NUL-terminated its
+ result. */
+ if (count < maxlen
+ && ((TCHAR_T *) (result + length)) [count] != '\0')
+ abort ();
+ /* Portability hack. */
+ if (retcount > count)
+ count = retcount;
+ }
+ else
+ {
+ /* snprintf() doesn't understand the '%n'
+ directive. */
+ if (fbp[1] != '\0')
+ {
+ /* Don't use the '%n' directive; instead, look
+ at the snprintf() return value. */
+ fbp[1] = '\0';
+ continue;
+ }
+ else
+ {
+ /* Look at the snprintf() return value. */
+ if (retcount < 0)
+ {
+ /* HP-UX 10.20 snprintf() is doubly deficient:
+ It doesn't understand the '%n' directive,
+ *and* it returns -1 (rather than the length
+ that would have been required) when the
+ buffer is too small. */
+ size_t bigger_need =
+ xsum (xtimes (allocated, 2), 12);
+ ENSURE_ALLOCATION (bigger_need);
+ continue;
+ }
+ else
+ count = retcount;
+ }
+ }
+#endif
+
+ /* Attempt to handle failure. */
+ if (count < 0)
+ {
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EINVAL;
+ return NULL;
+ }
+
+#if USE_SNPRINTF
+ /* Handle overflow of the allocated buffer.
+ If such an overflow occurs, a C99 compliant snprintf()
+ returns a count >= maxlen. However, a non-compliant
+ snprintf() function returns only count = maxlen - 1. To
+ cover both cases, test whether count >= maxlen - 1. */
+ if ((unsigned int) count + 1 >= maxlen)
+ {
+ /* If maxlen already has attained its allowed maximum,
+ allocating more memory will not increase maxlen.
+ Instead of looping, bail out. */
+ if (maxlen == INT_MAX / TCHARS_PER_DCHAR)
+ goto overflow;
+ else
+ {
+ /* Need at least count * sizeof (TCHAR_T) bytes.
+ But allocate proportionally, to avoid looping
+ eternally if snprintf() reports a too small
+ count. */
+ size_t n =
+ xmax (xsum (length,
+ (count + TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR),
+ xtimes (allocated, 2));
+
+ ENSURE_ALLOCATION (n);
+ continue;
+ }
+ }
+#endif
+
+#if NEED_PRINTF_UNBOUNDED_PRECISION
+ if (prec_ourselves)
+ {
+ /* Handle the precision. */
+ TCHAR_T *prec_ptr =
+# if USE_SNPRINTF
+ (TCHAR_T *) (result + length);
+# else
+ tmp;
+# endif
+ size_t prefix_count;
+ size_t move;
+
+ prefix_count = 0;
+ /* Put the additional zeroes after the sign. */
+ if (count >= 1
+ && (*prec_ptr == '-' || *prec_ptr == '+'
+ || *prec_ptr == ' '))
+ prefix_count = 1;
+ /* Put the additional zeroes after the 0x prefix if
+ (flags & FLAG_ALT) || (dp->conversion == 'p'). */
+ else if (count >= 2
+ && prec_ptr[0] == '0'
+ && (prec_ptr[1] == 'x' || prec_ptr[1] == 'X'))
+ prefix_count = 2;
+
+ move = count - prefix_count;
+ if (precision > move)
+ {
+ /* Insert zeroes. */
+ size_t insert = precision - move;
+ TCHAR_T *prec_end;
+
+# if USE_SNPRINTF
+ size_t n =
+ xsum (length,
+ (count + insert + TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR);
+ length += (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+ ENSURE_ALLOCATION (n);
+ length -= (count + TCHARS_PER_DCHAR - 1) / TCHARS_PER_DCHAR;
+ prec_ptr = (TCHAR_T *) (result + length);
+# endif
+
+ prec_end = prec_ptr + count;
+ prec_ptr += prefix_count;
+
+ while (prec_end > prec_ptr)
+ {
+ prec_end--;
+ prec_end[insert] = prec_end[0];
+ }
+
+ prec_end += insert;
+ do
+ *--prec_end = '0';
+ while (prec_end > prec_ptr);
+
+ count += insert;
+ }
+ }
+#endif
+
+#if !DCHAR_IS_TCHAR
+# if !USE_SNPRINTF
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+# endif
+
+ /* Convert from TCHAR_T[] to DCHAR_T[]. */
+ if (dp->conversion == 'c' || dp->conversion == 's')
+ {
+ /* type = TYPE_CHAR or TYPE_WIDE_CHAR or TYPE_STRING
+ TYPE_WIDE_STRING.
+ The result string is not certainly ASCII. */
+ const TCHAR_T *tmpsrc;
+ DCHAR_T *tmpdst;
+ size_t tmpdst_len;
+ /* This code assumes that TCHAR_T is 'char'. */
+ typedef int TCHAR_T_verify
+ [2 * (sizeof (TCHAR_T) == 1) - 1];
+# if USE_SNPRINTF
+ tmpsrc = (TCHAR_T *) (result + length);
+# else
+ tmpsrc = tmp;
+# endif
+ tmpdst = NULL;
+ tmpdst_len = 0;
+ if (DCHAR_CONV_FROM_ENCODING (locale_charset (),
+ iconveh_question_mark,
+ tmpsrc, count,
+ NULL,
+ &tmpdst, &tmpdst_len)
+ < 0)
+ {
+ int saved_errno = errno;
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = saved_errno;
+ return NULL;
+ }
+ ENSURE_ALLOCATION (xsum (length, tmpdst_len));
+ DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+ free (tmpdst);
+ count = tmpdst_len;
+ }
+ else
+ {
+ /* The result string is ASCII.
+ Simple 1:1 conversion. */
+# if USE_SNPRINTF
+ /* If sizeof (DCHAR_T) == sizeof (TCHAR_T), it's a
+ no-op conversion, in-place on the array starting
+ at (result + length). */
+ if (sizeof (DCHAR_T) != sizeof (TCHAR_T))
+# endif
+ {
+ const TCHAR_T *tmpsrc;
+ DCHAR_T *tmpdst;
+ size_t n;
+
+# if USE_SNPRINTF
+ if (result == resultbuf)
+ {
+ tmpsrc = (TCHAR_T *) (result + length);
+ /* ENSURE_ALLOCATION will not move tmpsrc
+ (because it's part of resultbuf). */
+ ENSURE_ALLOCATION (xsum (length, count));
+ }
+ else
+ {
+ /* ENSURE_ALLOCATION will move the array
+ (because it uses realloc(). */
+ ENSURE_ALLOCATION (xsum (length, count));
+ tmpsrc = (TCHAR_T *) (result + length);
+ }
+# else
+ tmpsrc = tmp;
+ ENSURE_ALLOCATION (xsum (length, count));
+# endif
+ tmpdst = result + length;
+ /* Copy backwards, because of overlapping. */
+ tmpsrc += count;
+ tmpdst += count;
+ for (n = count; n > 0; n--)
+ *--tmpdst = (unsigned char) *--tmpsrc;
+ }
+ }
+#endif
+
+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
+ /* Make room for the result. */
+ if (count > allocated - length)
+ {
+ /* Need at least count elements. But allocate
+ proportionally. */
+ size_t n =
+ xmax (xsum (length, count), xtimes (allocated, 2));
+
+ ENSURE_ALLOCATION (n);
+ }
+#endif
+
+ /* Here count <= allocated - length. */
+
+ /* Perform padding. */
+#if !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+ if (pad_ourselves && has_width)
+ {
+ size_t w;
+# if ENABLE_UNISTDIO
+ /* Outside POSIX, it's preferrable to compare the width
+ against the number of _characters_ of the converted
+ value. */
+ w = DCHAR_MBSNLEN (result + length, count);
+# else
+ /* The width is compared against the number of _bytes_
+ of the converted value, says POSIX. */
+ w = count;
+# endif
+ if (w < width)
+ {
+ size_t pad = width - w;
+# if USE_SNPRINTF
+ /* Make room for the result. */
+ if (xsum (count, pad) > allocated - length)
+ {
+ /* Need at least count + pad elements. But
+ allocate proportionally. */
+ size_t n =
+ xmax (xsum3 (length, count, pad),
+ xtimes (allocated, 2));
+
+ length += count;
+ ENSURE_ALLOCATION (n);
+ length -= count;
+ }
+ /* Here count + pad <= allocated - length. */
+# endif
+ {
+# if !DCHAR_IS_TCHAR || USE_SNPRINTF
+ DCHAR_T * const rp = result + length;
+# else
+ DCHAR_T * const rp = tmp;
+# endif
+ DCHAR_T *p = rp + count;
+ DCHAR_T *end = p + pad;
+# if NEED_PRINTF_FLAG_ZERO
+ DCHAR_T *pad_ptr;
+# if !DCHAR_IS_TCHAR
+ if (dp->conversion == 'c'
+ || dp->conversion == 's')
+ /* No zero-padding for string directives. */
+ pad_ptr = NULL;
+ else
+# endif
+ {
+ pad_ptr = (*rp == '-' ? rp + 1 : rp);
+ /* No zero-padding of "inf" and "nan". */
+ if ((*pad_ptr >= 'A' && *pad_ptr <= 'Z')
+ || (*pad_ptr >= 'a' && *pad_ptr <= 'z'))
+ pad_ptr = NULL;
+ }
+# endif
+ /* The generated string now extends from rp to p,
+ with the zero padding insertion point being at
+ pad_ptr. */
+
+ count = count + pad; /* = end - rp */
+
+ if (flags & FLAG_LEFT)
+ {
+ /* Pad with spaces on the right. */
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+# if NEED_PRINTF_FLAG_ZERO
+ else if ((flags & FLAG_ZERO) && pad_ptr != NULL)
+ {
+ /* Pad with zeroes. */
+ DCHAR_T *q = end;
+
+ while (p > pad_ptr)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = '0';
+ }
+# endif
+ else
+ {
+ /* Pad with spaces on the left. */
+ DCHAR_T *q = end;
+
+ while (p > rp)
+ *--q = *--p;
+ for (; pad > 0; pad--)
+ *p++ = ' ';
+ }
+ }
+ }
+ }
+#endif
+
+#if DCHAR_IS_TCHAR && !USE_SNPRINTF
+ if (count >= tmp_length)
+ /* tmp_length was incorrectly calculated - fix the
+ code above! */
+ abort ();
+#endif
+
+ /* Here still count <= allocated - length. */
+
+#if !DCHAR_IS_TCHAR || USE_SNPRINTF
+ /* The snprintf() result did fit. */
+#else
+ /* Append the sprintf() result. */
+ memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+#endif
+#if !USE_SNPRINTF
+ if (tmp != tmpbuf)
+ free (tmp);
+#endif
+
+#if NEED_PRINTF_DIRECTIVE_F
+ if (dp->conversion == 'F')
+ {
+ /* Convert the %f result to upper case for %F. */
+ DCHAR_T *rp = result + length;
+ size_t rc;
+ for (rc = count; rc > 0; rc--, rp++)
+ if (*rp >= 'a' && *rp <= 'z')
+ *rp = *rp - 'a' + 'A';
+ }
+#endif
+
+ length += count;
+ break;
+ }
+ }
+ }
+ }
+
+ /* Add the final NUL. */
+ ENSURE_ALLOCATION (xsum (length, 1));
+ result[length] = '\0';
+
+ if (result != resultbuf && length + 1 < allocated)
+ {
+ /* Shrink the allocated memory if possible. */
+ DCHAR_T *memory;
+
+ memory = (DCHAR_T *) realloc (result, (length + 1) * sizeof (DCHAR_T));
+ if (memory != NULL)
+ result = memory;
+ }
+
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ *lengthp = length;
+ /* Note that we can produce a big string of a length > INT_MAX. POSIX
+ says that snprintf() fails with errno = EOVERFLOW in this case, but
+ that's only because snprintf() returns an 'int'. This function does
+ not have this limitation. */
+ return result;
+
+ overflow:
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EOVERFLOW;
+ return NULL;
+
+ out_of_memory:
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ out_of_memory_1:
+ CLEANUP ();
+ errno = ENOMEM;
+ return NULL;
+ }
+}
+
+#undef TCHARS_PER_DCHAR
+#undef SNPRINTF
+#undef USE_SNPRINTF
+#undef DCHAR_CPY
+#undef PRINTF_PARSE
+#undef DIRECTIVES
+#undef DIRECTIVE
+#undef DCHAR_IS_TCHAR
+#undef TCHAR_T
+#undef DCHAR_T
+#undef FCHAR_T
+#undef VASNPRINTF
diff --git a/intl/vasnprintf.h b/intl/vasnprintf.h
new file mode 100644
index 0000000..ff1d183
--- /dev/null
+++ b/intl/vasnprintf.h
@@ -0,0 +1,78 @@
+/* vsprintf with automatic memory allocation.
+ Copyright (C) 2002-2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _VASNPRINTF_H
+#define _VASNPRINTF_H
+
+/* Get va_list. */
+#include <stdarg.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+ are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+# define __format__ format
+# define __printf__ printf
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Write formatted output to a string dynamically allocated with malloc().
+ You can pass a preallocated buffer for the result in RESULTBUF and its
+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
+ If successful, return the address of the string (this may be = RESULTBUF
+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
+ number of resulting bytes, excluding the trailing NUL. Upon error, set
+ errno and return NULL.
+
+ When dynamic memory allocation occurs, the preallocated buffer is left
+ alone (with possibly modified contents). This makes it possible to use
+ a statically allocated or stack-allocated buffer, like this:
+
+ char buf[100];
+ size_t len = sizeof (buf);
+ char *output = vasnprintf (buf, &len, format, args);
+ if (output == NULL)
+ ... error handling ...;
+ else
+ {
+ ... use the output string ...;
+ if (output != buf)
+ free (output);
+ }
+ */
+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+ __attribute__ ((__format__ (__printf__, 3, 4)));
+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
+ __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VASNPRINTF_H */
diff --git a/intl/vasnwprintf.h b/intl/vasnwprintf.h
new file mode 100644
index 0000000..6ff03ce
--- /dev/null
+++ b/intl/vasnwprintf.h
@@ -0,0 +1,46 @@
+/* vswprintf with automatic memory allocation.
+ Copyright (C) 2002-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _VASNWPRINTF_H
+#define _VASNWPRINTF_H
+
+/* Get va_list. */
+#include <stdarg.h>
+
+/* Get wchar_t, size_t. */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Write formatted output to a string dynamically allocated with malloc().
+ You can pass a preallocated buffer for the result in RESULTBUF and its
+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
+ If successful, return the address of the string (this may be = RESULTBUF
+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
+ number of resulting bytes, excluding the trailing NUL. Upon error, set
+ errno and return NULL. */
+extern wchar_t * asnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, ...);
+extern wchar_t * vasnwprintf (wchar_t *resultbuf, size_t *lengthp, const wchar_t *format, va_list args);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VASNWPRINTF_H */
diff --git a/intl/version.c b/intl/version.c
new file mode 100644
index 0000000..a968cf7
--- /dev/null
+++ b/intl/version.c
@@ -0,0 +1,26 @@
+/* libintl library version.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "libgnuintl.h"
+
+/* Version number: (major<<16) + (minor<<8) + subminor */
+int libintl_version = LIBINTL_VERSION;
diff --git a/intl/wprintf-parse.h b/intl/wprintf-parse.h
new file mode 100644
index 0000000..600b89a
--- /dev/null
+++ b/intl/wprintf-parse.h
@@ -0,0 +1,75 @@
+/* Parse printf format string.
+ Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _WPRINTF_PARSE_H
+#define _WPRINTF_PARSE_H
+
+#include "printf-args.h"
+
+
+/* Flags */
+#define FLAG_GROUP 1 /* ' flag */
+#define FLAG_LEFT 2 /* - flag */
+#define FLAG_SHOWSIGN 4 /* + flag */
+#define FLAG_SPACE 8 /* space flag */
+#define FLAG_ALT 16 /* # flag */
+#define FLAG_ZERO 32
+
+/* arg_index value indicating that no argument is consumed. */
+#define ARG_NONE (~(size_t)0)
+
+/* A parsed directive. */
+typedef struct
+{
+ const wchar_t* dir_start;
+ const wchar_t* dir_end;
+ int flags;
+ const wchar_t* width_start;
+ const wchar_t* width_end;
+ size_t width_arg_index;
+ const wchar_t* precision_start;
+ const wchar_t* precision_end;
+ size_t precision_arg_index;
+ wchar_t conversion; /* d i o u x X f e E g G c s p n U % but not C S */
+ size_t arg_index;
+}
+wchar_t_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ wchar_t_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+}
+wchar_t_directives;
+
+
+/* Parses the format string. Fills in the number N of directives, and fills
+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
+ to the end of the format string. Also fills in the arg_type fields of the
+ arguments and the needed count of arguments. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int wprintf_parse (const wchar_t *format, wchar_t_directives *d, arguments *a);
+
+#endif /* _WPRINTF_PARSE_H */
diff --git a/intl/xsize.h b/intl/xsize.h
new file mode 100644
index 0000000..b3023a7
--- /dev/null
+++ b/intl/xsize.h
@@ -0,0 +1,109 @@
+/* xsize.h -- Checked size_t computations.
+
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _XSIZE_H
+#define _XSIZE_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get SIZE_MAX. */
+#include <limits.h>
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+/* The size of memory objects is often computed through expressions of
+ type size_t. Example:
+ void* p = malloc (header_size + n * element_size).
+ These computations can lead to overflow. When this happens, malloc()
+ returns a piece of memory that is way too small, and the program then
+ crashes while attempting to fill the memory.
+ To avoid this, the functions and macros in this file check for overflow.
+ The convention is that SIZE_MAX represents overflow.
+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
+ implementation that uses mmap --, it's recommended to use size_overflow_p()
+ or size_in_bounds_p() before invoking malloc().
+ The example thus becomes:
+ size_t size = xsum (header_size, xtimes (n, element_size));
+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
+*/
+
+/* Convert an arbitrary value >= 0 to type size_t. */
+#define xcast_size_t(N) \
+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
+
+/* Sum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum (size_t size1, size_t size2)
+{
+ size_t sum = size1 + size2;
+ return (sum >= size1 ? sum : SIZE_MAX);
+}
+
+/* Sum of three sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum3 (size_t size1, size_t size2, size_t size3)
+{
+ return xsum (xsum (size1, size2), size3);
+}
+
+/* Sum of four sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
+{
+ return xsum (xsum (xsum (size1, size2), size3), size4);
+}
+
+/* Maximum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xmax (size_t size1, size_t size2)
+{
+ /* No explicit check is needed here, because for any n:
+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
+ return (size1 >= size2 ? size1 : size2);
+}
+
+/* Multiplication of a count with an element size, with overflow check.
+ The count must be >= 0 and the element size must be > 0.
+ This is a macro, not an inline function, so that it works correctly even
+ when N is of a wider tupe and N > SIZE_MAX. */
+#define xtimes(N, ELSIZE) \
+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
+
+/* Check for overflow. */
+#define size_overflow_p(SIZE) \
+ ((SIZE) == SIZE_MAX)
+/* Check against overflow. */
+#define size_in_bounds_p(SIZE) \
+ ((SIZE) != SIZE_MAX)
+
+#endif /* _XSIZE_H */
diff --git a/linebreak/CMakeLists.txt b/linebreak/CMakeLists.txt
new file mode 100644
index 0000000..ef27bde
--- /dev/null
+++ b/linebreak/CMakeLists.txt
@@ -0,0 +1,86 @@
+# Build script for the "linebreak" library, which provides the
+#"linebreak" utilities from libgettextpo
+#
+# Timothy E. Holy, 2009
+
+# If you're building this as part of a larger package, the following
+# variables can be set upon entry:
+# LINEBREAK_BINARY_DIR
+# LINEBREAK_SOURCE_DIR
+# LOCALE_DIR
+# TOP_SRC_DIR
+# PREFIX
+
+project(linebreak)
+
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+include(CheckFunctionExists)
+
+# We require the iconv library to be available
+find_package(Iconv REQUIRED)
+#message("Iconv const: ${ICONV_SECOND_ARGUMENT_IS_CONST}")
+add_definitions(-DHAVE_ICONV=1)
+
+# This can either be called in standalone mode, or as part of a larger
+# project. For that reason, we need to examine whether certain settings
+# have been made before, or not.
+if (NOT CONFIGURECHECKSINTL_DONE)
+ include(ConfigureChecksIntl)
+endif ()
+if (NOT LINEBREAK_BINARY_DIR)
+ set(LINEBREAK_BINARY_DIR ${CMAKE_BINARY_DIR})
+endif ()
+if (NOT LINEBREAK_SOURCE_DIR)
+ set(LINEBREAK_SOURCE_DIR ${CMAKE_SOURCE_DIR})
+endif ()
+
+# Generate the appropriate config.h file
+configure_file(linebreak_config.h.cmake ${LINEBREAK_BINARY_DIR}/config.h)
+
+add_definitions(
+ -DHAVE_CONFIG_H=1
+ -DMAKE_LINEBREAK_LIB
+ -DIN_LIBLINEBREAK
+ -DENABLE_RELOCATABLE=1
+ -DIN_LIBRARY
+ -DNO_XMALLOC
+ -Dset_relocation_prefix=liblinebreak_set_relocation_prefix
+ -Drelocate=liblinebreak_relocate
+ -DDEPENDS_ON_LIBICONV=1
+ )
+
+if (NOT APPLE)
+add_definitions(
+ -DLOCALEDIR=\\"${LOCALE_DIR}\\"
+ -DLOCALE_ALIAS_PATH=\\"${LOCALE_DIR}\\"
+ -DLIBDIR=\\"${TOP_SRC_DIR}\\"
+ -DINSTALLDIR=\\"${PREFIX}\\"
+ )
+else (NOT APPLE)
+add_definitions(
+ -DLOCALEDIR='\"${LOCALE_DIR}\"'
+ -DLOCALE_ALIAS_PATH='\"${LOCALE_DIR}\"'
+ -DLIBDIR='\"${TOP_SRC_DIR}\"'
+ -DINSTALLDIR='\"${PREFIX}\"'
+ )
+endif (NOT APPLE)
+
+file(GLOB_RECURSE LINEBREAK_HEADERS ${LINEBREAK_SOURCE_DIR} *.h)
+
+file(GLOB_RECURSE LINEBREAK_SOURCES ${LINEBREAK_SOURCE_DIR} *.c)
+
+
+include_directories(${LINEBREAK_BINARY_DIR} ${LINEBREAK_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+
+if(ICONV_FOUND)
+ include_directories(${ICONV_INCLUDE_DIR})
+endif(ICONV_FOUND)
+
+add_library(linebreak STATIC ${LINEBREAK_SOURCES} ${LINEBREAK_HEADERS})
+
+if(ICONV_FOUND)
+ target_link_libraries(linebreak ${ICONV_LIBRARY})
+endif(ICONV_FOUND)
+
+#project_source_group("${GROUP_CODE}" LINEBREAK_SOURCES LINEBREAK_HEADERS)
+
diff --git a/linebreak/Makefile.am b/linebreak/Makefile.am
new file mode 100644
index 0000000..ff3df84
--- /dev/null
+++ b/linebreak/Makefile.am
@@ -0,0 +1,27 @@
+## Makefile.am for tuxmath/linebreak:
+## Process with Automake to create Makefile.in
+
+noinst_LIBRARIES = liblinebreak.a
+liblinebreak_a_SOURCES = linebreak.c \
+ unistr/u16-mbtouc-aux.c \
+ unistr/u16-mbtouc.c \
+ unistr/u16-mbtouc-unsafe-aux.c \
+ unistr/u16-mbtouc-unsafe.c \
+ unistr/u8-mbtouc-aux.c \
+ unistr/u8-mbtouc.c \
+ unistr/u8-mbtouc-unsafe-aux.c \
+ unistr/u8-mbtouc-unsafe.c \
+ unistr/u8-uctomb-aux.c \
+ unistr/u8-uctomb.c \
+ uniwidth/width.c
+
+EXTRA_DIST = lbrkprop.h \
+ linebreak.h \
+ localcharset.h \
+ streq.h \
+ unistr.h \
+ unitypes.h \
+ uniwidth.h \
+ xsize.h \
+ uniwidth/cjk.h
+
diff --git a/linebreak/cpfiles b/linebreak/cpfiles
new file mode 100755
index 0000000..c6dd257
--- /dev/null
+++ b/linebreak/cpfiles
@@ -0,0 +1,6 @@
+#! /bin/bash
+# Usage: cpfiles <libgettextpo-directory-name>
+cp -ir $1/unistr* ./
+cp -ir $1/uniwidth* ./
+cp -i $1/lbrkprop.h $1/linebreak.{c,h} $1/unitypes.h $1/xsize.h $1/localcharset.h ./
+cp -i $1/c-ctype.h $1/streq.h ./
diff --git a/linebreak/lbrkprop.h b/linebreak/lbrkprop.h
new file mode 100644
index 0000000..d407062
--- /dev/null
+++ b/linebreak/lbrkprop.h
@@ -0,0 +1,1895 @@
+/* Line breaking properties of Unicode characters. */
+/* Generated automatically by gen-lbrkprop for Unicode 3.1.0. */
+
+/* Copyright (C) 2000-2004 Free Software Foundation, Inc.
+
+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 3 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, see <http://www.gnu.org/licenses/>. */
+
+#define lbrkprop_header_0 16
+#define lbrkprop_header_1 15
+#define lbrkprop_header_2 7
+#define lbrkprop_header_3 511
+#define lbrkprop_header_4 127
+static const
+struct
+ {
+ int level1[15];
+ int level2[4 << 9];
+ unsigned char level3[100 << 7];
+ }
+lbrkprop =
+{
+ { 0, 512, 1024, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1536 },
+ {
+ 0, 128, 256, 384, 512, 640, 768, 896,
+ 1024, 1152, 1280, 1408, 1536, 1664, 1792, 1920,
+ -1, -1, 2048, 2176, 2304, 2432, 2560, 2688,
+ 2816, 2944, 3072, 3200, 3328, 3456, 3584, 3712,
+ 3840, 3968, 4096, 4224, 4352, 4480, 4608, 4736,
+ 4864, 4992, 4992, 4992, 5120, 5248, -1, 5376,
+ 5504, 5632, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 4992, 5760, 5888, 6016,
+ 6144, 6272, 6400, 6528, 6656, 6784, 6912, 7040,
+ 7168, 7296, 7424, 7552, 7680, -1, 7808, 7936,
+ 4992, 4992, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 8064, 8192, 8320,
+ 8448, 8576, 8704, 8832, 8960, 9088, 9216, 9344,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 9472, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 9600,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 9728, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 9856,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 8192, 8192, 9984, -1, 10112, 10240,
+ 4992, 4992, 10368, 10496, 10624, 10752, 10880, 11008,
+ -1, -1, -1, -1, -1, -1, 11136, -1,
+ 11264, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 4992, 11392, 11520, 11648, -1, -1, -1, -1,
+ 11776, 11904, 12032, 4992, 4992, 12160, 4992, 12288,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192,
+ 8192, 8192, 8192, 8192, 8192, 12416, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 8192, 8192, 8192, 8192, 12544, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ 12672, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1
+ },
+ {
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_BA, LBP_BK, LBP_CM, LBP_BK, LBP_BK, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_SP, LBP_EX, LBP_QU, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU,
+ LBP_OP, LBP_CL, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_AL, LBP_EX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_PR, LBP_CL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_BA, LBP_CL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BK, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_GL, LBP_AI, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AI, LBP_QU, LBP_AL, LBP_BA, LBP_AL, LBP_AL,
+ LBP_PO, LBP_PR, LBP_AI, LBP_AI, LBP_BB, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_QU, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_BB, LBP_AI, LBP_AI, LBP_AI, LBP_BB, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_XX, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_IS, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM,
+ LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM,
+ LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_CM,
+ LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_PR, LBP_PR, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_CM, LBP_SA, LBP_SA, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_PR,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NS, LBP_NS, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA,
+ LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA,
+ LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_CM, LBP_SA, LBP_SA, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_SA, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_GL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_CM,
+ LBP_AL, LBP_CM, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA,
+ LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_NS, LBP_BA, LBP_NS, LBP_NS,
+ LBP_NS, LBP_NS, LBP_NS, LBP_PR, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_GL,
+ LBP_BA, LBP_BA, LBP_BA, LBP_ZW, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_BA, LBP_GL, LBP_BA, LBP_BA, LBP_B2, LBP_AI, LBP_AI, LBP_AL,
+ LBP_QU, LBP_QU, LBP_OP, LBP_QU, LBP_QU, LBP_QU, LBP_OP, LBP_QU,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_IN, LBP_IN, LBP_IN, LBP_BA,
+ LBP_BK, LBP_BK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL,
+ LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO,
+ LBP_AL, LBP_QU, LBP_QU, LBP_AI, LBP_NS, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NS, LBP_OP, LBP_CL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AI,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO,
+ LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_PR, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AI, LBP_PR, LBP_PR, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_CL, LBP_CL, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL,
+ LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_NS, LBP_OP, LBP_CL, LBP_CL,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_ID, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_ID, LBP_ID,
+ LBP_XX, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_XX,
+ LBP_XX, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_ID, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP,
+ LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_CL, LBP_ID, LBP_CL, LBP_XX, LBP_NS, LBP_NS, LBP_EX, LBP_EX,
+ LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_GL,
+ LBP_XX, LBP_EX, LBP_ID, LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_ID,
+ LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_CL, LBP_ID, LBP_CL, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_EX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_XX,
+ LBP_XX, LBP_CL, LBP_OP, LBP_CL, LBP_CL, LBP_NS, LBP_AL, LBP_NS,
+ LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS,
+ LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NS, LBP_NS,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX,
+ LBP_PO, LBP_PR, LBP_ID, LBP_ID, LBP_ID, LBP_PR, LBP_PR, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CB, LBP_AI, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX,
+ LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX,
+ LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL,
+ LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID,
+ LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM,
+ LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM
+ }
+};
diff --git a/linebreak/linebreak.c b/linebreak/linebreak.c
new file mode 100644
index 0000000..f9c88a1
--- /dev/null
+++ b/linebreak/linebreak.c
@@ -0,0 +1,1345 @@
+/* linebreak.c - line breaking of Unicode strings
+ Copyright (C) 2001-2003, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <haible at clisp.cons.org>, 2001.
+
+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 3 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, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Modification by David Bruce <davidstuartbruce at gmail.com>
+ * to allow compilation under mingw-cross-env:
+ */
+
+#if defined BUILD_MINGW32 && !defined ICONV_CONST
+#define ICONV_CONST const
+#endif
+
+/* End of modification --------------------------- */
+
+/* Specification. */
+#include "linebreak.h"
+
+#include <stdlib.h>
+#include <string.h>
+//#include "c-ctype.h"
+#include "ctype.h"
+#include "xsize.h"
+#include "unistr.h"
+#include "uniwidth.h"
+#include "uniwidth/cjk.h"
+#include "streq.h"
+
+
+static int
+is_utf8_encoding (const char *encoding)
+{
+ if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+ return 1;
+ return 0;
+}
+
+
+/* Determine the line break points in S, and store the result at p[0..n-1]. */
+/* We don't support line breaking of complex-context dependent characters
+ (Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */
+
+/* Line breaking classification. */
+
+enum
+{
+ /* Values >= 20 are resolved at run time. */
+ LBP_BK = 0, /* mandatory break */
+/*LBP_CR, carriage return - not used here because it's a DOSism */
+/*LBP_LF, line feed - not used here because it's a DOSism */
+ LBP_CM = 20, /* attached characters and combining marks */
+/*LBP_SG, surrogates - not used here because they are not characters */
+ LBP_ZW = 1, /* zero width space */
+ LBP_IN = 2, /* inseparable */
+ LBP_GL = 3, /* non-breaking (glue) */
+ LBP_CB = 22, /* contingent break opportunity */
+ LBP_SP = 21, /* space */
+ LBP_BA = 4, /* break opportunity after */
+ LBP_BB = 5, /* break opportunity before */
+ LBP_B2 = 6, /* break opportunity before and after */
+ LBP_HY = 7, /* hyphen */
+ LBP_NS = 8, /* non starter */
+ LBP_OP = 9, /* opening punctuation */
+ LBP_CL = 10, /* closing punctuation */
+ LBP_QU = 11, /* ambiguous quotation */
+ LBP_EX = 12, /* exclamation/interrogation */
+ LBP_ID = 13, /* ideographic */
+ LBP_NU = 14, /* numeric */
+ LBP_IS = 15, /* infix separator (numeric) */
+ LBP_SY = 16, /* symbols allowing breaks */
+ LBP_AL = 17, /* ordinary alphabetic and symbol characters */
+ LBP_PR = 18, /* prefix (numeric) */
+ LBP_PO = 19, /* postfix (numeric) */
+ LBP_SA = 23, /* complex context (South East Asian) */
+ LBP_AI = 24, /* ambiguous (alphabetic or ideograph) */
+ LBP_XX = 25 /* unknown */
+};
+
+#include "lbrkprop.h"
+
+static inline unsigned char
+lbrkprop_lookup (unsigned int uc)
+{
+ unsigned int index1 = uc >> lbrkprop_header_0;
+ if (index1 < lbrkprop_header_1)
+ {
+ int lookup1 = lbrkprop.level1[index1];
+ if (lookup1 >= 0)
+ {
+ unsigned int index2 = (uc >> lbrkprop_header_2) & lbrkprop_header_3;
+ int lookup2 = lbrkprop.level2[lookup1 + index2];
+ if (lookup2 >= 0)
+ {
+ unsigned int index3 = uc & lbrkprop_header_4;
+ return lbrkprop.level3[lookup2 + index3];
+ }
+ }
+ }
+ return LBP_XX;
+}
+
+/* Table indexed by two line breaking classifications. */
+#define D 1 /* direct break opportunity, empty in table 7.3 of UTR #14 */
+#define I 2 /* indirect break opportunity, '%' in table 7.3 of UTR #14 */
+#define P 3 /* prohibited break, '^' in table 7.3 of UTR #14 */
+static const unsigned char lbrk_table[19][19] = {
+ /* after */
+ /* ZW IN GL BA BB B2 HY NS OP CL QU EX ID NU IS SY AL PR PO */
+/* ZW */ { P, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, },
+/* IN */ { P, I, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* GL */ { P, I, I, I, I, I, I, I, I, P, I, P, I, I, P, P, I, I, I, },
+/* BA */ { P, D, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* BB */ { P, I, I, I, I, I, I, I, I, P, I, P, I, I, P, P, I, I, I, },
+/* B2 */ { P, D, I, I, D, P, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* HY */ { P, D, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* NS */ { P, D, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* OP */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, },
+/* CL */ { P, D, I, I, D, D, I, P, D, P, I, P, D, D, P, P, D, D, I, },
+/* QU */ { P, I, I, I, I, I, I, I, P, P, I, P, I, I, P, P, I, I, I, },
+/* EX */ { P, D, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* ID */ { P, I, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, I, },
+/* NU */ { P, I, I, I, D, D, I, I, D, P, I, P, D, I, P, P, I, D, I, },
+/* IS */ { P, D, I, I, D, D, I, I, D, P, I, P, D, I, P, P, D, D, D, },
+/* SY */ { P, D, I, I, D, D, I, I, D, P, I, P, D, I, P, P, D, D, D, },
+/* AL */ { P, I, I, I, D, D, I, I, D, P, I, P, D, I, P, P, I, D, D, },
+/* PR */ { P, D, I, I, D, D, I, I, I, P, I, P, I, I, P, P, I, D, D, },
+/* PO */ { P, D, I, I, D, D, I, I, D, P, I, P, D, D, P, P, D, D, D, },
+/* "" */
+/* before */
+};
+/* Note: The (B2,B2) entry should probably be D instead of P. */
+/* Note: The (PR,ID) entry should probably be D instead of I. */
+
+void
+u8_possible_linebreaks (const unsigned char *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const unsigned char *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ /* Don't break inside multibyte characters. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+
+ while (s < s_end)
+ {
+ unsigned int uc;
+ int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
+ int prop = lbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with combining characters. */
+ q = p;
+ if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character. */
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_AL. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_AL;
+ goto lookup_via_table;
+ }
+ }
+ else if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 1 && prop <= sizeof(lbrk_table) / sizeof(lbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else
+ {
+ switch (lbrk_table [last_prop-1] [prop-1])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s += count;
+ p += count;
+ }
+}
+
+#ifdef unused
+
+void
+u16_possible_linebreaks (const unsigned short *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const unsigned short *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ /* Don't break inside multibyte characters. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+
+ while (s < s_end)
+ {
+ unsigned int uc;
+ int count = u16_mbtouc_unsafe (&uc, s, s_end - s);
+ int prop = lbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with combining characters. */
+ q = p;
+ if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character. */
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_AL. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_AL;
+ goto lookup_via_table;
+ }
+ }
+ else if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 1 && prop <= sizeof(lbrk_table) / sizeof(lbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else
+ {
+ switch (lbrk_table [last_prop-1] [prop-1])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s += count;
+ p += count;
+ }
+}
+
+void
+u32_possible_linebreaks (const unsigned int *s, size_t n, const char *encoding, char *p)
+{
+ int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL);
+ const unsigned int *s_end = s + n;
+ int last_prop = LBP_BK; /* line break property of last non-space character */
+ char *seen_space = NULL; /* Was a space seen after the last non-space character? */
+ char *seen_space2 = NULL; /* At least two spaces after the last non-space? */
+
+ while (s < s_end)
+ {
+ unsigned int uc = *s;
+ int prop = lbrkprop_lookup (uc);
+
+ if (prop == LBP_BK)
+ {
+ /* Mandatory break. */
+ *p = UC_BREAK_MANDATORY;
+ last_prop = LBP_BK;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ else
+ {
+ char *q;
+
+ /* Resolve property values whose behaviour is not fixed. */
+ switch (prop)
+ {
+ case LBP_AI:
+ /* Resolve ambiguous. */
+ prop = LBP_AI_REPLACEMENT;
+ break;
+ case LBP_CB:
+ /* This is arbitrary. */
+ prop = LBP_ID;
+ break;
+ case LBP_SA:
+ /* We don't handle complex scripts yet.
+ Treat LBP_SA like LBP_XX. */
+ case LBP_XX:
+ /* This is arbitrary. */
+ prop = LBP_AL;
+ break;
+ }
+
+ /* Deal with combining characters. */
+ q = p;
+ if (prop == LBP_CM)
+ {
+ /* Don't break just before a combining character. */
+ *p = UC_BREAK_PROHIBITED;
+ /* A combining character turns a preceding space into LBP_AL. */
+ if (seen_space != NULL)
+ {
+ q = seen_space;
+ seen_space = seen_space2;
+ prop = LBP_AL;
+ goto lookup_via_table;
+ }
+ }
+ else if (prop == LBP_SP)
+ {
+ /* Don't break just before a space. */
+ *p = UC_BREAK_PROHIBITED;
+ seen_space2 = seen_space;
+ seen_space = p;
+ }
+ else
+ {
+ lookup_via_table:
+ /* prop must be usable as an index for table 7.3 of UTR #14. */
+ if (!(prop >= 1 && prop <= sizeof(lbrk_table) / sizeof(lbrk_table[0])))
+ abort ();
+
+ if (last_prop == LBP_BK)
+ {
+ /* Don't break at the beginning of a line. */
+ *q = UC_BREAK_PROHIBITED;
+ }
+ else
+ {
+ switch (lbrk_table [last_prop-1] [prop-1])
+ {
+ case D:
+ *q = UC_BREAK_POSSIBLE;
+ break;
+ case I:
+ *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED);
+ break;
+ case P:
+ *q = UC_BREAK_PROHIBITED;
+ break;
+ default:
+ abort ();
+ }
+ }
+ last_prop = prop;
+ seen_space = NULL;
+ seen_space2 = NULL;
+ }
+ }
+
+ s++;
+ p++;
+ }
+}
+
+#endif
+
+
+/* Choose the best line breaks, assuming the uc_width function.
+ Return the column after the end of the string. */
+
+int
+u8_width_linebreaks (const unsigned char *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const unsigned char *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u8_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ unsigned int uc;
+ int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s += count;
+ p += count;
+ if (o != NULL)
+ o += count;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
+
+#ifdef unused
+
+int
+u16_width_linebreaks (const unsigned short *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const unsigned short *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u16_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ unsigned int uc;
+ int count = u16_mbtouc_unsafe (&uc, s, s_end - s);
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s += count;
+ p += count;
+ if (o != NULL)
+ o += count;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
+
+int
+u32_width_linebreaks (const unsigned int *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ const unsigned int *s_end;
+ char *last_p;
+ int last_column;
+ int piece_width;
+
+ u32_possible_linebreaks (s, n, encoding, p);
+
+ s_end = s + n;
+ last_p = NULL;
+ last_column = start_column;
+ piece_width = 0;
+ while (s < s_end)
+ {
+ unsigned int uc = *s;
+
+ /* Respect the override. */
+ if (o != NULL && *o != UC_BREAK_UNDEFINED)
+ *p = *o;
+
+ if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY)
+ {
+ /* An atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+ }
+
+ if (*p == UC_BREAK_MANDATORY)
+ {
+ /* uc is a line break character. */
+ /* Start a new piece at column 0. */
+ last_p = NULL;
+ last_column = 0;
+ piece_width = 0;
+ }
+ else
+ {
+ /* uc is not a line break character. */
+ int w;
+
+ if (*p == UC_BREAK_POSSIBLE)
+ {
+ /* Start a new piece. */
+ last_p = p;
+ last_column += piece_width;
+ piece_width = 0;
+ /* No line break for the moment, may be turned into
+ UC_BREAK_POSSIBLE later, via last_p. */
+ }
+
+ *p = UC_BREAK_PROHIBITED;
+
+ w = uc_width (uc, encoding);
+ if (w >= 0) /* ignore control characters in the string */
+ piece_width += w;
+ }
+
+ s++;
+ p++;
+ if (o != NULL)
+ o++;
+ }
+
+ /* The last atomic piece of text ends here. */
+ if (last_p != NULL && last_column + piece_width + at_end_columns > width)
+ {
+ /* Insert a line break. */
+ *last_p = UC_BREAK_POSSIBLE;
+ last_column = 0;
+ }
+
+ return last_column + piece_width;
+}
+
+#endif
+
+
+#ifdef TEST1
+
+#include <stdio.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ if (argc == 1)
+ {
+ /* Display all the break opportunities in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ u8_possible_linebreaks ((unsigned char *) input, length, "UTF-8", breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ /* U+2027 in UTF-8 encoding */
+ putc (0xe2, stdout); putc (0x80, stdout); putc (0xa7, stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ /* U+21B2 (or U+21B5) in UTF-8 encoding */
+ putc (0xe2, stdout); putc (0x86, stdout); putc (0xb2, stdout);
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else if (argc == 2)
+ {
+ /* Insert line breaks for a given width. */
+ int width = atoi (argv[1]);
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ u8_width_linebreaks ((unsigned char *) input, length, width, 0, 0, NULL, "UTF-8", breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('\n', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST1 */
+
+
+/* Now the same thing with an arbitrary encoding.
+
+ We convert the input string to Unicode.
+
+ The standardized Unicode encodings are UTF-8, UCS-2, UCS-4, UTF-16,
+ UTF-16BE, UTF-16LE, UTF-7. UCS-2 supports only characters up to
+ \U0000FFFF. UTF-16 and variants support only characters up to
+ \U0010FFFF. UTF-7 is way too complex and not supported by glibc-2.1.
+ UCS-4 specification leaves doubts about endianness and byte order mark.
+ glibc currently interprets it as big endian without byte order mark,
+ but this is not backed by an RFC. So we use UTF-8. It supports
+ characters up to \U7FFFFFFF and is unambiguously defined. */
+
+#if HAVE_ICONV
+
+#include <iconv.h>
+#include <errno.h>
+
+/* Luckily, the encoding's name is platform independent. */
+#define UTF8_NAME "UTF-8"
+
+/* Return the length of a string after conversion through an iconv_t. */
+static size_t
+iconv_string_length (iconv_t cd, const char *s, size_t n)
+{
+#define TMPBUFSIZE 4096
+ size_t count = 0;
+ char tmpbuf[TMPBUFSIZE];
+ const char *inptr = s;
+ size_t insize = n;
+ while (insize > 0)
+ {
+ char *outptr = tmpbuf;
+ size_t outsize = TMPBUFSIZE;
+ size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize);
+ if (res == (size_t)(-1) && errno != E2BIG)
+ return (size_t)(-1);
+ count += outptr - tmpbuf;
+ }
+ /* Avoid glibc-2.1 bug and Solaris 7 through 9 bug. */
+#if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+ {
+ char *outptr = tmpbuf;
+ size_t outsize = TMPBUFSIZE;
+ size_t res = iconv (cd, NULL, NULL, &outptr, &outsize);
+ if (res == (size_t)(-1))
+ return (size_t)(-1);
+ count += outptr - tmpbuf;
+ }
+ /* Return to the initial state. */
+ iconv (cd, NULL, NULL, NULL, NULL);
+#endif
+ return count;
+#undef TMPBUFSIZE
+}
+
+static void
+iconv_string_keeping_offsets (iconv_t cd, const char *s, size_t n,
+ size_t *offtable, char *t, size_t m)
+{
+ size_t i;
+ const char *s_end;
+ const char *inptr;
+ char *outptr;
+ size_t outsize;
+ /* Avoid glibc-2.1 bug. */
+#if !defined _LIBICONV_VERSION && (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1)
+ const size_t extra = 1;
+#else
+ const size_t extra = 0;
+#endif
+
+ for (i = 0; i < n; i++)
+ offtable[i] = (size_t)(-1);
+
+ s_end = s + n;
+ inptr = s;
+ outptr = t;
+ outsize = m + extra;
+ while (inptr < s_end)
+ {
+ const char *saved_inptr;
+ size_t insize;
+ size_t res;
+
+ offtable[inptr - s] = outptr - t;
+
+ saved_inptr = inptr;
+ res = (size_t)(-1);
+ for (insize = 1; inptr + insize <= s_end; insize++)
+ {
+ res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize);
+ if (!(res == (size_t)(-1) && errno == EINVAL))
+ break;
+ /* We expect that no input bytes have been consumed so far. */
+ if (inptr != saved_inptr)
+ abort ();
+ }
+ /* After we verified the convertibility and computed the translation's
+ size m, there shouldn't be any conversion error here. */
+ if (res == (size_t)(-1))
+ abort ();
+ }
+ /* Avoid glibc-2.1 bug and Solaris 7 bug. */
+#if defined _LIBICONV_VERSION \
+ || !((__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) || defined __sun)
+ if (iconv (cd, NULL, NULL, &outptr, &outsize) == (size_t)(-1))
+ abort ();
+#endif
+ /* We should have produced exactly m output bytes. */
+ if (outsize != extra)
+ abort ();
+}
+
+#endif /* HAVE_ICONV */
+
+#if C_CTYPE_ASCII
+
+/* Tests whether a string is entirely ASCII. Returns 1 if yes.
+ Returns 0 if the string is in an 8-bit encoding or an ISO-2022 encoding. */
+static int
+is_all_ascii (const char *s, size_t n)
+{
+ for (; n > 0; s++, n--)
+ {
+ unsigned char c = (unsigned char) *s;
+
+ if (!(c_isprint (c) || c_isspace (c)))
+ return 0;
+ }
+ return 1;
+}
+
+#endif /* C_CTYPE_ASCII */
+
+#if defined unused || defined TEST2
+
+void
+mbs_possible_linebreaks (const char *s, size_t n, const char *encoding,
+ char *p)
+{
+ if (n == 0)
+ return;
+ if (is_utf8_encoding (encoding))
+ u8_possible_linebreaks ((const unsigned char *) s, n, encoding, p);
+ else
+ {
+#if HAVE_ICONV
+ iconv_t to_utf8;
+ /* Avoid glibc-2.1 bug with EUC-KR. */
+# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+ if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0))
+ to_utf8 = (iconv_t)(-1);
+ else
+# endif
+ /* Avoid Solaris 9 bug with GB2312, EUC-TW, BIG5, BIG5-HKSCS, GBK,
+ GB18030. */
+# if defined __sun && !defined _LIBICONV_VERSION
+ if ( STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+ || STREQ (encoding, "BIG5-HKSCS", 'B', 'I', 'G', '5', '-', 'H', 'K', 'S', 'C')
+ || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+ || STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+ to_utf8 = (iconv_t)(-1);
+ else
+# endif
+ to_utf8 = iconv_open (UTF8_NAME, encoding);
+ if (to_utf8 != (iconv_t)(-1))
+ {
+ /* Determine the length of the resulting UTF-8 string. */
+ size_t m = iconv_string_length (to_utf8, s, n);
+ if (m != (size_t)(-1))
+ {
+ /* Convert the string to UTF-8 and build a translation table
+ from offsets into s to offsets into the translated string. */
+ size_t memory_size = xsum3 (xtimes (n, sizeof (size_t)), m, m);
+ char *memory =
+ (size_in_bounds_p (memory_size) ? malloc (memory_size) : NULL);
+ if (memory != NULL)
+ {
+ size_t *offtable = (size_t *) memory;
+ char *t = (char *) (offtable + n);
+ char *q = (char *) (t + m);
+ size_t i;
+
+ iconv_string_keeping_offsets (to_utf8, s, n, offtable, t, m);
+
+ /* Determine the possible line breaks of the UTF-8 string. */
+ u8_possible_linebreaks ((const unsigned char *) t, m, encoding, q);
+
+ /* Translate the result back to the original string. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+ for (i = 0; i < n; i++)
+ if (offtable[i] != (size_t)(-1))
+ p[i] = q[offtable[i]];
+
+ free (memory);
+ iconv_close (to_utf8);
+ return;
+ }
+ }
+ iconv_close (to_utf8);
+ }
+#endif
+ /* Impossible to convert. */
+#if C_CTYPE_ASCII
+ if (is_all_ascii (s, n))
+ {
+ /* ASCII is a subset of UTF-8. */
+ u8_possible_linebreaks ((const unsigned char *) s, n, encoding, p);
+ return;
+ }
+#endif
+ /* We have a non-ASCII string and cannot convert it.
+ Don't produce line breaks except those already present in the
+ input string. All we assume here is that the encoding is
+ minimally ASCII compatible. */
+ {
+ const char *s_end = s + n;
+ while (s < s_end)
+ {
+ *p = (*s == '\n' ? UC_BREAK_MANDATORY : UC_BREAK_PROHIBITED);
+ s++;
+ p++;
+ }
+ }
+ }
+}
+
+#endif
+
+int
+mbs_width_linebreaks (const char *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p)
+{
+ if (n == 0)
+ return start_column;
+ if (is_utf8_encoding (encoding))
+ return u8_width_linebreaks ((const unsigned char *) s, n, width, start_column, at_end_columns, o, encoding, p);
+ else
+ {
+#if HAVE_ICONV
+ iconv_t to_utf8;
+ /* Avoid glibc-2.1 bug with EUC-KR. */
+# if (__GLIBC__ - 0 == 2 && __GLIBC_MINOR__ - 0 <= 1) && !defined _LIBICONV_VERSION
+ if (STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0))
+ to_utf8 = (iconv_t)(-1);
+ else
+# endif
+ /* Avoid Solaris 9 bug with GB2312, EUC-TW, BIG5, BIG5-HKSCS, GBK,
+ GB18030. */
+# if defined __sun && !defined _LIBICONV_VERSION
+ if ( STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+ || STREQ (encoding, "BIG5-HKSCS", 'B', 'I', 'G', '5', '-', 'H', 'K', 'S', 'C')
+ || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+ || STREQ (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0))
+ to_utf8 = (iconv_t)(-1);
+ else
+# endif
+ to_utf8 = iconv_open (UTF8_NAME, encoding);
+ if (to_utf8 != (iconv_t)(-1))
+ {
+ /* Determine the length of the resulting UTF-8 string. */
+ size_t m = iconv_string_length (to_utf8, s, n);
+ if (m != (size_t)(-1))
+ {
+ /* Convert the string to UTF-8 and build a translation table
+ from offsets into s to offsets into the translated string. */
+ size_t memory_size =
+ xsum4 (xtimes (n, sizeof (size_t)), m, m,
+ (o != NULL ? m : 0));
+ char *memory =
+ (char *)
+ (size_in_bounds_p (memory_size) ? malloc (memory_size) : NULL);
+ if (memory != NULL)
+ {
+ size_t *offtable = (size_t *) memory;
+ char *t = (char *) (offtable + n);
+ char *q = (char *) (t + m);
+ char *o8 = (o != NULL ? (char *) (q + m) : NULL);
+ int res_column;
+ size_t i;
+
+ iconv_string_keeping_offsets (to_utf8, s, n, offtable, t, m);
+
+ /* Translate the overrides to the UTF-8 string. */
+ if (o != NULL)
+ {
+ memset (o8, UC_BREAK_UNDEFINED, m);
+ for (i = 0; i < n; i++)
+ if (offtable[i] != (size_t)(-1))
+ o8[offtable[i]] = o[i];
+ }
+
+ /* Determine the line breaks of the UTF-8 string. */
+ res_column =
+ u8_width_linebreaks ((const unsigned char *) t, m, width, start_column, at_end_columns, o8, encoding, q);
+
+ /* Translate the result back to the original string. */
+ memset (p, UC_BREAK_PROHIBITED, n);
+ for (i = 0; i < n; i++)
+ if (offtable[i] != (size_t)(-1))
+ p[i] = q[offtable[i]];
+
+ free (memory);
+ iconv_close (to_utf8);
+ return res_column;
+ }
+ }
+ iconv_close (to_utf8);
+ }
+#endif
+ /* Impossible to convert. */
+#if C_CTYPE_ASCII
+ if (is_all_ascii (s, n))
+ {
+ /* ASCII is a subset of UTF-8. */
+ return u8_width_linebreaks ((const unsigned char *) s, n, width, start_column, at_end_columns, o, encoding, p);
+ }
+#endif
+ /* We have a non-ASCII string and cannot convert it.
+ Don't produce line breaks except those already present in the
+ input string. All we assume here is that the encoding is
+ minimally ASCII compatible. */
+ {
+ const char *s_end = s + n;
+ while (s < s_end)
+ {
+ *p = ((o != NULL && *o == UC_BREAK_MANDATORY) || *s == '\n'
+ ? UC_BREAK_MANDATORY
+ : UC_BREAK_PROHIBITED);
+ s++;
+ p++;
+ if (o != NULL)
+ o++;
+ }
+ /* We cannot compute widths in this case. */
+ return start_column;
+ }
+ }
+}
+
+
+#ifdef TEST2
+
+#include <stdio.h>
+#include <locale.h>
+
+/* Read the contents of an input stream, and return it, terminated with a NUL
+ byte. */
+char *
+read_file (FILE *stream)
+{
+#define BUFSIZE 4096
+ char *buf = NULL;
+ int alloc = 0;
+ int size = 0;
+ int count;
+
+ while (! feof (stream))
+ {
+ if (size + BUFSIZE > alloc)
+ {
+ alloc = alloc + alloc / 2;
+ if (alloc < size + BUFSIZE)
+ alloc = size + BUFSIZE;
+ buf = realloc (buf, alloc);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ }
+ count = fread (buf + size, 1, BUFSIZE, stream);
+ if (count == 0)
+ {
+ if (ferror (stream))
+ {
+ perror ("fread");
+ exit (1);
+ }
+ }
+ else
+ size += count;
+ }
+ buf = realloc (buf, size + 1);
+ if (buf == NULL)
+ {
+ fprintf (stderr, "out of memory\n");
+ exit (1);
+ }
+ buf[size] = '\0';
+ return buf;
+#undef BUFSIZE
+}
+
+int
+main (int argc, char * argv[])
+{
+ setlocale (LC_CTYPE, "");
+ if (argc == 1)
+ {
+ /* Display all the break opportunities in the input string. */
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ mbs_possible_linebreaks (input, length, locale_charset (), breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('|', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else if (argc == 2)
+ {
+ /* Insert line breaks for a given width. */
+ int width = atoi (argv[1]);
+ char *input = read_file (stdin);
+ int length = strlen (input);
+ char *breaks = malloc (length);
+ int i;
+
+ mbs_width_linebreaks (input, length, width, 0, 0, NULL, locale_charset (), breaks);
+
+ for (i = 0; i < length; i++)
+ {
+ switch (breaks[i])
+ {
+ case UC_BREAK_POSSIBLE:
+ putc ('\n', stdout);
+ break;
+ case UC_BREAK_MANDATORY:
+ break;
+ case UC_BREAK_PROHIBITED:
+ break;
+ default:
+ abort ();
+ }
+ putc (input[i], stdout);
+ }
+
+ free (breaks);
+
+ return 0;
+ }
+ else
+ return 1;
+}
+
+#endif /* TEST2 */
diff --git a/linebreak/linebreak.h b/linebreak/linebreak.h
new file mode 100644
index 0000000..0c3c50b
--- /dev/null
+++ b/linebreak/linebreak.h
@@ -0,0 +1,94 @@
+/* linebreak.h - line breaking of Unicode strings
+ Copyright (C) 2001-2003, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <haible at clisp.cons.org>, 2001.
+
+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 3 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _LINEBREAK_H
+#define _LINEBREAK_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Line breaking. */
+
+enum {
+ UC_BREAK_UNDEFINED,
+ UC_BREAK_PROHIBITED,
+ UC_BREAK_POSSIBLE,
+ UC_BREAK_MANDATORY,
+ UC_BREAK_HYPHENATION
+};
+
+/* Determine the line break points in S, and store the result at p[0..n-1].
+ p[i] = UC_BREAK_MANDATORY means that s[i] is a line break character.
+ p[i] = UC_BREAK_POSSIBLE means that a line break may be inserted between
+ s[i-1] and s[i].
+ p[i] = UC_BREAK_HYPHENATION means that a hyphen and a line break may be
+ inserted between s[i-1] and s[i]. But beware of language dependent
+ hyphenation rules.
+ p[i] = UC_BREAK_PROHIBITED means that s[i-1] and s[i] must not be separated.
+ */
+extern void u8_possible_linebreaks (const unsigned char *s, size_t n,
+ const char *encoding,
+ char *p);
+extern void u16_possible_linebreaks (const unsigned short *s, size_t n,
+ const char *encoding,
+ char *p);
+extern void u32_possible_linebreaks (const unsigned int *s, size_t n,
+ const char *encoding,
+ char *p);
+extern void mbs_possible_linebreaks (const char *s, size_t n,
+ const char *encoding,
+ char *p);
+
+/* Choose the best line breaks, assuming the uc_width function.
+ Return the column after the end of the string.
+ o is an optional override; if o[i] != UC_BREAK_UNDEFINED, o[i] takes
+ precedence over p[i] as returned by the *_possible_linebreaks function.
+ */
+extern int
+ u8_width_linebreaks (const unsigned char *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ u16_width_linebreaks (const unsigned short *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ u32_width_linebreaks (const unsigned int *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+extern int
+ mbs_width_linebreaks (const char *s, size_t n,
+ int width, int start_column, int at_end_columns,
+ const char *o, const char *encoding,
+ char *p);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LINEBREAK_H */
diff --git a/linebreak/linebreak_config.h.cmake b/linebreak/linebreak_config.h.cmake
new file mode 100644
index 0000000..79d083e
--- /dev/null
+++ b/linebreak/linebreak_config.h.cmake
@@ -0,0 +1,11 @@
+/* Required headers */
+#cmakedefine LINEWRAP 1
+#cmakedefine HAVE_STDINT_H 1
+
+/* Required definitions */
+#cmakedefine ICONV_SECOND_ARGUMENT_IS_CONST 1
+#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
+#define ICONV_CONST const
+#else
+#define ICONV_CONST
+#endif
diff --git a/linebreak/localcharset.h b/linebreak/localcharset.h
new file mode 100644
index 0000000..5030210
--- /dev/null
+++ b/linebreak/localcharset.h
@@ -0,0 +1,41 @@
+/* Determine a canonical name for the current locale's character encoding.
+ Copyright (C) 2000-2003 Free Software Foundation, Inc.
+ This file is part of the GNU CHARSET Library.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/linebreak/streq.h b/linebreak/streq.h
new file mode 100644
index 0000000..80df916
--- /dev/null
+++ b/linebreak/streq.h
@@ -0,0 +1,176 @@
+/* Optimized string comparison.
+ Copyright (C) 2001-2002, 2007 Free Software Foundation, Inc.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno at clisp.org>. */
+
+#ifndef _GL_STREQ_H
+#define _GL_STREQ_H
+
+#include <string.h>
+
+/* STREQ allows to optimize string comparison with a small literal string.
+ STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ is semantically equivalent to
+ strcmp (s, "EUC-KR") == 0
+ just faster. */
+
+/* Help GCC to generate good code for string comparisons with
+ immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+static inline int
+streq9 (const char *s1, const char *s2)
+{
+ return strcmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+streq8 (const char *s1, const char *s2, char s28)
+{
+ if (s1[8] == s28)
+ {
+ if (s28 == 0)
+ return 1;
+ else
+ return streq9 (s1, s2);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq7 (const char *s1, const char *s2, char s27, char s28)
+{
+ if (s1[7] == s27)
+ {
+ if (s27 == 0)
+ return 1;
+ else
+ return streq8 (s1, s2, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+ if (s1[6] == s26)
+ {
+ if (s26 == 0)
+ return 1;
+ else
+ return streq7 (s1, s2, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+ if (s1[5] == s25)
+ {
+ if (s25 == 0)
+ return 1;
+ else
+ return streq6 (s1, s2, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[4] == s24)
+ {
+ if (s24 == 0)
+ return 1;
+ else
+ return streq5 (s1, s2, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[3] == s23)
+ {
+ if (s23 == 0)
+ return 1;
+ else
+ return streq4 (s1, s2, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[2] == s22)
+ {
+ if (s22 == 0)
+ return 1;
+ else
+ return streq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[1] == s21)
+ {
+ if (s21 == 0)
+ return 1;
+ else
+ return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[0] == s20)
+ {
+ if (s20 == 0)
+ return 1;
+ else
+ return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ (strcmp (s1, s2) == 0)
+
+#endif
+
+#endif /* _GL_STREQ_H */
diff --git a/linebreak/unistr.h b/linebreak/unistr.h
new file mode 100644
index 0000000..4a10e70
--- /dev/null
+++ b/linebreak/unistr.h
@@ -0,0 +1,661 @@
+/* Elementary Unicode string functions.
+ Copyright (C) 2001-2002, 2005-2007 Free Software Foundation, Inc.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNISTR_H
+#define _UNISTR_H
+
+#include "unitypes.h"
+
+/* Get bool. */
+#include <stdbool.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Conventions:
+
+ All functions prefixed with u8_ operate on UTF-8 encoded strings.
+ Their unit is an uint8_t (1 byte).
+
+ All functions prefixed with u16_ operate on UTF-16 encoded strings.
+ Their unit is an uint16_t (a 2-byte word).
+
+ All functions prefixed with u32_ operate on UCS-4 encoded strings.
+ Their unit is an uint32_t (a 4-byte word).
+
+ All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly
+ n units.
+
+ All arguments starting with "str" and the arguments of functions starting
+ with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string
+ which terminates at the first NUL unit. This termination unit is
+ considered part of the string for all memory allocation purposes, but
+ is not considered part of the string for all other logical purposes.
+
+ Functions returning a string result take a (resultbuf, lengthp) argument
+ pair. If resultbuf is not NULL and the result fits into *lengthp units,
+ it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly
+ allocated string is returned. In both cases, *lengthp is set to the
+ length (number of units) of the returned string. In case of error,
+ NULL is returned and errno is set. */
+
+
+/* Elementary string checks. */
+
+/* Check whether an UTF-8 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint8_t *
+ u8_check (const uint8_t *s, size_t n);
+
+/* Check whether an UTF-16 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint16_t *
+ u16_check (const uint16_t *s, size_t n);
+
+/* Check whether an UCS-4 string is well-formed.
+ Return NULL if valid, or a pointer to the first invalid unit otherwise. */
+extern const uint32_t *
+ u32_check (const uint32_t *s, size_t n);
+
+
+/* Elementary string conversions. */
+
+/* Convert an UTF-8 string to an UTF-16 string. */
+extern uint16_t *
+ u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-8 string to an UCS-4 string. */
+extern uint32_t *
+ u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-16 string to an UTF-8 string. */
+extern uint8_t *
+ u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UTF-16 string to an UCS-4 string. */
+extern uint32_t *
+ u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-8 string. */
+extern uint8_t *
+ u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf,
+ size_t *lengthp);
+
+/* Convert an UCS-4 string to an UTF-16 string. */
+extern uint16_t *
+ u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf,
+ size_t *lengthp);
+
+
+/* Elementary string functions. */
+
+/* Return the length (number of units) of the first character in S, which is
+ no longer than N. Return 0 if it is the NUL character. Return -1 upon
+ failure. */
+/* Similar to mblen(), except that s must not be NULL. */
+extern int
+ u8_mblen (const uint8_t *s, size_t n);
+extern int
+ u16_mblen (const uint16_t *s, size_t n);
+extern int
+ u32_mblen (const uint32_t *s, size_t n);
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
+ and an appropriate number of units is returned.
+ The number of available units, N, must be > 0. */
+/* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0,
+ and the NUL character is not treated specially. */
+/* The variants with _safe suffix are safe, even if the library is compiled
+ without --enable-safety. */
+
+#ifdef GNULIB_UNISTR_U8_MBTOUC_UNSAFE
+# if !HAVE_INLINE
+extern int
+ u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+ u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u8_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U16_MBTOUC_UNSAFE
+# if !HAVE_INLINE
+extern int
+ u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+ u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u16_mbtouc_unsafe_aux (puc, s, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U32_MBTOUC_UNSAFE
+# if !HAVE_INLINE
+extern int
+ u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n)
+{
+ uint32_t c = *s;
+
+# if CONFIG_UNICODE_SAFETY
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+# endif
+ *puc = c;
+# if CONFIG_UNICODE_SAFETY
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+# endif
+ return 1;
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U8_MBTOUC
+# if !HAVE_INLINE
+extern int
+ u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n);
+# else
+extern int
+ u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n);
+static inline int
+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u8_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U16_MBTOUC
+# if !HAVE_INLINE
+extern int
+ u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n);
+# else
+extern int
+ u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n);
+static inline int
+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ else
+ return u16_mbtouc_aux (puc, s, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U32_MBTOUC
+# if !HAVE_INLINE
+extern int
+ u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n);
+# else
+static inline int
+u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n)
+{
+ uint32_t c = *s;
+
+ if (c < 0xd800 || (c >= 0xe000 && c < 0x110000))
+ *puc = c;
+ else
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+# endif
+#endif
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd,
+ and -1 is returned for an invalid sequence of units, -2 is returned for an
+ incomplete sequence of units.
+ The number of available units, N, must be > 0. */
+/* Similar to u*_mbtouc(), except that the return value gives more details
+ about the failure, similar to mbrtowc(). */
+
+#ifdef GNULIB_UNISTR_U8_MBTOUCR
+extern int
+ u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n);
+#endif
+
+#ifdef GNULIB_UNISTR_U16_MBTOUCR
+extern int
+ u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n);
+#endif
+
+#ifdef GNULIB_UNISTR_U32_MBTOUCR
+extern int
+ u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n);
+#endif
+
+/* Put the multibyte character represented by UC in S, returning its
+ length. Return -1 upon failure, -2 if the number of available units, N,
+ is too small. The latter case cannot occur if N >= 6/2/1, respectively. */
+/* Similar to wctomb(), except that s must not be NULL, and the argument n
+ must be specified. */
+
+#ifdef GNULIB_UNISTR_U8_UCTOMB
+/* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */
+extern int
+ u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n);
+# if !HAVE_INLINE
+extern int
+ u8_uctomb (uint8_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u8_uctomb (uint8_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0x80 && n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ else
+ return u8_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U16_UCTOMB
+/* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */
+extern int
+ u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n);
+# if !HAVE_INLINE
+extern int
+ u16_uctomb (uint16_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u16_uctomb (uint16_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800 && n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ else
+ return u16_uctomb_aux (s, uc, n);
+}
+# endif
+#endif
+
+#ifdef GNULIB_UNISTR_U32_UCTOMB
+# if !HAVE_INLINE
+extern int
+ u32_uctomb (uint32_t *s, ucs4_t uc, int n);
+# else
+static inline int
+u32_uctomb (uint32_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000))
+ {
+ if (n > 0)
+ {
+ *s = uc;
+ return 1;
+ }
+ else
+ return -2;
+ }
+ else
+ return -1;
+}
+# endif
+#endif
+
+/* Copy N units from SRC to DEST. */
+/* Similar to memcpy(). */
+extern uint8_t *
+ u8_cpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_cpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_cpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy N units from SRC to DEST, guaranteeing correct behavior for
+ overlapping memory areas. */
+/* Similar to memmove(). */
+extern uint8_t *
+ u8_move (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_move (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_move (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Set the first N characters of S to UC. UC should be a character that
+ occupies only 1 unit. */
+/* Similar to memset(). */
+extern uint8_t *
+ u8_set (uint8_t *s, ucs4_t uc, size_t n);
+extern uint16_t *
+ u16_set (uint16_t *s, ucs4_t uc, size_t n);
+extern uint32_t *
+ u32_set (uint32_t *s, ucs4_t uc, size_t n);
+
+/* Compare S1 and S2, each of length N. */
+/* Similar to memcmp(). */
+extern int
+ u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+extern int
+ u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+extern int
+ u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+
+/* Search the string at S for UC. */
+/* Similar to memchr(). */
+extern uint8_t *
+ u8_chr (const uint8_t *s, size_t n, ucs4_t uc);
+extern uint16_t *
+ u16_chr (const uint16_t *s, size_t n, ucs4_t uc);
+extern uint32_t *
+ u32_chr (const uint32_t *s, size_t n, ucs4_t uc);
+
+/* Count the number of Unicode characters in the N units from S. */
+/* Similar to mbsnlen(). */
+extern size_t
+ u8_mbsnlen (const uint8_t *s, size_t n);
+extern size_t
+ u16_mbsnlen (const uint16_t *s, size_t n);
+extern size_t
+ u32_mbsnlen (const uint32_t *s, size_t n);
+
+/* Elementary string functions with memory allocation. */
+
+/* Make a freshly allocated copy of S, of length N. */
+extern uint8_t *
+ u8_cpy_alloc (const uint8_t *s, size_t n);
+extern uint16_t *
+ u16_cpy_alloc (const uint16_t *s, size_t n);
+extern uint32_t *
+ u32_cpy_alloc (const uint32_t *s, size_t n);
+
+/* Elementary string functions on NUL terminated strings. */
+
+/* Return the length (number of units) of the first character in S.
+ Return 0 if it is the NUL character. Return -1 upon failure. */
+extern int
+ u8_strmblen (const uint8_t *s);
+extern int
+ u16_strmblen (const uint16_t *s);
+extern int
+ u32_strmblen (const uint32_t *s);
+
+/* Return the length (number of units) of the first character in S, putting
+ its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL
+ character. Return -1 upon failure. */
+extern int
+ u8_strmbtouc (ucs4_t *puc, const uint8_t *s);
+extern int
+ u16_strmbtouc (ucs4_t *puc, const uint16_t *s);
+extern int
+ u32_strmbtouc (ucs4_t *puc, const uint32_t *s);
+
+/* Forward iteration step. Advances the pointer past the next character,
+ or returns NULL if the end of the string has been reached. Puts the
+ character's 'ucs4_t' representation in *PUC. */
+extern const uint8_t *
+ u8_next (ucs4_t *puc, const uint8_t *s);
+extern const uint16_t *
+ u16_next (ucs4_t *puc, const uint16_t *s);
+extern const uint32_t *
+ u32_next (ucs4_t *puc, const uint32_t *s);
+
+/* Backward iteration step. Advances the pointer to point to the previous
+ character, or returns NULL if the beginning of the string had been reached.
+ Puts the character's 'ucs4_t' representation in *PUC. */
+extern const uint8_t *
+ u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start);
+extern const uint16_t *
+ u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start);
+extern const uint32_t *
+ u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start);
+
+/* Return the number of units in S. */
+/* Similar to strlen(), wcslen(). */
+extern size_t
+ u8_strlen (const uint8_t *s);
+extern size_t
+ u16_strlen (const uint16_t *s);
+extern size_t
+ u32_strlen (const uint32_t *s);
+
+/* Return the number of units in S, but at most MAXLEN. */
+/* Similar to strnlen(), wcsnlen(). */
+extern size_t
+ u8_strnlen (const uint8_t *s, size_t maxlen);
+extern size_t
+ u16_strnlen (const uint16_t *s, size_t maxlen);
+extern size_t
+ u32_strnlen (const uint32_t *s, size_t maxlen);
+
+/* Copy SRC to DEST. */
+/* Similar to strcpy(), wcscpy(). */
+extern uint8_t *
+ u8_strcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_strcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_strcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */
+/* Similar to stpcpy(). */
+extern uint8_t *
+ u8_stpcpy (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_stpcpy (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_stpcpy (uint32_t *dest, const uint32_t *src);
+
+/* Copy no more than N units of SRC to DEST. */
+/* Similar to strncpy(), wcsncpy(). */
+extern uint8_t *
+ u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Copy no more than N characters of SRC to DEST, returning the address of
+ the last character written into DEST. */
+/* Similar to stpncpy(). */
+extern uint8_t *
+ u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Append SRC onto DEST. */
+/* Similar to strcat(), wcscat(). */
+extern uint8_t *
+ u8_strcat (uint8_t *dest, const uint8_t *src);
+extern uint16_t *
+ u16_strcat (uint16_t *dest, const uint16_t *src);
+extern uint32_t *
+ u32_strcat (uint32_t *dest, const uint32_t *src);
+
+/* Append no more than N units of SRC onto DEST. */
+/* Similar to strncat(), wcsncat(). */
+extern uint8_t *
+ u8_strncat (uint8_t *dest, const uint8_t *src, size_t n);
+extern uint16_t *
+ u16_strncat (uint16_t *dest, const uint16_t *src, size_t n);
+extern uint32_t *
+ u32_strncat (uint32_t *dest, const uint32_t *src, size_t n);
+
+/* Compare S1 and S2. */
+/* Similar to strcmp(), wcscmp(). */
+extern int
+ u8_strcmp (const uint8_t *s1, const uint8_t *s2);
+extern int
+ u16_strcmp (const uint16_t *s1, const uint16_t *s2);
+extern int
+ u32_strcmp (const uint32_t *s1, const uint32_t *s2);
+
+/* Compare no more than N units of S1 and S2. */
+/* Similar to strncmp(), wcsncmp(). */
+extern int
+ u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n);
+extern int
+ u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n);
+extern int
+ u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n);
+
+/* Duplicate S, returning an identical malloc'd string. */
+/* Similar to strdup(), wcsdup(). */
+extern uint8_t *
+ u8_strdup (const uint8_t *s);
+extern uint16_t *
+ u16_strdup (const uint16_t *s);
+extern uint32_t *
+ u32_strdup (const uint32_t *s);
+
+/* Find the first occurrence of UC in STR. */
+/* Similar to strchr(), wcschr(). */
+extern uint8_t *
+ u8_strchr (const uint8_t *str, ucs4_t uc);
+extern uint16_t *
+ u16_strchr (const uint16_t *str, ucs4_t uc);
+extern uint32_t *
+ u32_strchr (const uint32_t *str, ucs4_t uc);
+
+/* Find the last occurrence of UC in STR. */
+/* Similar to strrchr(), wcsrchr(). */
+extern uint8_t *
+ u8_strrchr (const uint8_t *str, ucs4_t uc);
+extern uint16_t *
+ u16_strrchr (const uint16_t *str, ucs4_t uc);
+extern uint32_t *
+ u32_strrchr (const uint32_t *str, ucs4_t uc);
+
+/* Return the length of the initial segment of STR which consists entirely
+ of Unicode characters not in REJECT. */
+/* Similar to strcspn(), wcscspn(). */
+extern size_t
+ u8_strcspn (const uint8_t *str, const uint8_t *reject);
+extern size_t
+ u16_strcspn (const uint16_t *str, const uint16_t *reject);
+extern size_t
+ u32_strcspn (const uint32_t *str, const uint32_t *reject);
+
+/* Return the length of the initial segment of STR which consists entirely
+ of Unicode characters in ACCEPT. */
+/* Similar to strspn(), wcsspn(). */
+extern size_t
+ u8_strspn (const uint8_t *str, const uint8_t *accept);
+extern size_t
+ u16_strspn (const uint16_t *str, const uint16_t *accept);
+extern size_t
+ u32_strspn (const uint32_t *str, const uint32_t *accept);
+
+/* Find the first occurrence in STR of any character in ACCEPT. */
+/* Similar to strpbrk(), wcspbrk(). */
+extern uint8_t *
+ u8_strpbrk (const uint8_t *str, const uint8_t *accept);
+extern uint16_t *
+ u16_strpbrk (const uint16_t *str, const uint16_t *accept);
+extern uint32_t *
+ u32_strpbrk (const uint32_t *str, const uint32_t *accept);
+
+/* Find the first occurrence of NEEDLE in HAYSTACK. */
+/* Similar to strstr(), wcsstr(). */
+extern uint8_t *
+ u8_strstr (const uint8_t *haystack, const uint8_t *needle);
+extern uint16_t *
+ u16_strstr (const uint16_t *haystack, const uint16_t *needle);
+extern uint32_t *
+ u32_strstr (const uint32_t *haystack, const uint32_t *needle);
+
+/* Test whether STR starts with PREFIX. */
+extern bool
+ u8_startswith (const uint8_t *str, const uint8_t *prefix);
+extern bool
+ u16_startswith (const uint16_t *str, const uint16_t *prefix);
+extern bool
+ u32_startswith (const uint32_t *str, const uint32_t *prefix);
+
+/* Test whether STR ends with SUFFIX. */
+extern bool
+ u8_endswith (const uint8_t *str, const uint8_t *suffix);
+extern bool
+ u16_endswith (const uint16_t *str, const uint16_t *suffix);
+extern bool
+ u32_endswith (const uint32_t *str, const uint32_t *suffix);
+
+/* Divide STR into tokens separated by characters in DELIM.
+ This interface is actually more similar to wcstok than to strtok. */
+/* Similar to strtok_r(), wcstok(). */
+extern uint8_t *
+ u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr);
+extern uint16_t *
+ u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr);
+extern uint32_t *
+ u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNISTR_H */
diff --git a/linebreak/unistr/u16-mbtouc-aux.c b/linebreak/unistr/u16-mbtouc-aux.c
new file mode 100644
index 0000000..b0be9e5
--- /dev/null
+++ b/linebreak/unistr/u16-mbtouc-aux.c
@@ -0,0 +1,51 @@
+/* Conversion UTF-16 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_INLINE
+
+int
+u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xdc00)
+ {
+ if (n >= 2)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u16-mbtouc-unsafe-aux.c b/linebreak/unistr/u16-mbtouc-unsafe-aux.c
new file mode 100644
index 0000000..77f3cd4
--- /dev/null
+++ b/linebreak/unistr/u16-mbtouc-unsafe-aux.c
@@ -0,0 +1,55 @@
+/* Conversion UTF-16 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_INLINE
+
+int
+u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+#endif
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+#endif
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u16-mbtouc-unsafe.c b/linebreak/unistr/u16-mbtouc-unsafe.c
new file mode 100644
index 0000000..5edc573
--- /dev/null
+++ b/linebreak/unistr/u16-mbtouc-unsafe.c
@@ -0,0 +1,60 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+#if CONFIG_UNICODE_SAFETY
+ if (c < 0xdc00)
+#endif
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+#endif
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u16-mbtouc.c b/linebreak/unistr/u16-mbtouc.c
new file mode 100644
index 0000000..ccb6188
--- /dev/null
+++ b/linebreak/unistr/u16-mbtouc.c
@@ -0,0 +1,56 @@
+/* Look at first character in UTF-16 string.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n)
+{
+ uint16_t c = *s;
+
+ if (c < 0xd800 || c >= 0xe000)
+ {
+ *puc = c;
+ return 1;
+ }
+ if (c < 0xdc00)
+ {
+ if (n >= 2)
+ {
+ if (s[1] >= 0xdc00 && s[1] < 0xe000)
+ {
+ *puc = 0x10000 + ((c - 0xd800) << 10) + (s[1] - 0xdc00);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ }
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u8-mbtouc-aux.c b/linebreak/unistr/u8-mbtouc-aux.c
new file mode 100644
index 0000000..cbb5142
--- /dev/null
+++ b/linebreak/unistr/u8-mbtouc-aux.c
@@ -0,0 +1,158 @@
+/* Conversion UTF-8 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_INLINE
+
+int
+u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u8-mbtouc-unsafe-aux.c b/linebreak/unistr/u8-mbtouc-unsafe-aux.c
new file mode 100644
index 0000000..74aaab7
--- /dev/null
+++ b/linebreak/unistr/u8-mbtouc-unsafe-aux.c
@@ -0,0 +1,168 @@
+/* Conversion UTF-8 to UCS-4.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if HAVE_INLINE
+
+int
+u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u8-mbtouc-unsafe.c b/linebreak/unistr/u8-mbtouc-unsafe.c
new file mode 100644
index 0000000..734c2ca
--- /dev/null
+++ b/linebreak/unistr/u8-mbtouc-unsafe.c
@@ -0,0 +1,173 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40)
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+#if CONFIG_UNICODE_SAFETY
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+#endif
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u8-mbtouc.c b/linebreak/unistr/u8-mbtouc.c
new file mode 100644
index 0000000..a5473fc
--- /dev/null
+++ b/linebreak/unistr/u8-mbtouc.c
@@ -0,0 +1,163 @@
+/* Look at first character in UTF-8 string.
+ Copyright (C) 1999-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2001.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n)
+{
+ uint8_t c = *s;
+
+ if (c < 0x80)
+ {
+ *puc = c;
+ return 1;
+ }
+ else if (c >= 0xc2)
+ {
+ if (c < 0xe0)
+ {
+ if (n >= 2)
+ {
+ if ((s[1] ^ 0x80) < 0x40)
+ {
+ *puc = ((unsigned int) (c & 0x1f) << 6)
+ | (unsigned int) (s[1] ^ 0x80);
+ return 2;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf0)
+ {
+ if (n >= 3)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (c >= 0xe1 || s[1] >= 0xa0)
+ && (c != 0xed || s[1] < 0xa0))
+ {
+ *puc = ((unsigned int) (c & 0x0f) << 12)
+ | ((unsigned int) (s[1] ^ 0x80) << 6)
+ | (unsigned int) (s[2] ^ 0x80);
+ return 3;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xf8)
+ {
+ if (n >= 4)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40
+ && (c >= 0xf1 || s[1] >= 0x90)
+#if 1
+ && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90))
+#endif
+ )
+ {
+ *puc = ((unsigned int) (c & 0x07) << 18)
+ | ((unsigned int) (s[1] ^ 0x80) << 12)
+ | ((unsigned int) (s[2] ^ 0x80) << 6)
+ | (unsigned int) (s[3] ^ 0x80);
+ return 4;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#if 0
+ else if (c < 0xfc)
+ {
+ if (n >= 5)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (c >= 0xf9 || s[1] >= 0x88))
+ {
+ *puc = ((unsigned int) (c & 0x03) << 24)
+ | ((unsigned int) (s[1] ^ 0x80) << 18)
+ | ((unsigned int) (s[2] ^ 0x80) << 12)
+ | ((unsigned int) (s[3] ^ 0x80) << 6)
+ | (unsigned int) (s[4] ^ 0x80);
+ return 5;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+ else if (c < 0xfe)
+ {
+ if (n >= 6)
+ {
+ if ((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40
+ && (s[3] ^ 0x80) < 0x40 && (s[4] ^ 0x80) < 0x40
+ && (s[5] ^ 0x80) < 0x40
+ && (c >= 0xfd || s[1] >= 0x84))
+ {
+ *puc = ((unsigned int) (c & 0x01) << 30)
+ | ((unsigned int) (s[1] ^ 0x80) << 24)
+ | ((unsigned int) (s[2] ^ 0x80) << 18)
+ | ((unsigned int) (s[3] ^ 0x80) << 12)
+ | ((unsigned int) (s[4] ^ 0x80) << 6)
+ | (unsigned int) (s[5] ^ 0x80);
+ return 6;
+ }
+ /* invalid multibyte character */
+ }
+ else
+ {
+ /* incomplete multibyte character */
+ *puc = 0xfffd;
+ return n;
+ }
+ }
+#endif
+ }
+ /* invalid multibyte character */
+ *puc = 0xfffd;
+ return 1;
+}
+
+#endif
diff --git a/linebreak/unistr/u8-uctomb-aux.c b/linebreak/unistr/u8-uctomb-aux.c
new file mode 100644
index 0000000..e0e8dd9
--- /dev/null
+++ b/linebreak/unistr/u8-uctomb-aux.c
@@ -0,0 +1,69 @@
+/* Conversion UCS-4 to UTF-8.
+ Copyright (C) 2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2002.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+int
+u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n)
+{
+ int count;
+
+ if (uc < 0x80)
+ /* The case n >= 1 is already handled by the caller. */
+ return -2;
+ else if (uc < 0x800)
+ count = 2;
+ else if (uc < 0x10000)
+ {
+ if (uc < 0xd800 || uc >= 0xe000)
+ count = 3;
+ else
+ return -1;
+ }
+#if 0
+ else if (uc < 0x200000)
+ count = 4;
+ else if (uc < 0x4000000)
+ count = 5;
+ else if (uc <= 0x7fffffff)
+ count = 6;
+#else
+ else if (uc < 0x110000)
+ count = 4;
+#endif
+ else
+ return -1;
+
+ if (n < count)
+ return -2;
+
+ switch (count) /* note: code falls through cases! */
+ {
+#if 0
+ case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
+ case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
+#endif
+ case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
+ case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
+ case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
+ /*case 1:*/ s[0] = uc;
+ }
+ return count;
+}
diff --git a/linebreak/unistr/u8-uctomb.c b/linebreak/unistr/u8-uctomb.c
new file mode 100644
index 0000000..b2d1683
--- /dev/null
+++ b/linebreak/unistr/u8-uctomb.c
@@ -0,0 +1,83 @@
+/* Store a character in UTF-8 string.
+ Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2002.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "unistr.h"
+
+#if !HAVE_INLINE
+
+int
+u8_uctomb (uint8_t *s, ucs4_t uc, int n)
+{
+ if (uc < 0x80)
+ {
+ if (n > 0)
+ {
+ s[0] = uc;
+ return 1;
+ }
+ /* else return -2, below. */
+ }
+ else
+ {
+ int count;
+
+ if (uc < 0x800)
+ count = 2;
+ else if (uc < 0x10000)
+ {
+ if (uc < 0xd800 || uc >= 0xe000)
+ count = 3;
+ else
+ return -1;
+ }
+#if 0
+ else if (uc < 0x200000)
+ count = 4;
+ else if (uc < 0x4000000)
+ count = 5;
+ else if (uc <= 0x7fffffff)
+ count = 6;
+#else
+ else if (uc < 0x110000)
+ count = 4;
+#endif
+ else
+ return -1;
+
+ if (n >= count)
+ {
+ switch (count) /* note: code falls through cases! */
+ {
+#if 0
+ case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000;
+ case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000;
+#endif
+ case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000;
+ case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800;
+ case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0;
+ /*case 1:*/ s[0] = uc;
+ }
+ return count;
+ }
+ }
+ return -2;
+}
+
+#endif
diff --git a/linebreak/unitypes.h b/linebreak/unitypes.h
new file mode 100644
index 0000000..12e2628
--- /dev/null
+++ b/linebreak/unitypes.h
@@ -0,0 +1,26 @@
+/* Elementary types for the GNU UniString library.
+ Copyright (C) 2002, 2005-2006 Free Software Foundation, Inc.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNITYPES_H
+#define _UNITYPES_H
+
+/* Get uint8_t, uint16_t, uint32_t. */
+#include <stdint.h>
+
+/* Type representing a Unicode character. */
+typedef uint32_t ucs4_t;
+
+#endif /* _UNITYPES_H */
diff --git a/linebreak/uniwidth.h b/linebreak/uniwidth.h
new file mode 100644
index 0000000..5b4867f
--- /dev/null
+++ b/linebreak/uniwidth.h
@@ -0,0 +1,64 @@
+/* Display width functions.
+ Copyright (C) 2001-2002, 2005, 2007 Free Software Foundation, Inc.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _UNIWIDTH_H
+#define _UNIWIDTH_H
+
+#include "unitypes.h"
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get locale_charset() declaration. */
+#include "localcharset.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Display width. */
+
+/* These functions are locale dependent. The encoding argument identifies
+ the encoding (e.g. "ISO-8859-2" for Polish). */
+
+/* Determine number of column positions required for UC. */
+extern int
+ uc_width (ucs4_t uc, const char *encoding);
+
+/* Determine number of column positions required for first N units
+ (or fewer if S ends before this) in S. */
+extern int
+ u8_width (const uint8_t *s, size_t n, const char *encoding);
+extern int
+ u16_width (const uint16_t *s, size_t n, const char *encoding);
+extern int
+ u32_width (const uint32_t *s, size_t n, const char *encoding);
+
+/* Determine number of column positions required for S. */
+extern int
+ u8_strwidth (const uint8_t *s, const char *encoding);
+extern int
+ u16_strwidth (const uint16_t *s, const char *encoding);
+extern int
+ u32_strwidth (const uint32_t *s, const char *encoding);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNIWIDTH_H */
diff --git a/linebreak/uniwidth/cjk.h b/linebreak/uniwidth/cjk.h
new file mode 100644
index 0000000..c8ccb93
--- /dev/null
+++ b/linebreak/uniwidth/cjk.h
@@ -0,0 +1,37 @@
+/* Test for CJK encoding.
+ Copyright (C) 2001-2002, 2005-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2002.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "streq.h"
+
+static int
+is_cjk_encoding (const char *encoding)
+{
+ if (0
+ /* Legacy Japanese encodings */
+ || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+ /* Legacy Chinese encodings */
+ || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+ || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+ /* Legacy Korean encodings */
+ || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+ || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+ return 1;
+ return 0;
+}
diff --git a/linebreak/uniwidth/width.c b/linebreak/uniwidth/width.c
new file mode 100644
index 0000000..7d75bda
--- /dev/null
+++ b/linebreak/uniwidth/width.c
@@ -0,0 +1,323 @@
+/* Determine display width of Unicode character.
+ Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno at clisp.org>, 2002.
+
+ 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 3 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "uniwidth.h"
+
+#include "cjk.h"
+
+/*
+ * Non-spacing attribute table.
+ * Consists of:
+ * - Non-spacing characters; generated from PropList.txt or
+ * "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
+ * - Format control characters; generated from
+ * "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
+ * - Zero width characters; generated from
+ * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+ */
+static const unsigned char nonspacing_table_data[22*64] = {
+ /* 0x0000-0x01ff */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x08, 0x00, 0x00, /* 0x0080-0x00bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
+ /* 0x0200-0x03ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
+ /* 0x0400-0x05ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
+ 0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
+ 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
+ 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
+ /* 0x0600-0x07ff */
+ 0x0f, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+ 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
+ 0x00, 0x00, 0xc0, 0xff, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+ 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
+ 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
+ /* 0x0800-0x09ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0800-0x083f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0900-0x093f */
+ 0xfe, 0x21, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
+ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
+ /* 0x0a00-0x0bff */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
+ 0x86, 0x39, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0x0a40-0x0a7f */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
+ 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
+ 0x0e, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
+ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
+ /* 0x0c00-0x0dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
+ 0xc1, 0x3d, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+ 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
+ 0x0e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
+ 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
+ /* 0x0e00-0x0fff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
+ 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
+ 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
+ 0xdf, 0x00, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
+ /* 0x1000-0x11ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc5, 0x02, /* 0x1000-0x103f */
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x1040-0x107f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
+ /* 0x1200-0x13ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
+ /* 0x1600-0x17ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
+ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
+ 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
+ 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
+ /* 0x1800-0x19ff */
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
+ 0x00, 0x00, 0x00, 0x00, 0x87, 0x0f, 0x04, 0x0e, /* 0x1900-0x193f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
+ /* 0x1a00-0x1bff */
+ 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a40-0x1a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1b80-0x1bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc0-0x1bff */
+ /* 0x1c00-0x1dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c00-0x1c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cc0-0x1cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
+ 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x1dc0-0x1dff */
+ /* 0x2000-0x21ff */
+ 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
+ 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x20c0-0x20ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
+ /* 0x3000-0x31ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
+ /* 0xa800-0xa9ff */
+ 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8c0-0xa8ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa900-0xa93f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa980-0xa9bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+ /* 0xfa00-0xfbff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
+ /* 0xfe00-0xffff */
+ 0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
+ /* 0x10a00-0x10bff */
+ 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+ /* 0x1d000-0x1d1ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xf8, /* 0x1d140-0x1d17f */
+ 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
+ /* 0x1d200-0x1d3ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
+ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1d3c0-0x1d3ff */
+};
+static const signed char nonspacing_table_ind[240] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */
+ 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
+ 14, -1, -1, -1, -1, -1, -1, -1, /* 0x2000-0x2fff */
+ 15, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
+ -1, -1, -1, -1, 16, -1, -1, -1, /* 0xa000-0xafff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
+ -1, -1, -1, -1, -1, 17, -1, 18, /* 0xf000-0xffff */
+ -1, -1, -1, -1, -1, 19, -1, -1, /* 0x10000-0x10fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
+ 20, 21, -1, -1, -1, -1, -1, -1 /* 0x1d000-0x1dfff */
+};
+
+/* Determine number of column positions required for UC. */
+int
+uc_width (ucs4_t uc, const char *encoding)
+{
+ /* Test for non-spacing or control character. */
+ if ((uc >> 9) < 240)
+ {
+ int ind = nonspacing_table_ind[uc >> 9];
+ if (ind >= 0)
+ if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1)
+ {
+ if (uc > 0 && uc < 0xa0)
+ return -1;
+ else
+ return 0;
+ }
+ }
+ else if ((uc >> 9) == (0xe0000 >> 9))
+ {
+ if (uc >= 0xe0100)
+ {
+ if (uc <= 0xe01ef)
+ return 0;
+ }
+ else
+ {
+ if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001)
+ return 0;
+ }
+ }
+ /* Test for double-width character.
+ * Generated from "grep '^....;[WF]' EastAsianWidth.txt"
+ * and "grep '^....;[^WF]' EastAsianWidth.txt"
+ */
+ if (uc >= 0x1100
+ && ((uc < 0x1160) /* Hangul Jamo */
+ || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */
+ || (uc >= 0x2e80 && uc < 0xa4d0 /* CJK ... Yi */
+ && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00))
+ || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */
+ || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */
+ || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */
+ || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
+ || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
+ || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
+ || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */
+ || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */
+ ) )
+ return 2;
+ /* In ancient CJK encodings, Cyrillic and most other characters are
+ double-width as well. */
+ if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9
+ && is_cjk_encoding (encoding))
+ return 2;
+ return 1;
+}
diff --git a/linebreak/xsize.h b/linebreak/xsize.h
new file mode 100644
index 0000000..341fb16
--- /dev/null
+++ b/linebreak/xsize.h
@@ -0,0 +1,108 @@
+/* xsize.h -- Checked size_t computations.
+
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ 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, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _XSIZE_H
+#define _XSIZE_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get SIZE_MAX. */
+#include <limits.h>
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+/* The size of memory objects is often computed through expressions of
+ type size_t. Example:
+ void* p = malloc (header_size + n * element_size).
+ These computations can lead to overflow. When this happens, malloc()
+ returns a piece of memory that is way too small, and the program then
+ crashes while attempting to fill the memory.
+ To avoid this, the functions and macros in this file check for overflow.
+ The convention is that SIZE_MAX represents overflow.
+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
+ implementation that uses mmap --, it's recommended to use size_overflow_p()
+ or size_in_bounds_p() before invoking malloc().
+ The example thus becomes:
+ size_t size = xsum (header_size, xtimes (n, element_size));
+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
+*/
+
+/* Convert an arbitrary value >= 0 to type size_t. */
+#define xcast_size_t(N) \
+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
+
+/* Sum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum (size_t size1, size_t size2)
+{
+ size_t sum = size1 + size2;
+ return (sum >= size1 ? sum : SIZE_MAX);
+}
+
+/* Sum of three sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum3 (size_t size1, size_t size2, size_t size3)
+{
+ return xsum (xsum (size1, size2), size3);
+}
+
+/* Sum of four sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
+{
+ return xsum (xsum (xsum (size1, size2), size3), size4);
+}
+
+/* Maximum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xmax (size_t size1, size_t size2)
+{
+ /* No explicit check is needed here, because for any n:
+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
+ return (size1 >= size2 ? size1 : size2);
+}
+
+/* Multiplication of a count with an element size, with overflow check.
+ The count must be >= 0 and the element size must be > 0.
+ This is a macro, not an inline function, so that it works correctly even
+ when N is of a wider tupe and N > SIZE_MAX. */
+#define xtimes(N, ELSIZE) \
+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
+
+/* Check for overflow. */
+#define size_overflow_p(SIZE) \
+ ((SIZE) == SIZE_MAX)
+/* Check against overflow. */
+#define size_in_bounds_p(SIZE) \
+ ((SIZE) != SIZE_MAX)
+
+#endif /* _XSIZE_H */
diff --git a/m4/ChangeLog b/m4/ChangeLog
new file mode 100644
index 0000000..8caa501
--- /dev/null
+++ b/m4/ChangeLog
@@ -0,0 +1,33 @@
+2007-10-15 gettextize <bug-gnu-gettext at gnu.org>
+
+ * gettext.m4: New file, from gettext-0.16.1.
+ * iconv.m4: New file, from gettext-0.16.1.
+ * lib-ld.m4: New file, from gettext-0.16.1.
+ * lib-link.m4: New file, from gettext-0.16.1.
+ * lib-prefix.m4: New file, from gettext-0.16.1.
+ * nls.m4: New file, from gettext-0.16.1.
+ * po.m4: New file, from gettext-0.16.1.
+ * progtest.m4: New file, from gettext-0.16.1.
+ * codeset.m4: New file, from gettext-0.16.1.
+ * glibc2.m4: New file, from gettext-0.16.1.
+ * glibc21.m4: New file, from gettext-0.16.1.
+ * intdiv0.m4: New file, from gettext-0.16.1.
+ * intl.m4: New file, from gettext-0.16.1.
+ * intldir.m4: New file, from gettext-0.16.1.
+ * intmax.m4: New file, from gettext-0.16.1.
+ * inttypes_h.m4: New file, from gettext-0.16.1.
+ * inttypes-pri.m4: New file, from gettext-0.16.1.
+ * lcmessage.m4: New file, from gettext-0.16.1.
+ * lock.m4: New file, from gettext-0.16.1.
+ * longdouble.m4: New file, from gettext-0.16.1.
+ * longlong.m4: New file, from gettext-0.16.1.
+ * printf-posix.m4: New file, from gettext-0.16.1.
+ * size_max.m4: New file, from gettext-0.16.1.
+ * stdint_h.m4: New file, from gettext-0.16.1.
+ * uintmax_t.m4: New file, from gettext-0.16.1.
+ * ulonglong.m4: New file, from gettext-0.16.1.
+ * visibility.m4: New file, from gettext-0.16.1.
+ * wchar_t.m4: New file, from gettext-0.16.1.
+ * wint_t.m4: New file, from gettext-0.16.1.
+ * xsize.m4: New file, from gettext-0.16.1.
+
diff --git a/m4/codeset.m4 b/m4/codeset.m4
new file mode 100644
index 0000000..223955b
--- /dev/null
+++ b/m4/codeset.m4
@@ -0,0 +1,21 @@
+# codeset.m4 serial 2 (gettext-0.16)
+dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+ [AC_TRY_LINK([#include <langinfo.h>],
+ [char* cs = nl_langinfo(CODESET); return !cs;],
+ am_cv_langinfo_codeset=yes,
+ am_cv_langinfo_codeset=no)
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
new file mode 100644
index 0000000..c9ae1f7
--- /dev/null
+++ b/m4/gettext.m4
@@ -0,0 +1,381 @@
+# gettext.m4 serial 60 (gettext-0.17)
+dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible at clisp.cons.org>, 2000-2006.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl default (if it is not specified or empty) is 'no-libtool'.
+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define([gt_included_intl],
+ ifelse([$1], [external],
+ ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+ [yes]))
+ define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+ gt_NEEDS_INIT
+ AM_GNU_GETTEXT_NEED([$2])
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
+ dnl Set USE_NLS.
+ AC_REQUIRE([AM_NLS])
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl Add a version number to the cache macros.
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+ [AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+ [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ [eval "$gt_func_gnugettext_libc=yes"],
+ [eval "$gt_func_gnugettext_libc=no"])])
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ [$gt_func_gnugettext_libintl],
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+ [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+ [eval "$gt_func_gnugettext_libintl=yes"],
+ [eval "$gt_func_gnugettext_libintl=no"])
+ dnl Now see whether libintl exists and depends on libiconv.
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);],
+ [bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ CATOBJEXT=
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE(HAVE_DCGETTEXT, 1,
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATOBJEXT)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLOBJS=
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST(INTLOBJS)
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST(INTLLIBS)
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST(LIBINTL)
+ AC_SUBST(LTLIBINTL)
+ AC_SUBST(POSUB)
+])
+
+
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
+[
+ m4_divert_text([DEFAULTS], [gt_needs=])
+ m4_define([gt_NEEDS_INIT], [])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
+[
+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff --git a/m4/glibc2.m4 b/m4/glibc2.m4
new file mode 100644
index 0000000..e8f5bfe
--- /dev/null
+++ b/m4/glibc2.m4
@@ -0,0 +1,30 @@
+# glibc2.m4 serial 1
+dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Test for the GNU C Library, version 2.0 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([gt_GLIBC2],
+ [
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer,
+ ac_cv_gnu_library_2,
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ ac_cv_gnu_library_2=yes,
+ ac_cv_gnu_library_2=no)
+ ]
+ )
+ AC_SUBST(GLIBC2)
+ GLIBC2="$ac_cv_gnu_library_2"
+ ]
+)
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
new file mode 100644
index 0000000..d95fd98
--- /dev/null
+++ b/m4/glibc21.m4
@@ -0,0 +1,30 @@
+# glibc21.m4 serial 3
+dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([gl_GLIBC21],
+ [
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+ ac_cv_gnu_library_2_1,
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ ac_cv_gnu_library_2_1=yes,
+ ac_cv_gnu_library_2_1=no)
+ ]
+ )
+ AC_SUBST(GLIBC21)
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
diff --git a/m4/iconv.m4 b/m4/iconv.m4
new file mode 100644
index 0000000..66bc76f
--- /dev/null
+++ b/m4/iconv.m4
@@ -0,0 +1,180 @@
+# iconv.m4 serial AM6 (gettext-0.17)
+dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [
+ dnl This tests against bugs in AIX 5.1 and HP-UX 11.11.
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ AC_TRY_RUN([
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ char buf[10];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ return 1;
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ return 1;
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ return 1;
+ return 0;
+}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
+ [case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac])
+ LIBS="$am_save_LIBS"
+ ])
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1,
+ [Define if you have the iconv() function and it works.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST(LIBICONV)
+ AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+])
diff --git a/m4/intdiv0.m4 b/m4/intdiv0.m4
new file mode 100644
index 0000000..8c8a670
--- /dev/null
+++ b/m4/intdiv0.m4
@@ -0,0 +1,84 @@
+# intdiv0.m4 serial 2 (gettext-0.17)
+dnl Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gt_INTDIV0],
+[
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+ gt_cv_int_divbyzero_sigfpe,
+ [
+ gt_cv_int_divbyzero_sigfpe=
+changequote(,)dnl
+ case "$host_os" in
+ macos* | darwin[6-9]* | darwin[1-9][0-9]*)
+ # On MacOS X 10.2 or newer, just assume the same as when cross-
+ # compiling. If we were to perform the real test, 1 Crash Report
+ # dialog window would pop up.
+ case "$host_cpu" in
+ i[34567]86 | x86_64)
+ gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
+ esac
+ ;;
+ esac
+changequote([,])dnl
+ if test -z "$gt_cv_int_divbyzero_sigfpe"; then
+ AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+sigfpe_handler (int sig)
+{
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
+ exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+ signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+ signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL. */
+#if defined (__sparc__) && defined (__linux__)
+ signal (SIGILL, sigfpe_handler);
+#endif
+
+ z = x / y;
+ nan = y / y;
+ exit (1);
+}
+], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
+ [
+ # Guess based on the CPU.
+changequote(,)dnl
+ case "$host_cpu" in
+ alpha* | i[34567]86 | x86_64 | m68k | s390*)
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
+ *)
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ fi
+ ])
+ case "$gt_cv_int_divbyzero_sigfpe" in
+ *yes) value=1;;
+ *) value=0;;
+ esac
+ AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
+ [Define if integer division by zero raises signal SIGFPE.])
+])
diff --git a/m4/intl.m4 b/m4/intl.m4
new file mode 100644
index 0000000..934408b
--- /dev/null
+++ b/m4/intl.m4
@@ -0,0 +1,285 @@
+# intl.m4 serial 8 (gettext-0.17)
+dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible at clisp.cons.org>, 2000-2006.
+
+AC_PREREQ(2.52)
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([gt_GLIBC2])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([gl_VISIBILITY])dnl
+ AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([gl_GLIBC21])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+ AC_REQUIRE([gt_INTL_MACOSX])dnl
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
+ AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen])
+
+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_LANGINFO_CODESET
+ gt_LC_MESSAGES
+
+ dnl Compilation on mingw and Cygwin needs special Makefile rules, because
+ dnl 1. when we install a shared library, we must arrange to export
+ dnl auxiliary pointer variables for every exported variable,
+ dnl 2. when we install a shared library and a static library simultaneously,
+ dnl the include file specifies __declspec(dllimport) and therefore we
+ dnl must arrange to define the auxiliary pointer variables for the
+ dnl exported variables _also_ in the static library.
+ if test "$enable_shared" = yes; then
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32dll=yes ;;
+ *) is_woe32dll=no ;;
+ esac
+ else
+ is_woe32dll=no
+ fi
+ WOE32DLL=$is_woe32dll
+ AC_SUBST([WOE32DLL])
+
+ dnl On mingw and Cygwin, we can activate special Makefile rules which add
+ dnl version information to the shared libraries and executables.
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32=yes ;;
+ *) is_woe32=no ;;
+ esac
+ WOE32=$is_woe32
+ AC_SUBST([WOE32])
+ if test $WOE32 = yes; then
+ dnl Check for a program that compiles Windows resource files.
+ AC_CHECK_TOOL([WINDRES], [windres])
+ fi
+
+ dnl Determine whether when creating a library, "-lc" should be passed to
+ dnl libtool or not. On many platforms, it is required for the libtool option
+ dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
+ dnl in the *.la files - makes it impossible to create multithreaded programs,
+ dnl because libtool also reorders the -lc to come before the -pthread, and
+ dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
+ case "$host_os" in
+ hpux*) LTLIBC="" ;;
+ *) LTLIBC="-lc" ;;
+ esac
+ AC_SUBST([LTLIBC])
+
+ dnl Rename some macros and functions used for locking.
+ AH_BOTTOM([
+#define __libc_lock_t gl_lock_t
+#define __libc_lock_define gl_lock_define
+#define __libc_lock_define_initialized gl_lock_define_initialized
+#define __libc_lock_init gl_lock_init
+#define __libc_lock_lock gl_lock_lock
+#define __libc_lock_unlock gl_lock_unlock
+#define __libc_lock_recursive_t gl_recursive_lock_t
+#define __libc_lock_define_recursive gl_recursive_lock_define
+#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
+#define __libc_lock_init_recursive gl_recursive_lock_init
+#define __libc_lock_lock_recursive gl_recursive_lock_lock
+#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
+#define glthread_in_use libintl_thread_in_use
+#define glthread_lock_init libintl_lock_init
+#define glthread_lock_lock libintl_lock_lock
+#define glthread_lock_unlock libintl_lock_unlock
+#define glthread_lock_destroy libintl_lock_destroy
+#define glthread_rwlock_init libintl_rwlock_init
+#define glthread_rwlock_rdlock libintl_rwlock_rdlock
+#define glthread_rwlock_wrlock libintl_rwlock_wrlock
+#define glthread_rwlock_unlock libintl_rwlock_unlock
+#define glthread_rwlock_destroy libintl_rwlock_destroy
+#define glthread_recursive_lock_init libintl_recursive_lock_init
+#define glthread_recursive_lock_lock libintl_recursive_lock_lock
+#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock
+#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy
+#define glthread_once libintl_once
+#define glthread_once_call libintl_once_call
+#define glthread_once_singlethreaded libintl_once_singlethreaded
+])
+])
+
+
+dnl Checks for the core files of the intl subdirectory:
+dnl dcigettext.c
+dnl eval-plural.h
+dnl explodename.c
+dnl finddomain.c
+dnl gettextP.h
+dnl gmo.h
+dnl hash-string.h hash-string.c
+dnl l10nflist.c
+dnl libgnuintl.h.in (except the *printf stuff)
+dnl loadinfo.h
+dnl loadmsgcat.c
+dnl localealias.c
+dnl log.c
+dnl plural-exp.h plural-exp.c
+dnl plural.y
+dnl Used by libglocale.
+AC_DEFUN([gt_INTL_SUBDIR_CORE],
+[
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_LOCK])dnl
+
+ AC_TRY_LINK(
+ [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }],
+ [],
+ [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1,
+ [Define to 1 if the compiler understands __builtin_expect.])])
+
+ AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
+ stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \
+ argz_next __fsetlocking])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+ gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+
+ AM_ICONV
+
+ dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined,
+ dnl and a _NL_LOCALE_NAME macro always.
+ AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name,
+ [AC_TRY_LINK([#include <langinfo.h>
+#include <locale.h>],
+ [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));
+ return !cs;
+ ],
+ gt_cv_nl_locale_name=yes,
+ gt_cv_nl_locale_name=no)
+ ])
+ if test $gt_cv_nl_locale_name = yes; then
+ AC_DEFINE(HAVE_NL_LOCALE_NAME, 1,
+ [Define if you have <langinfo.h> and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.])
+ fi
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+ [AC_TRY_COMPILE([$2], [
+#ifndef $1
+ char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+ if test $ac_cv_have_decl_$1 = yes; then
+ gt_value=1
+ else
+ gt_value=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+ [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
diff --git a/m4/intldir.m4 b/m4/intldir.m4
new file mode 100644
index 0000000..7a28843
--- /dev/null
+++ b/m4/intldir.m4
@@ -0,0 +1,19 @@
+# intldir.m4 serial 1 (gettext-0.16)
+dnl Copyright (C) 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+AC_PREREQ(2.52)
+
+dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory.
+AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], [])
diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4
new file mode 100644
index 0000000..d3f0d90
--- /dev/null
+++ b/m4/intlmacosx.m4
@@ -0,0 +1,51 @@
+# intlmacosx.m4 serial 1 (gettext-0.17)
+dnl Copyright (C) 2004-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+ dnl Check for API introduced in MacOS X 10.2.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ gt_cv_func_CFPreferencesCopyAppValue,
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+ [CFPreferencesCopyAppValue(NULL, NULL)],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+ [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+ fi
+ dnl Check for API introduced in MacOS X 10.3.
+ AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+ [gt_cv_func_CFLocaleCopyCurrent=yes],
+ [gt_cv_func_CFLocaleCopyCurrent=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+ [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
diff --git a/m4/intmax.m4 b/m4/intmax.m4
new file mode 100644
index 0000000..ce7a8a4
--- /dev/null
+++ b/m4/intmax.m4
@@ -0,0 +1,33 @@
+# intmax.m4 serial 3 (gettext-0.16)
+dnl Copyright (C) 2002-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
+dnl find a replacement if it is lacking.
+
+AC_DEFUN([gt_TYPE_INTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
+ [AC_TRY_COMPILE([
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+], [intmax_t x = -1;
+ return !x;],
+ gt_cv_c_intmax_t=yes,
+ gt_cv_c_intmax_t=no)])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE(HAVE_INTMAX_T, 1,
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4
new file mode 100644
index 0000000..7c7f894
--- /dev/null
+++ b/m4/inttypes-pri.m4
@@ -0,0 +1,36 @@
+# inttypes-pri.m4 serial 4 (gettext-0.16)
+dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.52)
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values. This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+ AC_CHECK_HEADERS([inttypes.h])
+ if test $ac_cv_header_inttypes_h = yes; then
+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+ gt_cv_inttypes_pri_broken,
+ [
+ AC_TRY_COMPILE([#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
+ ])
+ fi
+ if test "$gt_cv_inttypes_pri_broken" = yes; then
+ AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+ AC_SUBST([PRI_MACROS_BROKEN])
+])
diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4
new file mode 100644
index 0000000..edc8ecb
--- /dev/null
+++ b/m4/inttypes_h.m4
@@ -0,0 +1,26 @@
+# inttypes_h.m4 serial 7
+dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
+[
+ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
+ [AC_TRY_COMPILE(
+ [#include <sys/types.h>
+#include <inttypes.h>],
+ [uintmax_t i = (uintmax_t) -1; return !i;],
+ gl_cv_header_inttypes_h=yes,
+ gl_cv_header_inttypes_h=no)])
+ if test $gl_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff --git a/m4/lcmessage.m4 b/m4/lcmessage.m4
new file mode 100644
index 0000000..19aa77e
--- /dev/null
+++ b/m4/lcmessage.m4
@@ -0,0 +1,30 @@
+# lcmessage.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+
+AC_DEFUN([gt_LC_MESSAGES],
+[
+ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES,
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)])
+ if test $gt_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE(HAVE_LC_MESSAGES, 1,
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
new file mode 100644
index 0000000..96c4e2c
--- /dev/null
+++ b/m4/lib-ld.m4
@@ -0,0 +1,110 @@
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break ;;
+ *)
+ test "$with_gnu_ld" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
new file mode 100644
index 0000000..e3d26fc
--- /dev/null
+++ b/m4/lib-link.m4
@@ -0,0 +1,709 @@
+# lib-link.m4 serial 13 (gettext-0.17)
+dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_PREREQ(2.54)
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIB[]NAME"
+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl acl_libext,
+dnl acl_shlibext,
+dnl acl_hardcode_libdir_flag_spec,
+dnl acl_hardcode_libdir_separator,
+dnl acl_hardcode_direct,
+dnl acl_hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE(rpath,
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ dnl Autoconf >= 2.61 supports dots in --with options.
+ define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
+[ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
+ --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ LTLIB[]NAME=
+ INC[]NAME=
+ LIB[]NAME[]_PREFIX=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ dnl The same code as in the loop below:
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$acl_hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ LIB[]NAME[]_PREFIX="$basedir"
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
+
+dnl For those cases where a variable contains several -L and -l options
+dnl referring to unknown libraries and directories, this macro determines the
+dnl necessary additional linker options for the runtime path.
+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+dnl otherwise linking without libtool is assumed.
+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+[
+ AC_REQUIRE([AC_LIB_RPATH])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ $1=
+ if test "$enable_rpath" != no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode directories into the resulting
+ dnl binary.
+ rpathdirs=
+ next=
+ for opt in $2; do
+ if test -n "$next"; then
+ dir="$next"
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next=
+ else
+ case $opt in
+ -L) next=yes ;;
+ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next= ;;
+ *) next= ;;
+ esac
+ fi
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n ""$3""; then
+ dnl libtool is used for linking. Use -R options.
+ for dir in $rpathdirs; do
+ $1="${$1}${$1:+ }-R$dir"
+ done
+ else
+ dnl The linker is used for linking directly.
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user
+ dnl must pass all path elements in one option.
+ alldirs=
+ for dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="${$1}${$1:+ }$flag"
+ done
+ fi
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST([$1])
+])
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
new file mode 100644
index 0000000..a8684e1
--- /dev/null
+++ b/m4/lib-prefix.m4
@@ -0,0 +1,185 @@
+# lib-prefix.m4 serial 5 (gettext-0.15)
+dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
+dnl the basename of the libdir, either "lib" or "lib64".
+AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
+[
+ dnl There is no formal standard regarding lib and lib64. The current
+ dnl practice is that on a system supporting 32-bit and 64-bit instruction
+ dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
+ dnl libraries go under $prefix/lib. We determine the compiler's default
+ dnl mode by looking at the compiler's library search path. If at least
+ dnl of its elements ends in /lib64 or points to a directory whose absolute
+ dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
+ dnl default, namely "lib".
+ acl_libdirstem=lib
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ if test -d "$searchdir"; then
+ case "$searchdir" in
+ */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+ *) searchdir=`cd "$searchdir" && pwd`
+ case "$searchdir" in
+ */lib64 ) acl_libdirstem=lib64 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+])
diff --git a/m4/lock.m4 b/m4/lock.m4
new file mode 100644
index 0000000..9111933
--- /dev/null
+++ b/m4/lock.m4
@@ -0,0 +1,316 @@
+# lock.m4 serial 7 (gettext-0.17)
+dnl Copyright (C) 2005-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests for a multithreading library to be used.
+dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
+dnl USE_PTH_THREADS, USE_WIN32_THREADS
+dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
+dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
+dnl libtool).
+dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
+dnl programs that really need multithread functionality. The difference
+dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
+dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread".
+dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
+dnl multithread-safe programs.
+
+AC_DEFUN([gl_LOCK_EARLY],
+[
+ AC_REQUIRE([gl_LOCK_EARLY_BODY])
+])
+
+dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once.
+
+AC_DEFUN([gl_LOCK_EARLY_BODY],
+[
+ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
+ dnl influences the result of the autoconf tests that test for *_unlocked
+ dnl declarations, on AIX 5 at least. Therefore it must come early.
+ AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
+ AC_BEFORE([$0], [gl_ARGP])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+ dnl Check for multithreading.
+ AC_ARG_ENABLE(threads,
+AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API])
+AC_HELP_STRING([--disable-threads], [build without multithread safety]),
+ [gl_use_threads=$enableval],
+ [case "$host_os" in
+ dnl Disable multithreading by default on OSF/1, because it interferes
+ dnl with fork()/exec(): When msgexec is linked with -lpthread, its child
+ dnl process gets an endless segmentation fault inside execvp().
+ osf*) gl_use_threads=no ;;
+ *) gl_use_threads=yes ;;
+ esac
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # For using <pthread.h>:
+ case "$host_os" in
+ osf*)
+ # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
+ # groks <pthread.h>. cc also understands the flag -pthread, but
+ # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
+ # 2. putting a flag into CPPFLAGS that has an effect on the linker
+ # causes the AC_TRY_LINK test below to succeed unexpectedly,
+ # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ ;;
+ esac
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ case "$host_os" in
+ aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
+ solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
+ esac
+ fi
+])
+
+dnl The guts of gl_LOCK. Needs to be expanded only once.
+
+AC_DEFUN([gl_LOCK_BODY],
+[
+ AC_REQUIRE([gl_LOCK_EARLY_BODY])
+ gl_threads_api=none
+ LIBTHREAD=
+ LTLIBTHREAD=
+ LIBMULTITHREAD=
+ LTLIBMULTITHREAD=
+ if test "$gl_use_threads" != no; then
+ dnl Check whether the compiler and linker support weak declarations.
+ AC_MSG_CHECKING([whether imported symbols can be declared weak])
+ gl_have_weak=no
+ AC_TRY_LINK([extern void xyzzy ();
+#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes])
+ AC_MSG_RESULT([$gl_have_weak])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
+ # it groks <pthread.h>. It's added above, in gl_LOCK_EARLY_BODY.
+ AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no)
+ if test "$gl_have_pthread_h" = yes; then
+ # Other possible tests:
+ # -lpthreads (FSU threads, PCthreads)
+ # -lgthreads
+ gl_have_pthread=
+ # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
+ # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
+ # the second one only in libpthread, and lock.c needs it.
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_mutex_lock((pthread_mutex_t*)0);
+ pthread_mutexattr_init((pthread_mutexattr_t*)0);],
+ [gl_have_pthread=yes])
+ # Test for libpthread by looking for pthread_kill. (Not pthread_self,
+ # since it is defined as a macro on OSF/1.)
+ if test -n "$gl_have_pthread"; then
+ # The program links fine without libpthread. But it may actually
+ # need to link with libpthread in order to create multiple threads.
+ AC_CHECK_LIB(pthread, pthread_kill,
+ [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
+ # On Solaris and HP-UX, most pthread functions exist also in libc.
+ # Therefore pthread_in_use() needs to actually try to create a
+ # thread: pthread_create from libc will fail, whereas
+ # pthread_create will actually create a thread.
+ case "$host_os" in
+ solaris* | hpux*)
+ AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1,
+ [Define if the pthread_in_use() detection is hard.])
+ esac
+ ])
+ else
+ # Some library is needed. Try libpthread and libc_r.
+ AC_CHECK_LIB(pthread, pthread_kill,
+ [gl_have_pthread=yes
+ LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
+ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
+ if test -z "$gl_have_pthread"; then
+ # For FreeBSD 4.
+ AC_CHECK_LIB(c_r, pthread_kill,
+ [gl_have_pthread=yes
+ LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
+ LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
+ fi
+ fi
+ if test -n "$gl_have_pthread"; then
+ gl_threads_api=posix
+ AC_DEFINE([USE_POSIX_THREADS], 1,
+ [Define if the POSIX multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if test $gl_have_weak = yes; then
+ AC_DEFINE([USE_POSIX_THREADS_WEAK], 1,
+ [Define if references to the POSIX multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
+ # pthread_rwlock_* functions.
+ AC_CHECK_TYPE([pthread_rwlock_t],
+ [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1,
+ [Define if the POSIX multithreading library has read/write locks.])],
+ [],
+ [#include <pthread.h>])
+ # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
+ AC_TRY_COMPILE([#include <pthread.h>],
+ [#if __FreeBSD__ == 4
+error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#else
+int x = (int)PTHREAD_MUTEX_RECURSIVE;
+return !x;
+#endif],
+ [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1,
+ [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
+ fi
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
+ gl_have_solaristhread=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS -lthread"
+ AC_TRY_LINK([#include <thread.h>
+#include <synch.h>],
+ [thr_self();],
+ [gl_have_solaristhread=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_solaristhread"; then
+ gl_threads_api=solaris
+ LIBTHREAD=-lthread
+ LTLIBTHREAD=-lthread
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_SOLARIS_THREADS], 1,
+ [Define if the old Solaris multithreading library can be used.])
+ if test $gl_have_weak = yes; then
+ AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1,
+ [Define if references to the old Solaris multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ if test "$gl_use_threads" = pth; then
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_LINKFLAGS(pth)
+ gl_have_pth=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS -lpth"
+ AC_TRY_LINK([#include <pth.h>], [pth_self();], gl_have_pth=yes)
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_pth"; then
+ gl_threads_api=pth
+ LIBTHREAD="$LIBPTH"
+ LTLIBTHREAD="$LTLIBPTH"
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_PTH_THREADS], 1,
+ [Define if the GNU Pth multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if test $gl_have_weak = yes; then
+ AC_DEFINE([USE_PTH_THREADS_WEAK], 1,
+ [Define if references to the GNU Pth multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ else
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then
+ if { case "$host_os" in
+ mingw*) true;;
+ *) false;;
+ esac
+ }; then
+ gl_threads_api=win32
+ AC_DEFINE([USE_WIN32_THREADS], 1,
+ [Define if the Win32 multithreading API can be used.])
+ fi
+ fi
+ fi
+ fi
+ AC_MSG_CHECKING([for multithread API to use])
+ AC_MSG_RESULT([$gl_threads_api])
+ AC_SUBST(LIBTHREAD)
+ AC_SUBST(LTLIBTHREAD)
+ AC_SUBST(LIBMULTITHREAD)
+ AC_SUBST(LTLIBMULTITHREAD)
+])
+
+AC_DEFUN([gl_LOCK],
+[
+ AC_REQUIRE([gl_LOCK_EARLY])
+ AC_REQUIRE([gl_LOCK_BODY])
+ gl_PREREQ_LOCK
+])
+
+# Prerequisites of lib/lock.c.
+AC_DEFUN([gl_PREREQ_LOCK], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+
+dnl Survey of platforms:
+dnl
+dnl Platform Available Compiler Supports test-lock
+dnl flavours option weak result
+dnl --------------- --------- --------- -------- ---------
+dnl Linux 2.4/glibc posix -lpthread Y OK
+dnl
+dnl GNU Hurd/glibc posix
+dnl
+dnl FreeBSD 5.3 posix -lc_r Y
+dnl posix -lkse ? Y
+dnl posix -lpthread ? Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 5.2 posix -lc_r Y
+dnl posix -lkse Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 4.0,4.10 posix -lc_r Y OK
+dnl
+dnl NetBSD 1.6 --
+dnl
+dnl OpenBSD 3.4 posix -lpthread Y OK
+dnl
+dnl MacOS X 10.[123] posix -lpthread Y OK
+dnl
+dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl
+dnl HP-UX 11 posix -lpthread N (cc) OK
+dnl Y (gcc)
+dnl
+dnl IRIX 6.5 posix -lpthread Y 0.5
+dnl
+dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK
+dnl
+dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK
+dnl -lpthread (gcc) Y
+dnl
+dnl Cygwin posix -lpthread Y OK
+dnl
+dnl Any of the above pth -lpth 0.0
+dnl
+dnl Mingw win32 N OK
+dnl
+dnl BeOS 5 --
+dnl
+dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
+dnl turned off:
+dnl OK if all three tests terminate OK,
+dnl 0.5 if the first test terminates OK but the second one loops endlessly,
+dnl 0.0 if the first test already loops endlessly.
diff --git a/m4/longdouble.m4 b/m4/longdouble.m4
new file mode 100644
index 0000000..25590f4
--- /dev/null
+++ b/m4/longdouble.m4
@@ -0,0 +1,31 @@
+# longdouble.m4 serial 2 (gettext-0.15)
+dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether the compiler supports the 'long double' type.
+dnl Prerequisite: AC_PROG_CC
+
+dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf
+dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics.
+
+AC_DEFUN([gt_TYPE_LONGDOUBLE],
+[
+ AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
+ [if test "$GCC" = yes; then
+ gt_cv_c_long_double=yes
+ else
+ AC_TRY_COMPILE([
+ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
+ long double foo = 0.0;
+ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+ int array [2*(sizeof(long double) >= sizeof(double)) - 1];
+ ], ,
+ gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
+ fi])
+ if test $gt_cv_c_long_double = yes; then
+ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
+ fi
+])
diff --git a/m4/longlong.m4 b/m4/longlong.m4
new file mode 100644
index 0000000..a72e53b
--- /dev/null
+++ b/m4/longlong.m4
@@ -0,0 +1,109 @@
+# longlong.m4 serial 13
+dnl Copyright (C) 1999-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+ [AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ dnl If cross compiling, assume the bug isn't important, since
+ dnl nobody cross compiles for this platform as far as we know.
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[@%:@include <limits.h>
+ @%:@ifndef LLONG_MAX
+ @%:@ define HALF \
+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ @%:@ define LLONG_MAX (HALF - 1 + HALF)
+ @%:@endif]],
+ [[long long int n = 1;
+ int i;
+ for (i = 0; ; i++)
+ {
+ long long int m = n << i;
+ if (m >> i != n)
+ return 1;
+ if (LLONG_MAX / 2 < m)
+ break;
+ }
+ return 0;]])],
+ [ac_cv_type_long_long_int=yes],
+ [ac_cv_type_long_long_int=no],
+ [ac_cv_type_long_long_int=yes])],
+ [ac_cv_type_long_long_int=no])])
+ if test $ac_cv_type_long_long_int = yes; then
+ AC_DEFINE([HAVE_LONG_LONG_INT], 1,
+ [Define to 1 if the system has the type `long long int'.])
+ fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [ac_cv_type_unsigned_long_long_int=yes],
+ [ac_cv_type_unsigned_long_long_int=no])])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
+ [Define to 1 if the system has the type `unsigned long long int'.])
+ fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+ AC_LANG_PROGRAM(
+ [[/* Test preprocessor. */
+ #if ! (-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ error in preprocessor;
+ #endif
+ #if ! (18446744073709551615ULL <= -1ull)
+ error in preprocessor;
+ #endif
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;]],
+ [[/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));]])
+])
diff --git a/m4/nls.m4 b/m4/nls.m4
new file mode 100644
index 0000000..7967cc2
--- /dev/null
+++ b/m4/nls.m4
@@ -0,0 +1,31 @@
+# nls.m4 serial 3 (gettext-0.15)
+dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible at clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+])
diff --git a/m4/po.m4 b/m4/po.m4
new file mode 100644
index 0000000..0734762
--- /dev/null
+++ b/m4/po.m4
@@ -0,0 +1,449 @@
+# po.m4 serial 15 (gettext-0.17)
+dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible at clisp.cons.org>, 2000-2003.
+
+AC_PREREQ(2.50)
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Release version of the gettext macros. This is used to ensure that
+ dnl the gettext macros and po/Makefile.in.in are in sync.
+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([MSGFMT_015])
+changequote(,)dnl
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([GMSGFMT_015])
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([XGETTEXT_015])
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+ dnl Installation directories.
+ dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+ dnl have to define it here, so that it can be used in po/Makefile.
+ test -n "$localedir" || localedir='${datadir}/locale'
+ AC_SUBST([localedir])
+
+ dnl Support for AM_XGETTEXT_OPTION.
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+
+ AC_CONFIG_COMMANDS([po-directories], [[
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done]],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[ ]*VARIABLE[ ]*=/{
+ # Seen the first line of the variable definition.
+ s/^[ ]*VARIABLE[ ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+ @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+ \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+ \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+ XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff --git a/m4/printf-posix.m4 b/m4/printf-posix.m4
new file mode 100644
index 0000000..14ba612
--- /dev/null
+++ b/m4/printf-posix.m4
@@ -0,0 +1,44 @@
+# printf-posix.m4 serial 3 (gettext-0.17)
+dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether the printf() function supports POSIX/XSI format strings with
+dnl positions.
+
+AC_DEFUN([gt_PRINTF_POSIX],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
+ gt_cv_func_printf_posix,
+ [
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
+ [
+ AC_EGREP_CPP(notposix, [
+#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
+ notposix
+#endif
+ ], gt_cv_func_printf_posix="guessing no",
+ gt_cv_func_printf_posix="guessing yes")
+ ])
+ ])
+ case $gt_cv_func_printf_posix in
+ *yes)
+ AC_DEFINE(HAVE_POSIX_PRINTF, 1,
+ [Define if your printf() function supports format strings with positions.])
+ ;;
+ esac
+])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
new file mode 100644
index 0000000..a56365c
--- /dev/null
+++ b/m4/progtest.m4
@@ -0,0 +1,92 @@
+# progtest.m4 serial 4 (gettext-0.14.2)
+dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper at cygnus.com>, 1996.
+
+AC_PREREQ(2.50)
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff --git a/m4/size_max.m4 b/m4/size_max.m4
new file mode 100644
index 0000000..6cb4868
--- /dev/null
+++ b/m4/size_max.m4
@@ -0,0 +1,68 @@
+# size_max.m4 serial 6
+dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_SIZE_MAX],
+[
+ AC_CHECK_HEADERS(stdint.h)
+ dnl First test whether the system already has SIZE_MAX.
+ AC_MSG_CHECKING([for SIZE_MAX])
+ AC_CACHE_VAL([gl_cv_size_max], [
+ gl_cv_size_max=
+ AC_EGREP_CPP([Found it], [
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+], gl_cv_size_max=yes)
+ if test -z "$gl_cv_size_max"; then
+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
+ dnl than the type 'unsigned long'. Try hard to find a definition that can
+ dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
+ AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
+ [#include <stddef.h>
+#include <limits.h>], size_t_bits_minus_1=)
+ AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
+ [#include <stddef.h>], fits_in_uint=)
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
+ AC_TRY_COMPILE([#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+ ], [], fits_in_uint=0)
+ fi
+ dnl We cannot use 'expr' to simplify this expression, because 'expr'
+ dnl works only with 'long' integers in the host environment, while we
+ dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ dnl Shouldn't happen, but who knows...
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+ ])
+ AC_MSG_RESULT([$gl_cv_size_max])
+ if test "$gl_cv_size_max" != yes; then
+ AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max],
+ [Define as the maximum value of type 'size_t', if the system doesn't define it.])
+ fi
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4
new file mode 100644
index 0000000..db9a8ac
--- /dev/null
+++ b/m4/stdint_h.m4
@@ -0,0 +1,26 @@
+# stdint_h.m4 serial 6
+dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_STDINT_H],
+[
+ AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h,
+ [AC_TRY_COMPILE(
+ [#include <sys/types.h>
+#include <stdint.h>],
+ [uintmax_t i = (uintmax_t) -1; return !i;],
+ gl_cv_header_stdint_h=yes,
+ gl_cv_header_stdint_h=no)])
+ if test $gl_cv_header_stdint_h = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff --git a/m4/uintmax_t.m4 b/m4/uintmax_t.m4
new file mode 100644
index 0000000..641c489
--- /dev/null
+++ b/m4/uintmax_t.m4
@@ -0,0 +1,30 @@
+# uintmax_t.m4 serial 10
+dnl Copyright (C) 1997-2004, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+AC_PREREQ(2.13)
+
+# Define uintmax_t to 'unsigned long' or 'unsigned long long'
+# if it is not already defined in <stdint.h> or <inttypes.h>.
+
+AC_DEFUN([gl_AC_TYPE_UINTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long' \
+ || ac_type='unsigned long'
+ AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
+ [Define to unsigned long or unsigned long long
+ if <stdint.h> and <inttypes.h> don't define.])
+ else
+ AC_DEFINE(HAVE_UINTMAX_T, 1,
+ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
diff --git a/m4/ulonglong.m4 b/m4/ulonglong.m4
new file mode 100644
index 0000000..9fae98e
--- /dev/null
+++ b/m4/ulonglong.m4
@@ -0,0 +1,48 @@
+# ulonglong.m4 serial 6
+dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.60, but can be removed once we
+# assume 2.61 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[unsigned long long int ull = 18446744073709551615ULL;
+ typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;]],
+ [[unsigned long long int ullmax = 18446744073709551615ull;
+ return (ull << 63 | ull >> 63 | ull << i | ull >> i
+ | ullmax / ull | ullmax % ull);]])],
+ [ac_cv_type_unsigned_long_long_int=yes],
+ [ac_cv_type_unsigned_long_long_int=no])])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
+ [Define to 1 if the system has the type `unsigned long long int'.])
+ fi
+])
+
+# This macro is obsolescent and should go away soon.
+AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG],
+[
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_unsigned_long_long = yes; then
+ AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
+ [Define if you have the 'unsigned long long' type.])
+ fi
+])
diff --git a/m4/visibility.m4 b/m4/visibility.m4
new file mode 100644
index 0000000..2ff6330
--- /dev/null
+++ b/m4/visibility.m4
@@ -0,0 +1,52 @@
+# visibility.m4 serial 1 (gettext-0.15)
+dnl Copyright (C) 2005 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+
+dnl Tests whether the compiler supports the command-line option
+dnl -fvisibility=hidden and the function and variable attributes
+dnl __attribute__((__visibility__("hidden"))) and
+dnl __attribute__((__visibility__("default"))).
+dnl Does *not* test for __visibility__("protected") - which has tricky
+dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
+dnl MacOS X.
+dnl Does *not* test for __visibility__("internal") - which has processor
+dnl dependent semantics.
+dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
+dnl "really only recommended for legacy code".
+dnl Set the variable CFLAG_VISIBILITY.
+dnl Defines and sets the variable HAVE_VISIBILITY.
+
+AC_DEFUN([gl_VISIBILITY],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ CFLAG_VISIBILITY=
+ HAVE_VISIBILITY=0
+ if test -n "$GCC"; then
+ AC_MSG_CHECKING([for simple visibility declarations])
+ AC_CACHE_VAL(gl_cv_cc_visibility, [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ AC_TRY_COMPILE(
+ [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+ extern __attribute__((__visibility__("default"))) int exportedvar;
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
+ [],
+ gl_cv_cc_visibility=yes,
+ gl_cv_cc_visibility=no)
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
+ if test $gl_cv_cc_visibility = yes; then
+ CFLAG_VISIBILITY="-fvisibility=hidden"
+ HAVE_VISIBILITY=1
+ fi
+ fi
+ AC_SUBST([CFLAG_VISIBILITY])
+ AC_SUBST([HAVE_VISIBILITY])
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
new file mode 100644
index 0000000..cde2129
--- /dev/null
+++ b/m4/wchar_t.m4
@@ -0,0 +1,20 @@
+# wchar_t.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <stddef.h> has the 'wchar_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WCHAR_T],
+[
+ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
+ [AC_TRY_COMPILE([#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';], ,
+ gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
+ if test $gt_cv_c_wchar_t = yes; then
+ AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
+ fi
+])
diff --git a/m4/wint_t.m4 b/m4/wint_t.m4
new file mode 100644
index 0000000..af5ed93
--- /dev/null
+++ b/m4/wint_t.m4
@@ -0,0 +1,28 @@
+# wint_t.m4 serial 2 (gettext-0.17)
+dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
+ [AC_TRY_COMPILE([
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+ before <wchar.h>. */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+ wint_t foo = (wchar_t)'\0';], ,
+ gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
+ if test $gt_cv_c_wint_t = yes; then
+ AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
+ fi
+])
diff --git a/m4/xsize.m4 b/m4/xsize.m4
new file mode 100644
index 0000000..85bb721
--- /dev/null
+++ b/m4/xsize.m4
@@ -0,0 +1,13 @@
+# xsize.m4 serial 3
+dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_XSIZE],
+[
+ dnl Prerequisites of lib/xsize.h.
+ AC_REQUIRE([gl_SIZE_MAX])
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CHECK_HEADERS(stdint.h)
+])
diff --git a/mac_cplibs.sh b/mac_cplibs.sh
new file mode 100755
index 0000000..8811c09
--- /dev/null
+++ b/mac_cplibs.sh
@@ -0,0 +1,24 @@
+#! /bin/sh
+
+# A function that takes as input a binary name and a lib target directory
+# cpswlibs <binaryname> <directory to copy dependencies to>
+function cpswlibs {
+# Get the list of dependencies in /sw, excluding self
+fls=$(otool -L $1 | grep "/sw" | cut -f 2 | cut -d "(" -f 1 | grep -v $1)
+echo $fls
+# Copy these dependencies into the target directory
+cp $fls $2
+}
+
+# Run cpswlibs on the input binary name
+BINNAME=$1
+LIBDIRNAME=$2
+cpswlibs $BINNAME $LIBDIRNAME
+# Now run cpswlibs on each of the libraries that we copied
+echo $LIBDIRNAME
+fls=$(ls $LIBDIRNAME)
+for i in $fls; do
+ echo $i
+ cpswlibs $LIBDIRNAME/$i $LIBDIRNAME
+done
+# For tuxmath we don't need any more recursions that this
\ No newline at end of file
diff --git a/macosx/CMakeLists.txt b/macosx/CMakeLists.txt
new file mode 100644
index 0000000..66869f0
--- /dev/null
+++ b/macosx/CMakeLists.txt
@@ -0,0 +1,28 @@
+## Platform-specific installation material
+if (APPLE)
+ # Copy any needed libraries to the installation target
+ macro (copyFramework headerDir destDir)
+ string(REPLACE "/Headers" "" FRAMEWORK_SOURCE_DIR ${headerDir})
+ install(DIRECTORY ${FRAMEWORK_SOURCE_DIR} DESTINATION ${destDir})
+ endmacro(copyFramework)
+ set(FRAMEWORK_DEST_DIR ${TuxMath_BINARY_DIR}/src/${TUXMATH_MACOSX_BUNDLE_NAME}.app/Contents/Frameworks)
+ copyFramework(${SDL_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLMIXER_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLIMAGE_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+ copyFramework(${SDLTTF_INCLUDE_DIR} ${FRAMEWORK_DEST_DIR})
+
+ # Internationalization library
+ if (TUXMATH_BUILD_INTL)
+ install(FILES ${CMAKE_BINARY_DIR}/intl/libintl.a DESTINATION ${FRAMEWORK_DEST_DIR})
+ endif (TUXMATH_BUILD_INTL)
+
+ # Make the disk image
+ install(CODE "file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/macdist)")
+ install(CODE "execute_process(COMMAND mv ${CMAKE_BINARY_DIR}/src/tuxmath.app ${CMAKE_BINARY_DIR}/macdist/)")
+ install(CODE "execute_process(COMMAND mv ${CMAKE_BINARY_DIR}/src/tuxmathadmin ${CMAKE_BINARY_DIR}/macdist/)")
+ #install(CODE "execute_process(COMMAND hdiutil create -ov -srcfolder ${CMAKE_BINARY_DIR}/src/tuxmath.app -volname TuxMath -imagekey zlib-level=6 ${CMAKE_BINARY_DIR}/TuxMath.dmg)")
+ #install(CODE "execute_process(COMMAND hdiutil create -ov -srcfolder ${CMAKE_BINARY_DIR}/src/tuxmathadmin.app -volname TuxMathAdmin -imagekey zlib-level=6 ${CMAKE_BINARY_DIR}/TuxMathAdmin.dmg)")
+ install(CODE "execute_process(COMMAND hdiutil create -ov -srcfolder ${CMAKE_BINARY_DIR}/macdist -volname TuxMath -imagekey zlib-level=6 ${CMAKE_BINARY_DIR}/TuxMath.dmg)")
+
+endif (APPLE)
+
diff --git a/macosx/English.lproj/InfoPlist.strings b/macosx/English.lproj/InfoPlist.strings
new file mode 100755
index 0000000..0c88305
Binary files /dev/null and b/macosx/English.lproj/InfoPlist.strings differ
diff --git a/macosx/Info.plist b/macosx/Info.plist
new file mode 100644
index 0000000..2d45d1e
--- /dev/null
+++ b/macosx/Info.plist
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string>tuxmath.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.tux4kids.TuxMath</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0.1</string>
+ <key>NSMainNibFile</key>
+ <string>SDLMain</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
diff --git a/macosx/Makefile b/macosx/Makefile
new file mode 100644
index 0000000..1f17603
--- /dev/null
+++ b/macosx/Makefile
@@ -0,0 +1,10 @@
+MACRELEASEDIR = build/Release
+MACBUNDLE = $(MACRELEASEDIR)/TuxMath.app
+FRAMEWORKDIR = $(MACBUNDLE)/Contents/Frameworks/
+
+clean:
+ cd build && rm -r *
+
+macapp:
+ xcodebuild && echo "Creating dmg in $(MACRELEASEDIR)" && hdiutil create -ov -srcfolder $(MACBUNDLE) -volname TuxMath -imagekey zlib-level=6 $(MACRELEASEDIR)/TuxMath.dmg
+
diff --git a/macosx/SDLMain.h b/macosx/SDLMain.h
new file mode 100644
index 0000000..4683df5
--- /dev/null
+++ b/macosx/SDLMain.h
@@ -0,0 +1,11 @@
+/* SDLMain.m - main entry point for our Cocoa-ized SDL app
+ Initial Version: Darrell Walisser <dwaliss1 at purdue.edu>
+ Non-NIB-Code & other changes: Max Horn <max at quendi.de>
+
+ Feel free to customize this file to suit your needs
+*/
+
+#import <Cocoa/Cocoa.h>
+
+ at interface SDLMain : NSObject
+ at end
diff --git a/macosx/SDLMain.m b/macosx/SDLMain.m
new file mode 100644
index 0000000..2eaa1c1
--- /dev/null
+++ b/macosx/SDLMain.m
@@ -0,0 +1,384 @@
+/* SDLMain.m - main entry point for our Cocoa-ized SDL app
+ Initial Version: Darrell Walisser <dwaliss1 at purdue.edu>
+ Non-NIB-Code & other changes: Max Horn <max at quendi.de>
+
+ Feel free to customize this file to suit your needs
+*/
+
+#import "SDL.h"
+#import "SDLMain.h"
+#import <sys/param.h> /* for MAXPATHLEN */
+#import <unistd.h>
+
+/* For some reaon, Apple removed setAppleMenu from the headers in 10.4,
+ but the method still is there and works. To avoid warnings, we declare
+ it ourselves here. */
+ at interface NSApplication(SDL_Missing_Methods)
+- (void)setAppleMenu:(NSMenu *)menu;
+ at end
+
+/* Use this flag to determine whether we use SDLMain.nib or not */
+#define SDL_USE_NIB_FILE 0
+
+/* Use this flag to determine whether we use CPS (docking) or not */
+#define SDL_USE_CPS 1
+#ifdef SDL_USE_CPS
+/* Portions of CPS.h */
+typedef struct CPSProcessSerNum
+{
+ UInt32 lo;
+ UInt32 hi;
+} CPSProcessSerNum;
+
+extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn);
+extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5);
+extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn);
+
+#endif /* SDL_USE_CPS */
+
+static int gArgc;
+static char **gArgv;
+static BOOL gFinderLaunch;
+static BOOL gCalledAppMainline = FALSE;
+
+static NSString *getApplicationName(void)
+{
+ NSDictionary *dict;
+ NSString *appName = 0;
+
+ /* Determine the application name */
+ dict = (NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle());
+ if (dict)
+ appName = [dict objectForKey: @"CFBundleName"];
+
+ if (![appName length])
+ appName = [[NSProcessInfo processInfo] processName];
+
+ return appName;
+}
+
+#if SDL_USE_NIB_FILE
+/* A helper category for NSString */
+ at interface NSString (ReplaceSubString)
+- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString;
+ at end
+#endif
+
+ at interface SDLApplication : NSApplication
+ at end
+
+ at implementation SDLApplication
+/* Invoked from the Quit menu item */
+- (void)terminate:(id)sender
+{
+ /* Post a SDL_QUIT event */
+ SDL_Event event;
+ event.type = SDL_QUIT;
+ SDL_PushEvent(&event);
+}
+ at end
+
+/* The main class of the application, the application's delegate */
+ at implementation SDLMain
+
+/* Set the working directory to the .app's parent directory */
+- (void) setupWorkingDirectory:(BOOL)shouldChdir
+{
+ if (shouldChdir)
+ {
+ char parentdir[MAXPATHLEN];
+ CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle());
+ CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url);
+ if (CFURLGetFileSystemRepresentation(url2, true, (UInt8 *)parentdir, MAXPATHLEN)) {
+ assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */
+ }
+ CFRelease(url);
+ CFRelease(url2);
+ }
+
+}
+
+#if SDL_USE_NIB_FILE
+
+/* Fix menu to contain the real app name instead of "SDL App" */
+- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName
+{
+ NSRange aRange;
+ NSEnumerator *enumerator;
+ NSMenuItem *menuItem;
+
+ aRange = [[aMenu title] rangeOfString:@"SDL App"];
+ if (aRange.length != 0)
+ [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]];
+
+ enumerator = [[aMenu itemArray] objectEnumerator];
+ while ((menuItem = [enumerator nextObject]))
+ {
+ aRange = [[menuItem title] rangeOfString:@"SDL App"];
+ if (aRange.length != 0)
+ [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]];
+ if ([menuItem hasSubmenu])
+ [self fixMenu:[menuItem submenu] withAppName:appName];
+ }
+ [ aMenu sizeToFit ];
+}
+
+#else
+
+static void setApplicationMenu(void)
+{
+ /* warning: this code is very odd */
+ NSMenu *appleMenu;
+ NSMenuItem *menuItem;
+ NSString *title;
+ NSString *appName;
+
+ appName = getApplicationName();
+ appleMenu = [[NSMenu alloc] initWithTitle:@""];
+
+ /* Add menu items */
+ title = [@"About " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
+
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ title = [@"Hide " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"];
+
+ menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
+ [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
+
+ [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
+
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ title = [@"Quit " stringByAppendingString:appName];
+ [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"];
+
+
+ /* Put menu into the menubar */
+ menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
+ [menuItem setSubmenu:appleMenu];
+ [[NSApp mainMenu] addItem:menuItem];
+
+ /* Tell the application object that this is now the application menu */
+ [NSApp setAppleMenu:appleMenu];
+
+ /* Finally give up our references to the objects */
+ [appleMenu release];
+ [menuItem release];
+}
+
+/* Create a window menu */
+static void setupWindowMenu(void)
+{
+ NSMenu *windowMenu;
+ NSMenuItem *windowMenuItem;
+ NSMenuItem *menuItem;
+
+ windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
+
+ /* "Minimize" item */
+ menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
+ [windowMenu addItem:menuItem];
+ [menuItem release];
+
+ /* Put menu into the menubar */
+ windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""];
+ [windowMenuItem setSubmenu:windowMenu];
+ [[NSApp mainMenu] addItem:windowMenuItem];
+
+ /* Tell the application object that this is now the window menu */
+ [NSApp setWindowsMenu:windowMenu];
+
+ /* Finally give up our references to the objects */
+ [windowMenu release];
+ [windowMenuItem release];
+}
+
+/* Replacement for NSApplicationMain */
+static void CustomApplicationMain (int argc, char **argv)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ SDLMain *sdlMain;
+
+ /* Ensure the application object is initialised */
+ [SDLApplication sharedApplication];
+
+#ifdef SDL_USE_CPS
+ {
+ CPSProcessSerNum PSN;
+ /* Tell the dock about us */
+ if (!CPSGetCurrentProcess(&PSN))
+ if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103))
+ if (!CPSSetFrontProcess(&PSN))
+ [SDLApplication sharedApplication];
+ }
+#endif /* SDL_USE_CPS */
+
+ /* Set up the menubar */
+ [NSApp setMainMenu:[[NSMenu alloc] init]];
+ setApplicationMenu();
+ setupWindowMenu();
+
+ /* Create SDLMain and make it the app delegate */
+ sdlMain = [[SDLMain alloc] init];
+ [NSApp setDelegate:sdlMain];
+
+ /* Start the main event loop */
+ [NSApp run];
+
+ [sdlMain release];
+ [pool release];
+}
+
+#endif
+
+
+/*
+ * Catch document open requests...this lets us notice files when the app
+ * was launched by double-clicking a document, or when a document was
+ * dragged/dropped on the app's icon. You need to have a
+ * CFBundleDocumentsType section in your Info.plist to get this message,
+ * apparently.
+ *
+ * Files are added to gArgv, so to the app, they'll look like command line
+ * arguments. Previously, apps launched from the finder had nothing but
+ * an argv[0].
+ *
+ * This message may be received multiple times to open several docs on launch.
+ *
+ * This message is ignored once the app's mainline has been called.
+ */
+- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
+{
+ const char *temparg;
+ size_t arglen;
+ char *arg;
+ char **newargv;
+
+ if (!gFinderLaunch) /* MacOS is passing command line args. */
+ return FALSE;
+
+ if (gCalledAppMainline) /* app has started, ignore this document. */
+ return FALSE;
+
+ temparg = [filename UTF8String];
+ arglen = SDL_strlen(temparg) + 1;
+ arg = (char *) SDL_malloc(arglen);
+ if (arg == NULL)
+ return FALSE;
+
+ newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2));
+ if (newargv == NULL)
+ {
+ SDL_free(arg);
+ return FALSE;
+ }
+ gArgv = newargv;
+
+ SDL_strlcpy(arg, temparg, arglen);
+ gArgv[gArgc++] = arg;
+ gArgv[gArgc] = NULL;
+ return TRUE;
+}
+
+
+/* Called when the internal event loop has just started running */
+- (void) applicationDidFinishLaunching: (NSNotification *) note
+{
+ int status;
+
+ /* Set the working directory to the .app's parent directory */
+ [self setupWorkingDirectory:gFinderLaunch];
+
+#if SDL_USE_NIB_FILE
+ /* Set the main menu to contain the real app name instead of "SDL App" */
+ [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()];
+#endif
+
+ /* Hand off to main application code */
+ gCalledAppMainline = TRUE;
+ status = SDL_main (gArgc, gArgv);
+
+ /* We're done, thank you for playing */
+ exit(status);
+}
+ at end
+
+
+ at implementation NSString (ReplaceSubString)
+
+- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString
+{
+ unsigned int bufferSize;
+ unsigned int selfLen = [self length];
+ unsigned int aStringLen = [aString length];
+ unichar *buffer;
+ NSRange localRange;
+ NSString *result;
+
+ bufferSize = selfLen + aStringLen - aRange.length;
+ buffer = NSAllocateMemoryPages(bufferSize*sizeof(unichar));
+
+ /* Get first part into buffer */
+ localRange.location = 0;
+ localRange.length = aRange.location;
+ [self getCharacters:buffer range:localRange];
+
+ /* Get middle part into buffer */
+ localRange.location = 0;
+ localRange.length = aStringLen;
+ [aString getCharacters:(buffer+aRange.location) range:localRange];
+
+ /* Get last part into buffer */
+ localRange.location = aRange.location + aRange.length;
+ localRange.length = selfLen - localRange.location;
+ [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange];
+
+ /* Build output string */
+ result = [NSString stringWithCharacters:buffer length:bufferSize];
+
+ NSDeallocateMemoryPages(buffer, bufferSize);
+
+ return result;
+}
+
+ at end
+
+
+
+#ifdef main
+# undef main
+#endif
+
+
+/* Main entry point to executable - should *not* be SDL_main! */
+int main (int argc, char **argv)
+{
+ /* Copy the arguments into a global variable */
+ /* This is passed if we are launched by double-clicking */
+ if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {
+ gArgv = (char **) SDL_malloc(sizeof (char *) * 2);
+ gArgv[0] = argv[0];
+ gArgv[1] = NULL;
+ gArgc = 1;
+ gFinderLaunch = YES;
+ } else {
+ int i;
+ gArgc = argc;
+ gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1));
+ for (i = 0; i <= argc; i++)
+ gArgv[i] = argv[i];
+ gFinderLaunch = NO;
+ }
+
+#if SDL_USE_NIB_FILE
+ [SDLApplication poseAsClass:[NSApplication class]];
+ NSApplicationMain (argc, argv);
+#else
+ CustomApplicationMain (argc, argv);
+#endif
+ return 0;
+}
+
diff --git a/macosx/TuxMath.xcodeproj/project.pbxproj b/macosx/TuxMath.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..b8df54e
--- /dev/null
+++ b/macosx/TuxMath.xcodeproj/project.pbxproj
@@ -0,0 +1,487 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; };
+ 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; };
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+ A210C4890B927DFC004EB748 /* playsound.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE418F0B32C88100C66A5D /* playsound.c */; };
+ A210C4930B927EEB004EB748 /* alphabet.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C48F0B927EEA004EB748 /* alphabet.c */; };
+ A210C4940B927EEB004EB748 /* audio.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C4900B927EEA004EB748 /* audio.c */; };
+ A210C4960B927EEB004EB748 /* loaders.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C4920B927EEB004EB748 /* loaders.c */; };
+ A210C49B0B927F0F004EB748 /* pause.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C4970B927F0F004EB748 /* pause.c */; };
+ A210C49C0B927F0F004EB748 /* theme.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C4980B927F0F004EB748 /* theme.c */; };
+ A210C49D0B927F0F004EB748 /* titlescreen.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C4990B927F0F004EB748 /* titlescreen.c */; };
+ A210C49E0B927F0F004EB748 /* titlescreen.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A210C49A0B927F0F004EB748 /* titlescreen.h */; };
+ A210C7BE0BA6DF4A004EB748 /* libintl.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A210C7BD0BA6DF4A004EB748 /* libintl.h */; };
+ A210C7FE0BA817D6004EB748 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 002F3A2C09D0888800EBEB88 /* SDLMain.m */; };
+ A210C8620BA8323F004EB748 /* highscore.c in Sources */ = {isa = PBXBuildFile; fileRef = A210C8610BA8323F004EB748 /* highscore.c */; };
+ A210C8640BA8325A004EB748 /* highscore.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A210C8630BA8325A004EB748 /* highscore.h */; };
+ A2AE41770B32C7EE00C66A5D /* data in Resources */ = {isa = PBXBuildFile; fileRef = A2AE40E70B32C7EE00C66A5D /* data */; };
+ A2AE41790B32C81600C66A5D /* tuxmath.icns in Resources */ = {isa = PBXBuildFile; fileRef = A2AE41780B32C81600C66A5D /* tuxmath.icns */; };
+ A2AE417E0B32C84A00C66A5D /* SDL_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2AE417B0B32C84A00C66A5D /* SDL_mixer.framework */; };
+ A2AE417F0B32C84A00C66A5D /* SDL_ttf.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2AE417C0B32C84A00C66A5D /* SDL_ttf.framework */; };
+ A2AE41980B32C88100C66A5D /* credits.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE41800B32C88100C66A5D /* credits.c */; };
+ A2AE41990B32C88100C66A5D /* credits.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41810B32C88100C66A5D /* credits.h */; };
+ A2AE419A0B32C88100C66A5D /* fileops.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE41820B32C88100C66A5D /* fileops.c */; };
+ A2AE419B0B32C88100C66A5D /* fileops.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41830B32C88100C66A5D /* fileops.h */; };
+ A2AE419C0B32C88100C66A5D /* game.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE41840B32C88100C66A5D /* game.c */; };
+ A2AE419D0B32C88100C66A5D /* game.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41850B32C88100C66A5D /* game.h */; };
+ A2AE41A20B32C88100C66A5D /* mathcards.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE418A0B32C88100C66A5D /* mathcards.c */; };
+ A2AE41A30B32C88100C66A5D /* mathcards.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE418B0B32C88100C66A5D /* mathcards.h */; };
+ A2AE41A50B32C88100C66A5D /* options.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE418D0B32C88100C66A5D /* options.c */; };
+ A2AE41A60B32C88100C66A5D /* options.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE418E0B32C88100C66A5D /* options.h */; };
+ A2AE41A80B32C88100C66A5D /* playsound.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41900B32C88100C66A5D /* playsound.h */; };
+ A2AE41A90B32C88100C66A5D /* setup.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE41910B32C88100C66A5D /* setup.c */; };
+ A2AE41AA0B32C88100C66A5D /* setup.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41920B32C88100C66A5D /* setup.h */; };
+ A2AE41AE0B32C88100C66A5D /* tuxmath.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AE41960B32C88100C66A5D /* tuxmath.c */; };
+ A2AE41AF0B32C88100C66A5D /* tuxmath.h in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE41970B32C88100C66A5D /* tuxmath.h */; };
+ A2AE45060B342D9100C66A5D /* SDL_image.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2AE45050B342D9100C66A5D /* SDL_image.framework */; };
+ A2AE45090B344DF500C66A5D /* SDL_image.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE45050B342D9100C66A5D /* SDL_image.framework */; };
+ A2AE450A0B344DFC00C66A5D /* SDL_mixer.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE417B0B32C84A00C66A5D /* SDL_mixer.framework */; };
+ A2AE450B0B344E0200C66A5D /* SDL_ttf.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = A2AE417C0B32C84A00C66A5D /* SDL_ttf.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ A2AE450B0B344E0200C66A5D /* SDL_ttf.framework in Copy Frameworks into .app bundle */,
+ A2AE450A0B344DFC00C66A5D /* SDL_mixer.framework in Copy Frameworks into .app bundle */,
+ A2AE45090B344DF500C66A5D /* SDL_image.framework in Copy Frameworks into .app bundle */,
+ 002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */,
+ A2AE41990B32C88100C66A5D /* credits.h in Copy Frameworks into .app bundle */,
+ A2AE419B0B32C88100C66A5D /* fileops.h in Copy Frameworks into .app bundle */,
+ A2AE419D0B32C88100C66A5D /* game.h in Copy Frameworks into .app bundle */,
+ A2AE41A30B32C88100C66A5D /* mathcards.h in Copy Frameworks into .app bundle */,
+ A2AE41A60B32C88100C66A5D /* options.h in Copy Frameworks into .app bundle */,
+ A2AE41A80B32C88100C66A5D /* playsound.h in Copy Frameworks into .app bundle */,
+ A2AE41AA0B32C88100C66A5D /* setup.h in Copy Frameworks into .app bundle */,
+ A2AE41AF0B32C88100C66A5D /* tuxmath.h in Copy Frameworks into .app bundle */,
+ A210C49E0B927F0F004EB748 /* titlescreen.h in Copy Frameworks into .app bundle */,
+ A210C7BE0BA6DF4A004EB748 /* libintl.h in Copy Frameworks into .app bundle */,
+ A210C8640BA8325A004EB748 /* highscore.h in Copy Frameworks into .app bundle */,
+ );
+ name = "Copy Frameworks into .app bundle";
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 002F39F909D0881F00EBEB88 /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = /Library/Frameworks/SDL.framework; sourceTree = "<absolute>"; };
+ 002F3A2B09D0888800EBEB88 /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SDLMain.h; sourceTree = SOURCE_ROOT; };
+ 002F3A2C09D0888800EBEB88 /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SDLMain.m; sourceTree = SOURCE_ROOT; };
+ 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 32CA4F630368D1EE00C91783 /* TuxMath_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TuxMath_Prefix.pch; sourceTree = "<group>"; };
+ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+ 8D1107320486CEB800E47090 /* TuxMath.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TuxMath.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ A210C48F0B927EEA004EB748 /* alphabet.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = alphabet.c; path = ../src/alphabet.c; sourceTree = SOURCE_ROOT; };
+ A210C4900B927EEA004EB748 /* audio.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = audio.c; path = ../src/audio.c; sourceTree = SOURCE_ROOT; };
+ A210C4920B927EEB004EB748 /* loaders.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = loaders.c; path = ../src/loaders.c; sourceTree = SOURCE_ROOT; };
+ A210C4970B927F0F004EB748 /* pause.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = pause.c; path = ../src/pause.c; sourceTree = SOURCE_ROOT; };
+ A210C4980B927F0F004EB748 /* theme.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = theme.c; path = ../src/theme.c; sourceTree = SOURCE_ROOT; };
+ A210C4990B927F0F004EB748 /* titlescreen.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = titlescreen.c; path = ../src/titlescreen.c; sourceTree = SOURCE_ROOT; };
+ A210C49A0B927F0F004EB748 /* titlescreen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = titlescreen.h; path = ../src/titlescreen.h; sourceTree = SOURCE_ROOT; };
+ A210C7BD0BA6DF4A004EB748 /* libintl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = libintl.h; path = /sw/include/libintl.h; sourceTree = "<absolute>"; };
+ A210C8610BA8323F004EB748 /* highscore.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = highscore.c; path = ../src/highscore.c; sourceTree = SOURCE_ROOT; };
+ A210C8630BA8325A004EB748 /* highscore.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = highscore.h; path = ../src/highscore.h; sourceTree = SOURCE_ROOT; };
+ A2AE40E70B32C7EE00C66A5D /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = ../data; sourceTree = SOURCE_ROOT; };
+ A2AE41780B32C81600C66A5D /* tuxmath.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = tuxmath.icns; path = ../data/images/tuxmath.icns; sourceTree = SOURCE_ROOT; };
+ A2AE417B0B32C84A00C66A5D /* SDL_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_mixer.framework; path = /Library/Frameworks/SDL_mixer.framework; sourceTree = "<absolute>"; };
+ A2AE417C0B32C84A00C66A5D /* SDL_ttf.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_ttf.framework; path = /Library/Frameworks/SDL_ttf.framework; sourceTree = "<absolute>"; };
+ A2AE41800B32C88100C66A5D /* credits.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = credits.c; path = ../src/credits.c; sourceTree = SOURCE_ROOT; };
+ A2AE41810B32C88100C66A5D /* credits.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = credits.h; path = ../src/credits.h; sourceTree = SOURCE_ROOT; };
+ A2AE41820B32C88100C66A5D /* fileops.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fileops.c; path = ../src/fileops.c; sourceTree = SOURCE_ROOT; };
+ A2AE41830B32C88100C66A5D /* fileops.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = fileops.h; path = ../src/fileops.h; sourceTree = SOURCE_ROOT; };
+ A2AE41840B32C88100C66A5D /* game.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = game.c; path = ../src/game.c; sourceTree = SOURCE_ROOT; };
+ A2AE41850B32C88100C66A5D /* game.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = game.h; path = ../src/game.h; sourceTree = SOURCE_ROOT; };
+ A2AE418A0B32C88100C66A5D /* mathcards.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = mathcards.c; path = ../src/mathcards.c; sourceTree = SOURCE_ROOT; };
+ A2AE418B0B32C88100C66A5D /* mathcards.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = mathcards.h; path = ../src/mathcards.h; sourceTree = SOURCE_ROOT; };
+ A2AE418D0B32C88100C66A5D /* options.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = options.c; path = ../src/options.c; sourceTree = SOURCE_ROOT; };
+ A2AE418E0B32C88100C66A5D /* options.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = options.h; path = ../src/options.h; sourceTree = SOURCE_ROOT; };
+ A2AE418F0B32C88100C66A5D /* playsound.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = playsound.c; path = ../src/playsound.c; sourceTree = SOURCE_ROOT; };
+ A2AE41900B32C88100C66A5D /* playsound.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = playsound.h; path = ../src/playsound.h; sourceTree = SOURCE_ROOT; };
+ A2AE41910B32C88100C66A5D /* setup.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = setup.c; path = ../src/setup.c; sourceTree = SOURCE_ROOT; };
+ A2AE41920B32C88100C66A5D /* setup.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = setup.h; path = ../src/setup.h; sourceTree = SOURCE_ROOT; };
+ A2AE41960B32C88100C66A5D /* tuxmath.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = tuxmath.c; path = ../src/tuxmath.c; sourceTree = SOURCE_ROOT; };
+ A2AE41970B32C88100C66A5D /* tuxmath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = tuxmath.h; path = ../src/tuxmath.h; sourceTree = SOURCE_ROOT; };
+ A2AE45050B342D9100C66A5D /* SDL_image.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL_image.framework; path = /Library/Frameworks/SDL_image.framework; sourceTree = "<absolute>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D11072E0486CEB800E47090 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 002F39FA09D0881F00EBEB88 /* SDL.framework in Frameworks */,
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
+ A2AE417E0B32C84A00C66A5D /* SDL_mixer.framework in Frameworks */,
+ A2AE417F0B32C84A00C66A5D /* SDL_ttf.framework in Frameworks */,
+ A2AE45060B342D9100C66A5D /* SDL_image.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 002F3A2B09D0888800EBEB88 /* SDLMain.h */,
+ 002F3A2C09D0888800EBEB88 /* SDLMain.m */,
+ );
+ name = Classes;
+ sourceTree = "<group>";
+ };
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ A2AE45050B342D9100C66A5D /* SDL_image.framework */,
+ A2AE417B0B32C84A00C66A5D /* SDL_mixer.framework */,
+ A2AE417C0B32C84A00C66A5D /* SDL_ttf.framework */,
+ 002F39F909D0881F00EBEB88 /* SDL.framework */,
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
+ );
+ name = "Linked Frameworks";
+ sourceTree = "<group>";
+ };
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
+ );
+ name = "Other Frameworks";
+ sourceTree = "<group>";
+ };
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107320486CEB800E47090 /* TuxMath.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* TuxMath */ = {
+ isa = PBXGroup;
+ children = (
+ A210C8630BA8325A004EB748 /* highscore.h */,
+ A210C8610BA8323F004EB748 /* highscore.c */,
+ 080E96DDFE201D6D7F000001 /* Classes */,
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 29B97317FDCFA39411CA2CEA /* Resources */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ );
+ name = TuxMath;
+ sourceTree = "<group>";
+ };
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ A210C7BD0BA6DF4A004EB748 /* libintl.h */,
+ A210C4970B927F0F004EB748 /* pause.c */,
+ A210C4980B927F0F004EB748 /* theme.c */,
+ A210C4990B927F0F004EB748 /* titlescreen.c */,
+ A210C49A0B927F0F004EB748 /* titlescreen.h */,
+ A210C48F0B927EEA004EB748 /* alphabet.c */,
+ A210C4900B927EEA004EB748 /* audio.c */,
+ A210C4920B927EEB004EB748 /* loaders.c */,
+ A2AE41800B32C88100C66A5D /* credits.c */,
+ A2AE41810B32C88100C66A5D /* credits.h */,
+ A2AE41820B32C88100C66A5D /* fileops.c */,
+ A2AE41830B32C88100C66A5D /* fileops.h */,
+ A2AE41840B32C88100C66A5D /* game.c */,
+ A2AE41850B32C88100C66A5D /* game.h */,
+ A2AE418A0B32C88100C66A5D /* mathcards.c */,
+ A2AE418B0B32C88100C66A5D /* mathcards.h */,
+ A2AE418D0B32C88100C66A5D /* options.c */,
+ A2AE418E0B32C88100C66A5D /* options.h */,
+ A2AE418F0B32C88100C66A5D /* playsound.c */,
+ A2AE41900B32C88100C66A5D /* playsound.h */,
+ A2AE41910B32C88100C66A5D /* setup.c */,
+ A2AE41920B32C88100C66A5D /* setup.h */,
+ A2AE41960B32C88100C66A5D /* tuxmath.c */,
+ A2AE41970B32C88100C66A5D /* tuxmath.h */,
+ 32CA4F630368D1EE00C91783 /* TuxMath_Prefix.pch */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ A2AE41780B32C81600C66A5D /* tuxmath.icns */,
+ A2AE40E70B32C7EE00C66A5D /* data */,
+ 8D1107310486CEB800E47090 /* Info.plist */,
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D1107260486CEB800E47090 /* TuxMath */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "TuxMath" */;
+ buildPhases = (
+ 8D1107290486CEB800E47090 /* Resources */,
+ 8D11072C0486CEB800E47090 /* Sources */,
+ 8D11072E0486CEB800E47090 /* Frameworks */,
+ 002F39FD09D0883400EBEB88 /* Copy Frameworks into .app bundle */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = TuxMath;
+ productInstallPath = "$(HOME)/Applications";
+ productName = TuxMath;
+ productReference = 8D1107320486CEB800E47090 /* TuxMath.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TuxMath" */;
+ hasScannedForEncodings = 1;
+ mainGroup = 29B97314FDCFA39411CA2CEA /* TuxMath */;
+ projectDirPath = "";
+ targets = (
+ 8D1107260486CEB800E47090 /* TuxMath */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D1107290486CEB800E47090 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
+ A2AE41770B32C7EE00C66A5D /* data in Resources */,
+ A2AE41790B32C81600C66A5D /* tuxmath.icns in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D11072C0486CEB800E47090 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A2AE41980B32C88100C66A5D /* credits.c in Sources */,
+ A2AE419A0B32C88100C66A5D /* fileops.c in Sources */,
+ A2AE419C0B32C88100C66A5D /* game.c in Sources */,
+ A2AE41A20B32C88100C66A5D /* mathcards.c in Sources */,
+ A2AE41A50B32C88100C66A5D /* options.c in Sources */,
+ A2AE41A90B32C88100C66A5D /* setup.c in Sources */,
+ A2AE41AE0B32C88100C66A5D /* tuxmath.c in Sources */,
+ A210C4890B927DFC004EB748 /* playsound.c in Sources */,
+ A210C4930B927EEB004EB748 /* alphabet.c in Sources */,
+ A210C4940B927EEB004EB748 /* audio.c in Sources */,
+ A210C4960B927EEB004EB748 /* loaders.c in Sources */,
+ A210C49B0B927F0F004EB748 /* pause.c in Sources */,
+ A210C49C0B927F0F004EB748 /* theme.c in Sources */,
+ A210C49D0B927F0F004EB748 /* titlescreen.c in Sources */,
+ A210C7FE0BA817D6004EB748 /* SDLMain.m in Sources */,
+ A210C8620BA8323F004EB748 /* highscore.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 089C165DFE840E0CC02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ C01FCF4B08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ /sw/lib,
+ );
+ PRODUCT_NAME = TuxMath;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = YES;
+ };
+ name = Debug;
+ };
+ C01FCF4C08A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)\"";
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G5;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ /sw/lib,
+ );
+ PRODUCT_NAME = TuxMath;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ CURRENT_PROJECT_VERSION = 1.0.1;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(HOME)/Library/Frameworks",
+ /Library/Frameworks,
+ "$(FRAMEWORK_SEARCH_PATHS)",
+ );
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "MACOSX=1",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_3)",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_4)",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_5)",
+ "$(inherited)",
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1 = "DATA_PREFIX=\\\"TuxMath.app/Contents/Resources/data\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_2 = "VERSION=\\\"1.0.1\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_3 = "DATA_PREFIX=\\\"TuxMath.app/Contents/Resources/data\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_4 = "VERSION=\\\"1.5\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_5 = "LOCALEDIR=\\\"TuxMath.app/Contents/Resources/data/locale\\\"";
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(HOME)/Library/Frameworks/SDL.framework/Headers",
+ /Library/Frameworks/SDL.framework/Headers,
+ /Library/Frameworks/SDL_image.framework/Headers,
+ /Library/Frameworks/SDL_mixer.framework/Headers,
+ /Library/Frameworks/SDL_ttf.framework/Headers,
+ "$(HEADER_SEARCH_PATHS)",
+ );
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ VERSIONING_SYSTEM = "";
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ );
+ CURRENT_PROJECT_VERSION = 1.0.1;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(HOME)/Library/Frameworks",
+ /Library/Frameworks,
+ "$(FRAMEWORK_SEARCH_PATHS)",
+ );
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "MACOSX=1",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_3)",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_4)",
+ "$(GCC_PREPROCESSOR_DEFINITIONS_QUOTED_5)",
+ "$(inherited)",
+ );
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_1 = "DATA_PREFIX=\\\"TuxMath.app/Contents/Resources/data\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_2 = "VERSION=\\\"1.0.1\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_3 = "DATA_PREFIX=\\\"TuxMath.app/Contents/Resources/data\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_4 = "VERSION=\\\"1.5\\\"";
+ GCC_PREPROCESSOR_DEFINITIONS_QUOTED_5 = "LOCALEDIR=\\\"TuxMath.app/Contents/Resources/data/locale\\\"";
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(HOME)/Library/Frameworks/SDL.framework/Headers",
+ /Library/Frameworks/SDL.framework/Headers,
+ /Library/Frameworks/SDL_image.framework/Headers,
+ /Library/Frameworks/SDL_mixer.framework/Headers,
+ /Library/Frameworks/SDL_ttf.framework/Headers,
+ "$(HEADER_SEARCH_PATHS)",
+ );
+ PREBINDING = NO;
+ SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
+ VERSIONING_SYSTEM = "";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "TuxMath" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4B08A954540054247B /* Debug */,
+ C01FCF4C08A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "TuxMath" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
diff --git a/macosx/TuxMath.xcodeproj/staff.mode1 b/macosx/TuxMath.xcodeproj/staff.mode1
new file mode 100644
index 0000000..25c077e
--- /dev/null
+++ b/macosx/TuxMath.xcodeproj/staff.mode1
@@ -0,0 +1,1337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXRunSessionModule</string>
+ <key>Name</key>
+ <string>Run Log</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ </array>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>A2AE41B30B32C93800C66A5D</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1</string>
+ <key>MajorVersion</key>
+ <integer>31</integer>
+ <key>MinorVersion</key>
+ <integer>1</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-target-popup</string>
+ <string>active-buildstyle-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>buildOrClean</string>
+ <string>build-and-runOrDebug</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>toggle-editor</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>29B97317FDCFA39411CA2CEA</string>
+ <string>A2AE40E70B32C7EE00C66A5D</string>
+ <string>29B97323FDCFA39411CA2CEA</string>
+ <string>1058C7A0FEA54F0111CA2CBB</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 338}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 356}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>79 270 690 397 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {482, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>79 270 690 397 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 5}, {482, 351}}</string>
+ <key>RubberWindowFrame</key>
+ <string>79 270 690 397 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>351pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>482pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>A2BFF0B40BA98EC100E42E36</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>A2BFF0B50BA98EC100E42E36</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.short</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>A2AE41B80B32CA0C00C66A5D</string>
+ <string>/Users/staff/src/tux4kids/tuxmath/trunk/macosx/TuxMath.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>79 270 690 397 0 0 1024 746 </string>
+ <key>WindowTools</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>titlescreen.c</string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {981, 408}}</string>
+ <key>RubberWindowFrame</key>
+ <string>0 56 981 690 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>408pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 413}, {981, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>0 56 981 690 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>649pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>A2AE41B80B32CA0C00C66A5D</string>
+ <string>A2BFF0BB0BA9947D00E42E36</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.build</string>
+ <key>WindowString</key>
+ <string>0 56 981 690 0 0 1024 746 </string>
+ <key>WindowToolGUID</key>
+ <string>A2AE41B80B32CA0C00C66A5D</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debug</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {440, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>650 41 440 400 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>WindowString</key>
+ <string>650 41 440 400 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.run</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>LauncherConfigVersion</key>
+ <string>3</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528B0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Run</string>
+ <key>Runner</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {493, 167}}</string>
+ <string>{{0, 176}, {493, 267}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {405, 443}}</string>
+ <string>{{414, 0}, {514, 443}}</string>
+ </array>
+ </dict>
+ </dict>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {459, 159}}</string>
+ <key>RubberWindowFrame</key>
+ <string>100 444 459 200 0 0 1024 746 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXRunSessionModule</string>
+ <key>Proportion</key>
+ <string>159pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>159pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Run Log</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXRunSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2B3069F1EA900FABCE6</string>
+ <string>A2DD45830BA966E100C5A800</string>
+ <string>1CD0528B0623707200166675</string>
+ <string>A2DD45840BA966E100C5A800</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.run</string>
+ <key>WindowString</key>
+ <string>100 444 459 200 0 0 1024 746 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2B3069F1EA900FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string><No Editor></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>2</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpoints</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimator</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/macosx/TuxMath.xcodeproj/staff.pbxuser b/macosx/TuxMath.xcodeproj/staff.pbxuser
new file mode 100644
index 0000000..78cb769
--- /dev/null
+++ b/macosx/TuxMath.xcodeproj/staff.pbxuser
@@ -0,0 +1,262 @@
+// !$*UTF8*$!
+{
+ 002F3A2B09D0888800EBEB88 /* SDLMain.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 429}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 429}}";
+ sepNavWindowFrame = "{{84, 120}, {750, 558}}";
+ };
+ };
+ 002F3A2C09D0888800EBEB88 /* SDLMain.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {818, 5376}}";
+ sepNavSelRange = "{345, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 429}}";
+ sepNavWindowFrame = "{{160, 44}, {750, 558}}";
+ };
+ };
+ 089C165DFE840E0CC02AAC07 /* English */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 429}}";
+ sepNavSelRange = "{168, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 429}}";
+ sepNavWindowFrame = "{{176, 36}, {750, 558}}";
+ };
+ };
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeExecutable = A2AE40D10B32C71000C66A5D /* TuxMath */;
+ activeTarget = 8D1107260486CEB800E47090 /* TuxMath */;
+ addToTargets = (
+ 8D1107260486CEB800E47090 /* TuxMath */,
+ );
+ codeSenseManager = A2AE40DB0B32C73000C66A5D /* Code sense */;
+ executables = (
+ A2AE40D10B32C71000C66A5D /* TuxMath */,
+ );
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 243,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 200,
+ 63,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 195661484;
+ PBXWorkspaceStateSaveDate = 195661484;
+ };
+ perUserProjectItems = {
+ A2BFF0B60BA98EC100E42E36 /* PBXTextBookmark */ = A2BFF0B60BA98EC100E42E36 /* PBXTextBookmark */;
+ A2BFF0BA0BA9947D00E42E36 /* PBXTextBookmark */ = A2BFF0BA0BA9947D00E42E36 /* PBXTextBookmark */;
+ A2BFF0C20BA9980900E42E36 /* PBXTextBookmark */ = A2BFF0C20BA9980900E42E36 /* PBXTextBookmark */;
+ A2BFF0C30BA9980900E42E36 /* PBXTextBookmark */ = A2BFF0C30BA9980900E42E36 /* PBXTextBookmark */;
+ A2DD45860BA96A1800C5A800 = A2DD45860BA96A1800C5A800 /* PBXBookmark */;
+ A2DD458D0BA975F500C5A800 = A2DD458D0BA975F500C5A800 /* PBXTextBookmark */;
+ };
+ sourceControlManager = A2AE40DA0B32C73000C66A5D /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 32CA4F630368D1EE00C91783 /* TuxMath_Prefix.pch */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 429}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 429}}";
+ sepNavWindowFrame = "{{84, 120}, {750, 558}}";
+ };
+ };
+ 8D1107260486CEB800E47090 /* TuxMath */ = {
+ activeExec = 0;
+ executables = (
+ A2AE40D10B32C71000C66A5D /* TuxMath */,
+ );
+ };
+ 8D1107310486CEB800E47090 /* Info.plist */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 429}}";
+ sepNavSelRange = "{715, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 429}}";
+ sepNavWindowFrame = "{{61, 141}, {750, 558}}";
+ };
+ };
+ A210C4980B927F0F004EB748 /* theme.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {940, 5348}}";
+ sepNavSelRange = "{1212, 0}";
+ sepNavVisRect = "{{0, 183}, {940, 376}}";
+ };
+ };
+ A210C4990B927F0F004EB748 /* titlescreen.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {940, 30982}}";
+ sepNavSelRange = "{39347, 0}";
+ sepNavVisRect = "{{0, 366}, {940, 376}}";
+ };
+ };
+ A210C49A0B927F0F004EB748 /* titlescreen.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {692, 4102}}";
+ sepNavSelRange = "{1847, 0}";
+ sepNavVisRect = "{{0, 768}, {459, 186}}";
+ sepNavWindowFrame = "{{61, 141}, {750, 558}}";
+ };
+ };
+ A2AE40D10B32C71000C66A5D /* TuxMath */ = {
+ isa = PBXExecutable;
+ activeArgIndex = 2147483647;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ autoAttachOnCrash = 1;
+ configStateDict = {
+ };
+ customDataFormattersEnabled = 1;
+ debuggerPlugin = GDBDebugging;
+ disassemblyDisplayState = 0;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ executableSystemSymbolLevel = 0;
+ executableUserSymbolLevel = 0;
+ libgmallocEnabled = 0;
+ name = TuxMath;
+ savedGlobals = {
+ };
+ sourceDirectories = (
+ );
+ };
+ A2AE40DA0B32C73000C66A5D /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ };
+ scmType = "";
+ };
+ A2AE40DB0B32C73000C66A5D /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ A2AE41820B32C88100C66A5D /* fileops.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {764, 34888}}";
+ sepNavSelRange = "{1068, 0}";
+ sepNavVisRect = "{{0, 306}, {459, 186}}";
+ sepNavWindowFrame = "{{38, 162}, {750, 558}}";
+ };
+ };
+ A2AE41910B32C88100C66A5D /* setup.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {940, 9814}}";
+ sepNavSelRange = "{7477, 86}";
+ sepNavVisRect = "{{0, 3151}, {940, 376}}";
+ };
+ };
+ A2AE41960B32C88100C66A5D /* tuxmath.c */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 728}}";
+ sepNavSelRange = "{724, 0}";
+ sepNavVisRect = "{{0, 270}, {711, 429}}";
+ sepNavWindowFrame = "{{107, 99}, {750, 558}}";
+ };
+ };
+ A2AE41970B32C88100C66A5D /* tuxmath.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {752, 2226}}";
+ sepNavSelRange = "{465, 21}";
+ sepNavVisRect = "{{0, 264}, {459, 186}}";
+ };
+ };
+ A2BFF0B60BA98EC100E42E36 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ name = "English: 5";
+ rLen = 0;
+ rLoc = 168;
+ rType = 0;
+ vrLen = 272;
+ vrLoc = 0;
+ };
+ A2BFF0BA0BA9947D00E42E36 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ name = "English: 5";
+ rLen = 0;
+ rLoc = 168;
+ rType = 0;
+ vrLen = 272;
+ vrLoc = 0;
+ };
+ A2BFF0C20BA9980900E42E36 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ comments = "error: 'bytes_read' undeclared (first use in this function)";
+ fRef = A210C4990B927F0F004EB748 /* titlescreen.c */;
+ rLen = 1;
+ rLoc = 1477;
+ rType = 1;
+ };
+ A2BFF0C30BA9980900E42E36 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = A210C4990B927F0F004EB748 /* titlescreen.c */;
+ name = "titlescreen.c: 1411";
+ rLen = 0;
+ rLoc = 39347;
+ rType = 0;
+ vrLen = 671;
+ vrLoc = 1361;
+ };
+ A2DD45860BA96A1800C5A800 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ };
+ A2DD458D0BA975F500C5A800 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ name = "English: 5";
+ rLen = 0;
+ rLoc = 168;
+ rType = 0;
+ vrLen = 272;
+ vrLoc = 0;
+ };
+}
diff --git a/macosx/TuxMath_Prefix.pch b/macosx/TuxMath_Prefix.pch
new file mode 100644
index 0000000..209e3ca
--- /dev/null
+++ b/macosx/TuxMath_Prefix.pch
@@ -0,0 +1,9 @@
+//
+// Prefix header for all source files of the 'TuxMath' target in the 'TuxMath' project
+//
+
+#include "SDL.h"
+
+#ifdef __OBJC__
+ #import <Cocoa/Cocoa.h>
+#endif
diff --git a/mingw/SDL_win32_main.c b/mingw/SDL_win32_main.c
new file mode 100755
index 0000000..4957309
--- /dev/null
+++ b/mingw/SDL_win32_main.c
@@ -0,0 +1,357 @@
+/*
+ SDL_main.c, placed in the public domain by Sam Lantinga 4/13/98
+
+ The WinMain function -- calls your program's main() function
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#ifdef _WIN32_WCE
+# define DIR_SEPERATOR TEXT("\\")
+# undef _getcwd
+# define _getcwd(str,len) wcscpy(str,TEXT(""))
+# define setbuf(f,b)
+# define setvbuf(w,x,y,z)
+# define fopen _wfopen
+# define freopen _wfreopen
+# define remove(x) DeleteFile(x)
+#else
+# define DIR_SEPERATOR TEXT("/")
+# include <direct.h>
+#endif
+
+/* Include the SDL main definition header */
+#include "SDL.h"
+#include "SDL_main.h"
+
+#ifdef main
+# ifndef _WIN32_WCE_EMULATION
+# undef main
+# endif /* _WIN32_WCE_EMULATION */
+#endif /* main */
+
+/* The standard output files */
+#define STDOUT_FILE TEXT("stdout.txt")
+#define STDERR_FILE TEXT("stderr.txt")
+
+#ifndef NO_STDIO_REDIRECT
+# ifdef _WIN32_WCE
+ static wchar_t stdoutPath[MAX_PATH];
+ static wchar_t stderrPath[MAX_PATH];
+# else
+ static char stdoutPath[MAX_PATH];
+ static char stderrPath[MAX_PATH];
+# endif
+#endif
+
+#if defined(_WIN32_WCE) && _WIN32_WCE < 300
+/* seems to be undefined in Win CE although in online help */
+#define isspace(a) (((CHAR)a == ' ') || ((CHAR)a == '\t'))
+#endif /* _WIN32_WCE < 300 */
+
+/* Parse a command line buffer into arguments */
+static int ParseCommandLine(char *cmdline, char **argv)
+{
+ char *bufp;
+ int argc;
+
+ argc = 0;
+ for ( bufp = cmdline; *bufp; ) {
+ /* Skip leading whitespace */
+ while ( isspace(*bufp) ) {
+ ++bufp;
+ }
+ /* Skip over argument */
+ if ( *bufp == '"' ) {
+ ++bufp;
+ if ( *bufp ) {
+ if ( argv ) {
+ argv[argc] = bufp;
+ }
+ ++argc;
+ }
+ /* Skip over word */
+ while ( *bufp && (*bufp != '"') ) {
+ ++bufp;
+ }
+ } else {
+ if ( *bufp ) {
+ if ( argv ) {
+ argv[argc] = bufp;
+ }
+ ++argc;
+ }
+ /* Skip over word */
+ while ( *bufp && ! isspace(*bufp) ) {
+ ++bufp;
+ }
+ }
+ if ( *bufp ) {
+ if ( argv ) {
+ *bufp = '\0';
+ }
+ ++bufp;
+ }
+ }
+ if ( argv ) {
+ argv[argc] = NULL;
+ }
+ return(argc);
+}
+
+/* Show an error message */
+static void ShowError(const char *title, const char *message)
+{
+/* If USE_MESSAGEBOX is defined, you need to link with user32.lib */
+#ifdef USE_MESSAGEBOX
+ MessageBox(NULL, message, title, MB_ICONEXCLAMATION|MB_OK);
+#else
+ fprintf(stderr, "%s: %s\n", title, message);
+#endif
+}
+
+/* Pop up an out of memory message, returns to Windows */
+static BOOL OutOfMemory(void)
+{
+ ShowError("Fatal Error", "Out of memory - aborting");
+ return FALSE;
+}
+
+/* SDL_Quit() shouldn't be used with atexit() directly because
+ calling conventions may differ... */
+static void cleanup(void)
+{
+ SDL_Quit();
+}
+
+/* Remove the output files if there was no output written */
+static void cleanup_output(void)
+{
+#ifndef NO_STDIO_REDIRECT
+ FILE *file;
+ int empty;
+#endif
+
+ /* Flush the output in case anything is queued */
+ fclose(stdout);
+ fclose(stderr);
+
+#ifndef NO_STDIO_REDIRECT
+ /* See if the files have any output in them */
+ if ( stdoutPath[0] ) {
+ file = fopen(stdoutPath, TEXT("rb"));
+ if ( file ) {
+ empty = (fgetc(file) == EOF) ? 1 : 0;
+ fclose(file);
+ if ( empty ) {
+ remove(stdoutPath);
+ }
+ }
+ }
+ if ( stderrPath[0] ) {
+ file = fopen(stderrPath, TEXT("rb"));
+ if ( file ) {
+ empty = (fgetc(file) == EOF) ? 1 : 0;
+ fclose(file);
+ if ( empty ) {
+ remove(stderrPath);
+ }
+ }
+ }
+#endif
+}
+
+#if defined(_MSC_VER) && !defined(_WIN32_WCE)
+/* The VC++ compiler needs main defined */
+#define console_main main
+#endif
+
+/* This is where execution begins [console apps] */
+int console_main(int argc, char *argv[])
+{
+ size_t n;
+ char *bufp, *appname;
+ int status;
+
+ /* Get the class name from argv[0] */
+ appname = argv[0];
+ if ( (bufp=SDL_strrchr(argv[0], '\\')) != NULL ) {
+ appname = bufp+1;
+ } else
+ if ( (bufp=SDL_strrchr(argv[0], '/')) != NULL ) {
+ appname = bufp+1;
+ }
+
+ if ( (bufp=SDL_strrchr(appname, '.')) == NULL )
+ n = SDL_strlen(appname);
+ else
+ n = (bufp-appname);
+
+ bufp = SDL_stack_alloc(char, n+1);
+ if ( bufp == NULL ) {
+ return OutOfMemory();
+ }
+ SDL_strlcpy(bufp, appname, n+1);
+ appname = bufp;
+
+ /* Load SDL dynamic link library */
+ if ( SDL_Init(SDL_INIT_NOPARACHUTE) < 0 ) {
+ ShowError("WinMain() error", SDL_GetError());
+ return(FALSE);
+ }
+ atexit(cleanup_output);
+ atexit(cleanup);
+
+ /* Sam:
+ We still need to pass in the application handle so that
+ DirectInput will initialize properly when SDL_RegisterApp()
+ is called later in the video initialization.
+ */
+ SDL_SetModuleHandle(GetModuleHandle(NULL));
+
+ /* Run the application main() code */
+ status = SDL_main(argc, argv);
+
+ /* Exit cleanly, calling atexit() functions */
+ exit(status);
+
+ /* Hush little compiler, don't you cry... */
+ return 0;
+}
+
+/* This is where execution begins [windowed apps] */
+#ifdef _WIN32_WCE
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPWSTR szCmdLine, int sw)
+#else
+int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw)
+#endif
+{
+ HINSTANCE handle;
+ char **argv;
+ int argc;
+ char *cmdline;
+ DWORD pathlen;
+#ifdef _WIN32_WCE
+ wchar_t path[MAX_PATH];
+#else
+ char path[MAX_PATH];
+#endif
+#ifdef _WIN32_WCE
+ wchar_t *bufp;
+ int nLen;
+#else
+ char *bufp;
+ size_t nLen;
+#endif
+#ifndef NO_STDIO_REDIRECT
+ FILE *newfp;
+#endif
+
+ /* Start up DDHELP.EXE before opening any files, so DDHELP doesn't
+ keep them open. This is a hack.. hopefully it will be fixed
+ someday. DDHELP.EXE starts up the first time DDRAW.DLL is loaded.
+ */
+ handle = LoadLibrary(TEXT("DDRAW.DLL"));
+ if ( handle != NULL ) {
+ FreeLibrary(handle);
+ }
+
+#ifndef NO_STDIO_REDIRECT
+ pathlen = GetModuleFileName(NULL, path, SDL_arraysize(path));
+ while ( pathlen > 0 && path[pathlen] != '\\' ) {
+ --pathlen;
+ }
+ path[pathlen] = '\0';
+
+#ifdef _WIN32_WCE
+ wcsncpy( stdoutPath, path, SDL_arraysize(stdoutPath) );
+ wcsncat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) );
+#else
+ SDL_strlcpy( stdoutPath, path, SDL_arraysize(stdoutPath) );
+ SDL_strlcat( stdoutPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) );
+#endif
+
+ /* Redirect standard input and standard output */
+ newfp = freopen(stdoutPath, TEXT("w"), stdout);
+
+#ifndef _WIN32_WCE
+ if ( newfp == NULL ) { /* This happens on NT */
+#if !defined(stdout)
+ stdout = fopen(stdoutPath, TEXT("w"));
+#else
+ newfp = fopen(stdoutPath, TEXT("w"));
+ if ( newfp ) {
+ *stdout = *newfp;
+ }
+#endif
+ }
+#endif /* _WIN32_WCE */
+
+#ifdef _WIN32_WCE
+ wcsncpy( stderrPath, path, SDL_arraysize(stdoutPath) );
+ wcsncat( stderrPath, DIR_SEPERATOR STDOUT_FILE, SDL_arraysize(stdoutPath) );
+#else
+ SDL_strlcpy( stderrPath, path, SDL_arraysize(stderrPath) );
+ SDL_strlcat( stderrPath, DIR_SEPERATOR STDERR_FILE, SDL_arraysize(stderrPath) );
+#endif
+
+ newfp = freopen(stderrPath, TEXT("w"), stderr);
+#ifndef _WIN32_WCE
+ if ( newfp == NULL ) { /* This happens on NT */
+#if !defined(stderr)
+ stderr = fopen(stderrPath, TEXT("w"));
+#else
+ newfp = fopen(stderrPath, TEXT("w"));
+ if ( newfp ) {
+ *stderr = *newfp;
+ }
+#endif
+ }
+#endif /* _WIN32_WCE */
+
+ setvbuf(stdout, NULL, _IOLBF, BUFSIZ); /* Line buffered */
+ setbuf(stderr, NULL); /* No buffering */
+#endif /* !NO_STDIO_REDIRECT */
+
+#ifdef _WIN32_WCE
+ nLen = wcslen(szCmdLine)+128+1;
+ bufp = SDL_stack_alloc(wchar_t, nLen*2);
+ wcscpy (bufp, TEXT("\""));
+ GetModuleFileName(NULL, bufp+1, 128-3);
+ wcscpy (bufp+wcslen(bufp), TEXT("\" "));
+ wcsncpy(bufp+wcslen(bufp), szCmdLine,nLen-wcslen(bufp));
+ nLen = wcslen(bufp)+1;
+ cmdline = SDL_stack_alloc(char, nLen);
+ if ( cmdline == NULL ) {
+ return OutOfMemory();
+ }
+ WideCharToMultiByte(CP_ACP, 0, bufp, -1, cmdline, nLen, NULL, NULL);
+#else
+ /* Grab the command line */
+ bufp = GetCommandLine();
+ nLen = SDL_strlen(bufp)+1;
+ cmdline = SDL_stack_alloc(char, nLen);
+ if ( cmdline == NULL ) {
+ return OutOfMemory();
+ }
+ SDL_strlcpy(cmdline, bufp, nLen);
+#endif
+
+ /* Parse it into argv and argc */
+ argc = ParseCommandLine(cmdline, NULL);
+ argv = SDL_stack_alloc(char*, argc+1);
+ if ( argv == NULL ) {
+ return OutOfMemory();
+ }
+ ParseCommandLine(cmdline, argv);
+
+ /* Run the main program (after a little SDL initialization) */
+ console_main(argc, argv);
+
+ /* Hush little compiler, don't you cry... */
+ return 0;
+}
diff --git a/mingw/config.h b/mingw/config.h
new file mode 100644
index 0000000..39d34e1
--- /dev/null
+++ b/mingw/config.h
@@ -0,0 +1,5 @@
+//ready-made config.h for a quick 'n dirty Windows build
+#define PACKAGE "tuxmath"
+#define PACKAGE_BUGREPORT "tuxmath-devel at lists.sourceforge.net"
+#define PACKAGE_NAME "Tux Of Math Command"
+
diff --git a/mingw/tuxmath.cbp b/mingw/tuxmath.cbp
new file mode 100644
index 0000000..1fb28c0
--- /dev/null
+++ b/mingw/tuxmath.cbp
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<CodeBlocks_project_file>
+ <FileVersion major="1" minor="6" />
+ <Project>
+ <Option title="tuxmath" />
+ <Option pch_mode="2" />
+ <Option compiler="gcc" />
+ <Build>
+ <Target title="WinDebug">
+ <Option platforms="Windows;" />
+ <Option output="../src/tuxmath-mingw" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/debug" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Compiler>
+ <Add option="-g" />
+ <Add option="-DTUXMATH_DEBUG" />
+ <Add option="-DBUILD_MINGW32" />
+ <Add option="-DHAVE_STDINT_H" />
+ <Add option='-DPROGRAM_NAME=\"TuxMath\"' />
+ <Add option='-DPACKAGE=\"tuxmath\"' />
+ <Add option='-DDATA_PREFIX=\"../data\"' />
+ <Add option='-DVERSION=\"1.7.2\"' />
+ <Add directory="." />
+ </Compiler>
+ </Target>
+ <Target title="WinRelease">
+ <Option platforms="Windows;" />
+ <Option output="C:/Program Files/TuxMath/tuxmath" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/release" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Compiler>
+ <Add option="-g" />
+ <Add option="-DBUILD_MINGW32" />
+ <Add option="-DNO_STDIO_REDIRECT" />
+ <Add option='-DPROGRAM_NAME=\"TuxMath\"' />
+ <Add option='-DDATA_PREFIX="\"C:/Program Files/TuxMath/data\""' />
+ <Add option="-DVERSION=FULLVERSION_STRING" />
+ </Compiler>
+ </Target>
+ <Target title="NixDebug">
+ <Option platforms="Unix;" />
+ <Option output="../src/tuxmath-mingw" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/debug" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Compiler>
+ <Add option="-g" />
+ <Add option='-DPACKAGE=\\"tuxmath\\"' />
+ <Add option='-DPROGRAM_NAME=\\"tuxmath\\"' />
+ <Add option='-DDATA_PREFIX=\\"../data\\"' />
+ <Add option='-DLOCALEDIR=\\"/usr/local/share/locale\\"' />
+ </Compiler>
+ <Linker>
+ <Add library="SDL_Pango" />
+ <Add library="SDL_gfx" />
+ </Linker>
+ </Target>
+ <Target title="NixRelease">
+ <Option platforms="Unix;" />
+ <Option output="/usr/bin/tuxmath" prefix_auto="1" extension_auto="1" />
+ <Option object_output="obj/release" />
+ <Option type="1" />
+ <Option compiler="gcc" />
+ <Option use_console_runner="0" />
+ <Compiler>
+ <Add option="-O" />
+ <Add option="-Wall" />
+ <Add option='-DPACKAGE=\\"tuxmath\\"' />
+ <Add option='-DPROGRAM_NAME=\\"tuxmath\\"' />
+ <Add option='-DDATA_PREFIX=\\"/usr/local/share/tuxmath\\"' />
+ <Add option='-DLOCALEDIR=\\"/usr/local/share/locale\\"' />
+ </Compiler>
+ </Target>
+ </Build>
+ <Compiler>
+ <Add option="-Wall" />
+ <Add directory="../linebreak" />
+ <Add directory="../" />
+ </Compiler>
+ <Linker>
+ <Add library="SDL" />
+ <Add library="SDL_image" />
+ <Add library="SDL_mixer" />
+ <Add library="SDL_ttf" />
+ </Linker>
+ <Unit filename="../config.h" />
+ <Unit filename="../linebreak/lbrkprop.h" />
+ <Unit filename="../linebreak/linebreak.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/linebreak.h" />
+ <Unit filename="../linebreak/localcharset.h" />
+ <Unit filename="../linebreak/streq.h" />
+ <Unit filename="../linebreak/unistr.h" />
+ <Unit filename="../linebreak/unistr/u16-mbtouc-aux.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u16-mbtouc-unsafe-aux.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u16-mbtouc-unsafe.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u16-mbtouc.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-mbtouc-aux.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-mbtouc-unsafe-aux.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-mbtouc-unsafe.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-mbtouc.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-uctomb-aux.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unistr/u8-uctomb.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/unitypes.h" />
+ <Unit filename="../linebreak/uniwidth.h" />
+ <Unit filename="../linebreak/uniwidth/cjk.h" />
+ <Unit filename="../linebreak/uniwidth/width.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../linebreak/xsize.h" />
+ <Unit filename="SDL_win32_main.c">
+ <Option compilerVar="CC" />
+ <Option target="WinRelease" />
+ <Option target="WinDebug" />
+ </Unit>
+ <Unit filename="config.h">
+ <Option target="WinDebug" />
+ </Unit>
+ <Unit filename="version.h">
+ <Option target="NixRelease" />
+ </Unit>
+ <Unit filename="../src/SDL_extras.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/SDL_extras.h" />
+ <Unit filename="../src/SDL_rotozoom.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/SDL_rotozoom.h" />
+ <Unit filename="../src/audio.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/campaign.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/campaign.h" />
+ <Unit filename="../src/compiler.h" />
+ <Unit filename="../src/convert_utf.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/convert_utf.h" />
+ <Unit filename="../src/credits.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/credits.h" />
+ <Unit filename="../src/factoroids.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/factoroids.h" />
+ <Unit filename="../src/fileops.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/fileops.h" />
+ <Unit filename="../src/fileops_media.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/game.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/game.h" />
+ <Unit filename="../src/gettext.h" />
+ <Unit filename="../src/globals.h" />
+ <Unit filename="../src/highscore.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/highscore.h" />
+ <Unit filename="../src/lessons.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/lessons.h" />
+ <Unit filename="../src/linewrap.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/linewrap.h" />
+ <Unit filename="../src/loaders.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/loaders.h" />
+ <Unit filename="../src/mathcards.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/mathcards.h" />
+ <Unit filename="../src/multiplayer.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/multiplayer.h" />
+ <Unit filename="../src/options.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/options.h" />
+ <Unit filename="../src/pixels.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/pixels.h" />
+ <Unit filename="../src/scandir.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/scandir.h" />
+ <Unit filename="../src/setup.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/setup.h" />
+ <Unit filename="../src/titlescreen.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/titlescreen.h" />
+ <Unit filename="../src/tuxmath.c">
+ <Option compilerVar="CC" />
+ </Unit>
+ <Unit filename="../src/tuxmath.h" />
+ <Extensions>
+ <code_completion />
+ <envvars />
+ <debugger />
+ <lib_finder disable_auto="1" />
+ <AutoVersioning>
+ <Scheme minor_max="100" build_max="0" rev_max="0" rev_rand_max="10" build_times_to_increment_minor="100" />
+ <Settings autoincrement="1" date_declarations="1" do_auto_increment="0" ask_to_increment="0" language="C" svn="1" svn_directory="../../" header_path="version.h" />
+ <Changes_Log show_changes_editor="0" app_title="released version %M.%m.%b of %p" changeslog_path="ChangesLog.txt" />
+ </AutoVersioning>
+ </Extensions>
+ </Project>
+</CodeBlocks_project_file>
diff --git a/mingw/version.h b/mingw/version.h
new file mode 100755
index 0000000..663ee33
--- /dev/null
+++ b/mingw/version.h
@@ -0,0 +1,34 @@
+#ifndef VERSION_H
+#define VERSION_H
+
+ //Date Version Types
+ static const char DATE[] = "12";
+ static const char MONTH[] = "07";
+ static const char YEAR[] = "2008";
+ static const double UBUNTU_VERSION_STYLE = 8.07;
+
+ //Software Status
+ static const char STATUS[] = "Custom";
+ static const char STATUS_SHORT[] = "r";
+
+ //Standard Version Type
+ static const long MAJOR = 1;
+ static const long MINOR = 6;
+ static const long BUILD = 3;
+ static const long REVISION = 0;
+
+ //Miscellaneous Version Types
+ static const long BUILDS_COUNT = 1;
+ #define RC_FILEVERSION 1,6,3,0
+ #define RC_FILEVERSION_STRING "1, 6, 3, 0\0"
+ static const char FULLVERSION_STRING[] = "1.6.3.0";
+
+ //SVN Version
+ static const char SVN_REVISION[] = "0";
+ static const char SVN_DATE[] = "unknown date";
+
+ //These values are to keep track of your versioning state, don't modify them.
+ static const long BUILD_HISTORY = 0;
+
+
+#endif //VERSION_h
diff --git a/notesblurb b/notesblurb
new file mode 100644
index 0000000..4c69ad3
--- /dev/null
+++ b/notesblurb
@@ -0,0 +1,3 @@
+Source tar.gz archive for TuxMath 1.7.1, including the Andika font. Suitable for installation on Unix-style systems using a simple "./configure; make; make install". This now includes MacOSX as long as you have the needed libs (tested on MacOS 10.5 "Leopard").
+
+Build requires the *-dev files for SDL, SDL_image, SDL_mixer, and SDL_ttf. SDL_Pango will be used if found. GNU Gettext is no longer required for installation. All of these should be easily available in most GNU-Linux distributions. The GNU Autotools are not needed to build from this package.
\ No newline at end of file
diff --git a/nsis/tuxmath.nsi.in b/nsis/tuxmath.nsi.in
new file mode 100644
index 0000000..687f3e0
--- /dev/null
+++ b/nsis/tuxmath.nsi.in
@@ -0,0 +1,123 @@
+# vim: noai et ts=4 tw=0
+# with a few tiny modifications by Phil Harper(philh at theopencd.org)
+# modified for tuxmath by Yves Combe (yves at ycombe.net)
+# modified more for tuxmath by David Bruce <davidstuartbruce at gmail.com>
+
+!define PKG_VERSION "@VERSION@"
+!define PKG_PREFIX "tuxmath"
+
+!define APP_PREFIX "TuxMath"
+!define APP_EXE "${APP_PREFIX}.exe"
+!define APP_NAME "Tux of Math Command"
+
+OutFile "${PKG_PREFIX}-${PKG_VERSION}-win32-installer.exe"
+Name "${APP_NAME}"
+Caption ""
+CRCCheck on
+WindowIcon off
+BGGradient off
+
+# Default to not silent
+SilentInstall normal
+SilentUnInstall normal
+
+# Various default text options
+MiscButtonText
+InstallButtonText
+FileErrorText
+
+# Default installation dir and registry key of install directory
+InstallDir "$PROGRAMFILES\${APP_PREFIX}"
+InstallDirRegKey HKLM SOFTWARE\${APP_PREFIX} "Install_Dir"
+
+# Licence text
+LicenseText "Please read the terms of the General Public License before installing ${APP_NAME}"
+LicenseData "mingw32\doc\COPYING_GPL3"
+
+# Directory browsing
+# DirShow show
+ComponentText "This will install ${APP_NAME} on your computer. Select which optional things you want installed."
+DirText "Choose a directory to install ${APP_NAME} in to:"
+AllowRootDirInstall false
+
+# Install page stuff
+InstProgressFlags smooth
+AutoCloseWindow true
+
+Section
+ SetOutPath $INSTDIR
+ File "mingw32\${APP_EXE}"
+# File "mingw32\*.dll"
+ SetOutPath $INSTDIR\data
+ File /r "mingw32\data\*.*"
+ SetOutPath $INSTDIR\doc
+ File /r "mingw32\doc\*.*"
+ SetOutPath $INSTDIR\locale
+ File /r "mingw32\locale\*.*"
+
+ WriteRegStr HKLM SOFTWARE\${APP_PREFIX} \
+ "Install_Dir" \
+ "$INSTDIR"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" \
+ "DisplayName" \
+ "${APP_NAME} (remove only)"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" \
+ "UninstallString" \
+ '"$INSTDIR\uninstall.exe"'
+ WriteUninstaller "uninstall.exe"
+SectionEnd
+
+
+Section "Start Menu Shortcuts"
+ SetShellVarContext all
+ SetOutPath $INSTDIR
+ CreateDirectory "$SMPROGRAMS\${APP_NAME}"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Full Screen).lnk" \
+ "$INSTDIR\${APP_EXE}" \
+ "-f" \
+ "$INSTDIR\data\images\icons\tuxmath.ico" \
+ 0 "" "" \
+ "Start TuxMath in Fullscreen mode"
+
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Windowed).lnk" \
+ "$INSTDIR\${APP_EXE}" \
+ "-w" \
+ "$INSTDIR\data\images\icons\tuxmath.ico" \
+ 0 "" "" \
+ "Start TuxMath in a Window"
+
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" \
+ "$INSTDIR\uninstall.exe" "" \
+ "$INSTDIR\uninstall.exe" 0 "" "" \
+ "Remove Tux of Math Command"
+SectionEnd
+
+Section "Desktop Shortcut"
+ SetShellVarContext all
+ SetOutPath $INSTDIR
+ CreateShortCut "$DESKTOP\${APP_NAME}.lnk" \
+ "$INSTDIR\${APP_EXE}" "" \
+ "$INSTDIR\data\images\icons\tuxmath.ico" \
+ 0 "" "" \
+ "Run Tux of Math Command"
+SectionEnd
+
+# Uninstall stuff
+
+UninstallText "This will uninstall ${APP_NAME}. Hit 'Uninstall' to continue."
+
+# special uninstall section.
+Section "Uninstall"
+ SetShellVarContext all
+# remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}"
+ DeleteRegKey HKLM SOFTWARE\${APP_PREFIX}
+
+ RMDir /r "$INSTDIR\data"
+ RMDir /r "$INSTDIR\doc"
+ Delete "$INSTDIR\*.*"
+
+ Delete "$DESKTOP\${APP_NAME}.lnk"
+ Delete "$SMPROGRAMS\${APP_NAME}\*.*"
+ RMDir "$SMPROGRAMS\${APP_NAME}"
+SectionEnd
diff --git a/nsis/tuxmath_with_conf.nsi.in b/nsis/tuxmath_with_conf.nsi.in
new file mode 100644
index 0000000..edffcc6
--- /dev/null
+++ b/nsis/tuxmath_with_conf.nsi.in
@@ -0,0 +1,114 @@
+# vim: noai et ts=4 tw=0
+# with a few tiny modifications by Phil Harper(philh at theopencd.org)
+# modified for tuxmath by Yves Combe (yves at ycombe.net)
+
+!define PKG_VERSION "@VERSION@"
+!define PKG_PREFIX "tuxmath"
+
+!define APP_PREFIX "TuxMath"
+!define APP_EXE "${APP_PREFIX}.exe"
+!define APP_NAME "Tux of Math Command"
+
+!define CONF_EXE "tuxmath_config.exe"
+!define CONF_DIR "TuxMathConfig"
+
+OutFile "${PKG_PREFIX}-${PKG_VERSION}-with-config-win32-installer.exe"
+Name "${APP_NAME}"
+Caption ""
+CRCCheck on
+WindowIcon off
+BGGradient off
+
+# Default to not silent
+SilentInstall normal
+SilentUnInstall normal
+
+# Various default text options
+MiscButtonText
+InstallButtonText
+FileErrorText
+
+# Default installation dir and registry key of install directory
+InstallDir "$PROGRAMFILES\${APP_PREFIX}"
+InstallDirRegKey HKLM SOFTWARE\${APP_PREFIX} "Install_Dir"
+
+# Licence text
+LicenseText "You must agree to this license before installing ${APP_NAME}"
+LicenseData "docs\COPYING.txt"
+
+# Directory browsing
+# DirShow show
+ComponentText "This will install ${APP_NAME} on your computer. Select which optional things you want installed."
+DirText "Choose a directory to install ${APP_NAME} in to:"
+AllowRootDirInstall false
+
+# Install page stuff
+InstProgressFlags smooth
+AutoCloseWindow true
+
+Section
+ SetOutPath $INSTDIR
+ File "mingw32\${APP_EXE}"
+ File "mingw32\*.dll"
+ SetOutPath $INSTDIR\data
+ File /r "data\*.*"
+ SetOutPath $INSTDIR\docs
+ File "docs\COPYING.txt"
+ SetOutPath $INSTDIR\${CONF_DIR}
+ File "mingw32\TuxMathConfig\*.*"
+
+ WriteRegStr HKLM SOFTWARE\${APP_PREFIX} "Install_Dir" "$INSTDIR"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" "DisplayName" "${APP_NAME} (remove only)"
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}" "UninstallString" '"$INSTDIR\uninstall.exe"'
+ WriteUninstaller "uninstall.exe"
+SectionEnd
+
+
+Section "Start Menu Shortcuts"
+ SetShellVarContext all
+ SetOutPath $INSTDIR
+ CreateDirectory "$SMPROGRAMS\${APP_NAME}"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Full Screen).lnk" "$INSTDIR\${APP_EXE}" "-f" "$INSTDIR\${APP_EXE}" 0 "" "" "Start TuxMath in Fullscreen mode"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\${APP_NAME} (Windowed).lnk" "$INSTDIR\${APP_EXE}" "-w" "$INSTDIR\${APP_EXE}" 0 "" "" "Start TuxMath in a Window"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\Configure TuxMath.lnk" "$INSTDIR\${CONF_DIR}\${CONF_EXE}" "-w" "$INSTDIR\${CONF_DIR}\${CONF_EXE}" 0 "" "" "Configure TuxMath"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 "" "" "Remove Tux of Math Command"
+SectionEnd
+
+
+Section "Desktop Shortcut"
+ SetShellVarContext all
+ SetOutPath $INSTDIR
+ CreateShortCut "$DESKTOP\${APP_NAME}.lnk" "$INSTDIR\${APP_EXE}" "" "$INSTDIR\${APP_EXE}" 0 "" "" "Run Tux of Math Command"
+SectionEnd
+
+;Function .onInstSuccess
+; BringToFront
+; MessageBox MB_YESNO|MB_ICONQUESTION \
+; "${APP_NAME} was installed. Would you like to run ${APP_NAME} now ?" \
+; IDNO NoExec
+; Exec '$INSTDIR\${APP_EXE}'
+; NoExec:
+;FunctionEnd
+
+; uninstall stuff
+
+UninstallText "This will uninstall ${APP_NAME}. Hit 'Uninstall' to continue."
+
+; special uninstall section.
+Section "Uninstall"
+ SetShellVarContext all
+ ; remove registry keys
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_PREFIX}"
+ DeleteRegKey HKLM SOFTWARE\${APP_PREFIX}
+
+ RMDir /r "$INSTDIR\data"
+ RMDir /r "$INSTDIR\docs"
+ RMDir /r "$INSTDIR\${CONF_DIR}"
+ Delete "$INSTDIR\*.*"
+
+ Delete "$DESKTOP\${APP_NAME}.lnk"
+ Delete "$SMPROGRAMS\${APP_NAME}\*.*"
+ RMDir "$SMPROGRAMS\${APP_NAME}"
+SectionEnd
+
+
diff --git a/options b/options
new file mode 100644
index 0000000..2f9463a
--- /dev/null
+++ b/options
@@ -0,0 +1,508 @@
+############################################################
+# #
+# Tuxmath Configuration File #
+# #
+# The behavior of Tuxmath can be controlled to a great #
+# extent by editing this file with any and saving it in #
+# the default options location ($HOME/.tuxmath/options). #
+# The file consists of 'NAME = VALUE' pairs, one pair per #
+# line. Each option is one of the following types: #
+# #
+# boolean: 1 (synonyms 'true', 'T', 'yes', 'Y', 'on') #
+# or #
+# 0 (synonyms 'false, 'F', 'no', 'N', 'off') #
+# integer (i.e. non-fractional numbers) #
+# float (i.e decimal fractions) #
+# #
+# Lines beginning with '#' or ';' are ignored as comments. #
+# The synonyms for boolean '0' and '1' are accepted as #
+# input, but always written as '0' or '1' when Tuxmath #
+# writes a config file to disk. #
+# The file is organized with the more important options #
+# first. #
+############################################################
+
+############################################################
+# #
+# Game Mode #
+# #
+# Parameter: play_through_list (Boolean) #
+# Default: 1 #
+# #
+# Tuxmath generates a list of math questions based on #
+# parameters set below. By default, (play_through_list = #
+# 1) the questions are asked in a random order. #
+# Correctly answered questions are removed from the list. #
+# If the player fails to correctly answer a question #
+# before it hits a city, the question will be reinserted #
+# into the list in a random location. #
+# The player wins if all questions are answered correctly #
+# before the cities are destroyed. #
+# #
+# Alternatively, Tuxmath can be played in 'Arcade Mode' #
+# by setting play_through_list = 0 (i.e. 'false'). If this #
+# is done, all questions will be randomly reinserted into #
+# the list whether or not they are answered correctly, and #
+# the game continues as long as there is a surviving city. #
+############################################################
+
+play_through_list = 1
+
+############################################################
+# #
+# Speed and Number of Comets #
+# #
+# Parameter: allow_speedup (boolean) #
+# Default: 1 #
+# Parameter: use_feedback (boolean) #
+# Default: 0 #
+# #
+# By default, the comets become faster and more numerous #
+# with each succeeding. The increase can be prevented #
+# by setting 'allow_speedup' to 0. #
+# #
+# If 'allow_speedup' is enabled, it is also possible to #
+# dynamically adjust the speed to the player's performance #
+# by setting 'use_feedback' to 1. This feature attempts #
+# to speed the game up if it is too easy for the player, #
+# and to slow it down if the player is having trouble. #
+# #
+# Many additional parameters under 'Advanced Options' can #
+# be used to fine-tune these behaviors. #
+############################################################
+
+allow_speedup = 1
+use_feedback = 0
+
+############################################################
+# #
+# Selecting Math Operations #
+# #
+# Parameter: addition_allowed (boolean) #
+# Default: 1 #
+# Parameter: subtraction_allowed (boolean) #
+# Default: 1 #
+# Parameter: multiplication_allowed (boolean) #
+# Default: 1 #
+# Parameter: division_allowed (boolean) #
+# Default: 1 #
+# #
+# These options enable questions for each of the four math #
+# operations. All are 1 (yes) by default. #
+############################################################
+
+addition_allowed = 1
+subtraction_allowed = 1
+multiplication_allowed = 1
+division_allowed = 1
+
+############################################################
+# #
+# Typing Practice #
+# #
+# Parameter: typing_practice_allowed (boolean) #
+# Default: 0 #
+# #
+# This option simply displays numbers for the youngest #
+# players to type in to learn the keyboard. #
+############################################################
+
+typing_practice_allowed = 0
+
+############################################################
+# #
+# Negative Number Support #
+# #
+# Parameter: allow_negatives (boolean) #
+# Default: 0 #
+# #
+# 'allow_negatives' allows or disallows use of negative #
+# numbers as both operands and answers. Default is 0 #
+# (no), which disallows questions like: #
+# 2 - 4 = ? #
+# Note: this option must be enabled in order to set the #
+# operand ranges to include negatives. If it is changed #
+# from 1 (yes) to 0 (no), any negative operand limits will #
+# be reset to 0. #
+############################################################
+
+allow_negatives = 0
+
+############################################################
+# #
+# Minimum and Maximum Values for Operand Ranges #
+# #
+# Parameters: (multiple - all integer type) #
+# #
+# Operand limits can be set to any integer up to the #
+# value of 'max_answer'. Tuxmath will generate questions #
+# for every value in the specified range. The maximum must #
+# be greater than or equal to the corresponding minimum #
+# for any questions to be generated for that operation. #
+# Defaults are 0 for minima and 12 for maxima. #
+# #
+# Note: 'allow_negatives' must be set to 1 for negative #
+# values to be accepted (see 'Advanced Options'). #
+############################################################
+
+# Addition operands:
+# augend + addend = sum
+
+min_augend = 0
+max_augend = 12
+min_addend = 0
+max_addend = 12
+
+# Subtraction operands:
+# minuend - subtrahend = difference
+
+min_minuend = 0
+max_minuend = 12
+min_subtrahend = 0
+max_subtrahend = 12
+
+# Multiplication operands:
+# multiplier * multiplicand = product
+
+min_multiplier = 0
+max_multiplier = 12
+min_multiplicand = 0
+max_multiplicand = 12
+
+# Division operands:
+# dividend/divisor = quotient
+
+min_divisor = 0
+max_divisor = 12
+min_quotient = 0
+max_quotient = 12
+
+# Typing practice:
+
+min_typing_num = 0
+max_typing_num = 12
+
+
+############################################################
+# #
+# General Game Options #
+# #
+# Parameter: use_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_sound (boolean) #
+# Default: 1 #
+# Parameter: menu_music (boolean) #
+# Default: 1 #
+# Parameter: fullscreen (boolean) #
+# Default: 1 #
+# Parameter: demo_mode (boolean) #
+# Default: 0 #
+# Parameter: use_keypad (boolean) #
+# Default: 0 #
+# Parameter: allow_pause (boolean) #
+# Default: 0 #
+# Parameter: use_igloos (boolean) #
+# Default: 1 #
+# Parameter: save_game_summary (boolean) #
+# Default: 1 #
+# #
+# These parameters control various aspects of Tuxmath's #
+# not directly related to the math question to be asked. #
+############################################################
+
+# Use game sounds and background music if possible:
+use_sound = 1
+menu_sound = 1
+menu_music = 1
+
+# Use fullscreen at 640x480 resolution instead of
+# 640x480 window. Change to 0 if SDL has trouble with
+# fullscreen on your system:
+fullscreen = 1
+
+# Display jpg images for background:
+use_bkgd = 1
+
+# Run Tuxmath as demo (i.e. without user input):
+demo_mode = 0
+
+# Display onscreen numeric keypad - allows mouse-only
+# gameplay or use with touchscreens:
+use_keypad = 0
+
+# Allow 'Pause' feature - should disable this
+# when competing for high scores!
+allow_pause = 1
+
+# Use newer graphics where Tux defends igloo-
+# dwelling penguins (for those who find the older
+# images of exploding cities to be distasteful)
+use_igloos = 1
+
+# By default, Tuxmath saves summaries of the last
+# ten games in the user's .tuxmath directory. Set
+# this parameter to '0' to turn off.
+save_summary = 1
+
+
+
+############################################################
+# #
+# Advanced Options #
+# #
+# The remaining settings further customize Tuxmath's #
+# behavior. Most users will probably not change them. #
+############################################################
+
+
+############################################################
+# #
+# Advanced Math Question List Options #
+# #
+# Parameter: question_copies (integer) #
+# Default: 1 #
+# Parameter: repeat_wrongs (boolean) #
+# Default: 1 #
+# Parameter: copies_repeated_wrongs (integer) #
+# Default: 1 #
+# Parameter: fraction_to_keep (float) #
+# Default: 1 #
+# #
+# These settings offer further control over the question #
+# list and are generally only useful if 'play_through_list'#
+# is enabled (as it is by default). #
+# #
+# 'question_copies' is the number of times each question #
+# is put into the initial list. It can be 1 to 10. #
+# #
+# 'repeat_wrongs' determines whether questions the player #
+# failed to answer correctly will be asked again. #
+# #
+# 'copies_repeated_wrongs' gives the number of times a #
+# missed question will reappear. This can be set anywhere #
+# from 1 to 10. #
+# #
+# 'fraction_to_keep' allows a list to be generated that #
+# consists of a randomly-selected subset of the questions #
+# fitting the criteria. The parameter is a float that #
+# must be greater than 0 and less than or equal to 1. For #
+# example, a value of 0.1 means 10% of the questions #
+# meeting the criteria will go into the list. #
+# #
+# The defaults for these values result in a 'mission' #
+# for Tux that is accomplished by answering all #
+# questions correctly with at least one surviving city. #
+############################################################
+
+question_copies = 1
+repeat_wrongs = 1
+copies_repeated_wrongs = 1
+fraction_to_keep = 1.00
+
+############################################################
+# #
+# Math Question Formats #
+# #
+# The 'format_<op>_answer_<place> options control #
+# generation of questions with the answer in different #
+# places in the equation. i.e.: #
+# #
+# format_add_answer_last: 2 + 2 = ? #
+# format_add_answer_first: ? + 2 = 4 #
+# format_add_answer_middle: 2 + ? = 4 #
+# #
+# By default, 'format_answer_first' is enabled and the #
+# other two formats are disabled. Note that the options #
+# are not mutually exclusive - the question list may #
+# contain questions with different formats. #
+# #
+# The formats are set independently for each of the four #
+# math operations. All parameters are type 'boolean'. #
+############################################################
+
+format_add_answer_last = 1
+format_add_answer_first = 0
+format_add_answer_middle = 0
+format_sub_answer_last = 1
+format_sub_answer_first = 0
+format_sub_answer_middle = 0
+format_mult_answer_last = 1
+format_mult_answer_first = 0
+format_mult_answer_middle = 0
+format_div_answer_last = 1
+format_div_answer_first = 0
+format_div_answer_middle = 0
+
+############################################################
+# #
+# Parameter: max_answer (integer) #
+# Default: 999 #
+# #
+# 'max_answer' is the largest absolute value allowed in #
+# any value in a question (not only the answer). Default #
+# is 999, which is as high as it can be set. It can be set #
+# lower to fine-tune the list for certain 'lessons'. #
+############################################################
+
+max_answer = 999
+
+############################################################
+# #
+# Parameter: max_questions (integer) #
+# Default: 5000 #
+# #
+# 'max_questions' is limit of the length of the question #
+# list. Default is 5000 - only severe taskmasters will #
+# need to raise it! #
+############################################################
+
+max_questions = 5000
+
+############################################################
+# #
+# Parameter: randomize (boolean) #
+# Default: 1 #
+# #
+# If 'randomize' selected, the list will be shuffled #
+# at the start of the game. Otherwise, the questions #
+# appear in the order the program generates them. #
+############################################################
+
+randomize = 1
+
+############################################################
+# #
+# Advanced Comet Speed Options #
+# #
+# Parameter: starting_comets (integer) #
+# Default: 2 #
+# Parameter: extra_comets_per_wave (integer) #
+# Default: 2 #
+# Parameter: max_comets (integer) #
+# Default: 10 #
+# Parameter: speed (float) #
+# Default: 1.00 #
+# Parameter: max_speed (float) #
+# Default: 10.00 #
+# Parameter: speedup_factor (float) #
+# Default: 1.20 #
+# Parameter: bonus_comet_interval (integer) #
+# Default: 10 #
+# Parameter: bonus_speed_ratio (float) #
+# Default: 1.50 #
+# Parameter: slow_after_wrong (bool) #
+# Default: 0 #
+# #
+# (for 'feedback' speed control system): #
+# Parameter: danger_level (float) #
+# Default: 0.35 #
+# Parameter: danger_level_speedup (float) #
+# Default: 1.1 #
+# Parameter: danger_level_max (float) #
+# Default: 0.9 #
+# Parameter: city_explode_handicap (float) #
+# Default: 0 #
+# #
+# The comet number parameters and initial/max speed apply #
+# whether or not the feedback system is activated. #
+# #
+# 'speedup_factor' and 'slow_after_wrong' only apply if #
+# feedback is not activated. #
+# #
+# The 'danger_level_*' and 'city_explode_handicap' #
+# parameters are only used if feedback is activated. #
+############################################################
+
+
+# Number of comets for first wave. Default is 2.
+starting_comets = 2
+
+# Comets to add for each successive wave. Default is 2.
+extra_comets_per_wave = 2
+
+# Maximum number of comets. Default is 10.
+max_comets = 10
+
+# Starting comet speed. Default is 1.
+speed = 1.00
+
+# Maximum speed. Default is 10.
+max_speed = 10.00
+
+# 'speedup_factor': If feedback is not used but
+# 'allow_speedup' is enabled, the comet speed will be
+# multiplied by this factor with each new wave.
+# Values from 0.5 to 2 are accepted (note that a
+# value less than 1 causes the comets to be
+# slower with each wave!).
+# Default is 1.2 (i.e. 20 percent increase per wave)
+
+speedup_factor = 1.20
+
+# 'bonus_comet_interval' controls how frequently
+# special comets appear that cause a igloo to be
+# rebuilt if answered correctly. The bonus comet
+# appears after this number of regular comets (a
+# value of 0 disables bonus comets). Default is 10.
+bonus_comet_interval = 10
+
+# 'bonus_speed_ratio' determines how fast the
+# bonus comets fall relative to the regular comets.
+# Range 1.0 - 3.0, default 1.5:
+bonus_speed_ratio = 1.50
+
+# 'slow_after_wrong' tells Tuxmath to go back to
+# starting speed and number of comets if the player misses
+# a question. Useful for smaller kids. Default is 0.
+
+slow_after_wrong = 0
+
+# (Feedback) Set the desired danger level.
+# 0 = too safe, comets typically exploded at the very top
+# 1 = too dangerous, comets typically exploded as they
+# hit cities. Set it somewhere between these extremes. As
+# a guideline, early elementary kids might prefer
+# 0.2-0.3, older kids at around 0.4-0.6. Default 0.35.
+
+danger_level = 0.35
+
+# (Feedback) Set danger level speedup.
+# The margin of safety will decrease by this factor each
+# wave. Default 1.1. Note 1 = no increase in danger level.
+
+danger_level_speedup = 1.10
+
+# (Feedback) Set the maximum danger level.
+# Default 0.9.
+danger_level_max = 0.90
+
+# (Feedback) Set the handicap for hitting cities.
+# When bigger than 0, this causes the game to slow down
+# by an extra amount after a wave in which one or more
+# cities get hit. Note that this is similar to
+# 'slow_after_wrong', but allows for more gradual
+# changes. Default 0 (no extra handicap).
+
+city_explode_handicap = 0.00
+
+
+############################################################
+# #
+# Restricting User Settings #
+# #
+# Parameter: per_user_config (boolean) #
+# Default: 1 #
+# #
+# 'per_user_config' determines whether Tuxmath will look #
+# in the user's home directory for settings. Default is 1 #
+# (yes). If set to 0, the program will ignore the user's #
+# .tuxmath file and use the the global settings in the #
+# installation-wide config file. #
+# #
+# This setting cannot be changed by an ordinary user, i.e. #
+# it is ignored unless the config file is Tuxmath's global #
+# config file. Thus, users cannot 'lock themselves out' #
+# by accidentally setting this to 0. #
+############################################################
+
+per_user_config = 1
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644
index 0000000..3373c61
--- /dev/null
+++ b/po/CMakeLists.txt
@@ -0,0 +1,28 @@
+# The following lists the translations that require SDL_Pango to
+# display properly; if we don't have SDL_Pango support, the text is
+# blank, which is worse than displaying the English. So if we don't
+# have Pango, we want to exclude those translations.
+set(TUXMATH_PO_REQUIRES_PANGO
+ ar.po
+ he.po
+ zh*.po
+ ru.po
+ ja.po
+)
+
+# Some translations may be so complete that they should be excluded
+# for now. List them here.
+set (TUXMATH_EXCLUDE_PO
+ fi.po
+)
+
+file (GLOB PO_FILES *.po)
+file (GLOB PANGO_FILES ${TUXMATH_PO_REQUIRES_PANGO})
+file (GLOB EXCLUDE_FILES ${TUXMATH_EXCLUDE_PO})
+
+list(REMOVE_ITEM PO_FILES ${EXCLUDE_FILES})
+if(NOT SDLPANGO_FOUND)
+ list(REMOVE_ITEM PO_FILES ${PANGO_FILES})
+endif(NOT SDLPANGO_FOUND)
+
+add_translations (tuxmath ${PO_FILES})
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..92e27d1
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1,12 @@
+2007-10-15 gettextize <bug-gnu-gettext at gnu.org>
+
+ * Makefile.in.in: New file, from gettext-0.16.1.
+ * boldquot.sed: New file, from gettext-0.16.1.
+ * en at boldquot.header: New file, from gettext-0.16.1.
+ * en at quot.header: New file, from gettext-0.16.1.
+ * insert-header.sin: New file, from gettext-0.16.1.
+ * quot.sed: New file, from gettext-0.16.1.
+ * remove-potcdate.sin: New file, from gettext-0.16.1.
+ * Rules-quot: New file, from gettext-0.16.1.
+ * POTFILES.in: New file.
+
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 0000000..e60a207
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,33 @@
+# Set of available languages.
+ar
+ast
+cs
+de
+en at quot
+en at boldquot
+en_GB
+es
+fi
+fr
+ga
+he
+hu
+it
+ja
+ku
+nb
+nl
+nn
+oc
+pl
+pt
+pt_BR
+ru
+sk
+sl
+sv
+tr
+vi
+zam
+zh_CN
+
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..fecf500
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,429 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper at gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.17
+GETTEXT_MACRO_VERSION = 0.17
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SHELL = /bin/sh
+ at SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: check-macro-version all- at USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# Ensure that the gettext macros and this Makefile.in.in are in sync.
+check-macro-version:
+ @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ exit 1; \
+ }
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \
+ package_gnu='GNU '; \
+ else \
+ package_gnu=''; \
+ fi; \
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ *) \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --package-name="$${package_gnu}@PACKAGE@" \
+ --package-version='@VERSION@' \
+ --msgid-bugs-address="$$msgid_bugs_address" \
+ ;; \
+ esac
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data- at USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ $(mkdir_p) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data- at USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkdir_p) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data- at USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir) || exit 1; \
+ else \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && $(SHELL) ./config.status $(subdir)/$@.in po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 0000000..139b388
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER =
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = tuxmath-devel at lists.sourceforge.net
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/Makevars.template b/po/Makevars.template
new file mode 100644
index 0000000..32692ab
--- /dev/null
+++ b/po/Makevars.template
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..53be6b7
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,14 @@
+# List of source files which contain translatable strings.
+src/campaign.h
+src/campaign.c
+src/credits.c
+src/factoroids.c
+src/game.c
+src/highscore.c
+src/menu.c
+src/multiplayer.c
+src/server.c
+src/titlescreen.c
+src/tuxmath.c
+data/missions/lessons/descr_lessons
+data/menus/menu_strings
\ No newline at end of file
diff --git a/po/Rules-quot b/po/Rules-quot
new file mode 100644
index 0000000..9c2a995
--- /dev/null
+++ b/po/Rules-quot
@@ -0,0 +1,47 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en at quot.header en at boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en at quot.po-create:
+ $(MAKE) en at quot.po-update
+en at boldquot.po-create:
+ $(MAKE) en at boldquot.po-update
+
+en at quot.po-update: en at quot.po-update-en
+en at boldquot.po-update: en at boldquot.po-update-en
+
+.insert-header.po-update-en:
+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ ll=`echo $$lang | sed -e 's/@.*//'`; \
+ LC_ALL=C; export LC_ALL; \
+ cd $(srcdir); \
+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "creation of $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+en at quot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en at quot.header/g' $(srcdir)/insert-header.sin > en at quot.insert-header
+
+en at boldquot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en at boldquot.header/g' $(srcdir)/insert-header.sin > en at boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+ rm -f *.insert-header
diff --git a/po/ar.gmo b/po/ar.gmo
new file mode 100644
index 0000000..750e24e
Binary files /dev/null and b/po/ar.gmo differ
diff --git a/po/ar.po b/po/ar.po
new file mode 100644
index 0000000..05c976c
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,862 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-02-15 03:00+0100\n"
+"Last-Translator: Caroline Ford <caroline.ford.work at googlemail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Arabic\n"
+"X-Poedit-Country: UNITED KINGDOM\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Ù
رØبا بÙÙ
ÙÙ tuxmath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Ù
ÙÙ
تÙÙ
Ù٠اÙÙاذ"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "اÙÙاخ اÙبطارÙÙ Ù
Ù"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "اÙÙ
Ø°Ùبات اÙÙ
تساÙطة."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Ø£ÙÙ٠اÙÙ
Ø°Ùب بÙتابة"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "اÙجÙاب عÙÙ Ù
Ø´ÙÙØ© اÙرÙاضÙات"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "ÙاÙضغط عÙ٠زر اﻷدخا٠ا٠اÙÙ
ساÙØ©"
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "جربÙا اÙØ¢Ù!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "رÙ
Ù٠جÙدÙ!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "اذا اصÙب ÙÙØ® اﻷسÙÙÙ
Ù"
+
+#: src/game.c:1151
+#, fuzzy
+msgid "it melts. But don't worry: the"
+msgstr "ÙسÙذاب ÙÙÙÙ Ùا تÙÙÙ"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "اÙبطرÙ٠بخÙر!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "اﻷ٠شاÙد Ù
ا ÙØدث :"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(اÙصØاÙØ© Ù
ÙØªØ§Ø Ø§Ùبدأ)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "اشعار اÙاجابÙ"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "اÙ
ا اذا صدÙ
Ù
رة أخرÙ"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "Ùأ٠اÙبطرÙ٠سÙغادر."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(اضغط ا٠Ù
ÙØªØ§Ø Ø¹ÙدÙ
ا تستعد)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "ÙÙ
ÙÙ٠اصÙØ§Ø Ø§ÙÙاخ اÙاسÙÙÙ
Ù"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "بÙÙÙ Ù
ÙاÙا٠اÙÙ
Ø°Ùبات."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "اÙØ·Ù٠اÙØ¢Ù!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "رائع!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "ÙÙ
ÙÙ٠اÙخرÙج ا٠ÙÙت باÙضغط عÙÙ"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'ESC' أ٠'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "Ù٠اÙرÙ٠اÙاÙÙ
٠اÙعÙÙÙ."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "اÙعÙÙا اﻷÙ, Ø«Ù
ابدأ اÙÙعب !"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Ùاعة اÙØ´ÙرÙ"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Ù
بتدئ"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "اÙÙØ´ÙÙÙ"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Øارس"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "اس"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath برÙاÙ
ج Øر Ù
ÙتÙØ Ø§ÙÙ
صدر"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "ÙÙ
ÙÙ٠اÙÙ
ساعدة بجعÙÙا اÙض٠بإرسا٠ا٠Ù
شاÙ٠تÙاجÙا,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net ÙاÙØ´ اÙÙ
ستÙب٠عÙÙ "
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Øرر Ù
ÙÙ 'اÙØ®Ùارات' ÙÙ Ù
جÙد٠اÙاÙتراضÙ"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "ÙØ¥Ùشاء Ùعبة Ù
خصصة"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "اضغط ÙÙÙ Ù
ÙØªØ§Ø Ø£Ù Ø§ÙÙر اÙÙ
اÙس Ùبدء اÙÙعبة."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Readme.txt اÙظر ÙÙ
زÙد Ù
٠اÙÙ
عÙÙÙ
ات"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(اضغط ا٠Ù
ÙØªØ§Ø Ø¹ÙدÙ
ا تستعد)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "! اÙعÙ
Ù ÙتÙدÙ
"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Ùذ٠اÙخاصÙØ© ÙÙست جاÙزة Øت٠اÙØ¢Ù"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "ÙاÙØ´ Ù
ستÙب٠اÙÙعبة ÙÙ"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "Tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Ù
ساعدة"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "عدد اÙطباعÙ"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "جÙ
ع : Ù
Ù 1 اÙÙ 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "ØÙ
ع: Ù
Ù 1 اÙÙ 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "جÙ
ع : اÙÙ
باÙغ اÙÙ 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "ØÙ
ع : اÙÙ
باÙغ اÙÙ 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "جÙ
ع : اÙÙ
باÙغ اÙÙ 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "جÙ
ع : رÙÙ
Ù
ÙÙÙ Ù
٠رÙÙ
ÙÙ "
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "جÙ
ع : رÙÙ
Ù
ÙÙÙد"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "طرØ: ارÙاÙ
Ù
Ù 0 اÙÙ 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "طرØ: ارÙاÙ
Ù
Ù 0 اÙÙ 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "اÙØ·Ø±Ø : رÙÙ
Ù
ÙÙÙ Ù
٠رÙÙ
ÙÙ"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Ù
راجعة عÙ٠اÙجÙ
ع ÙÙطرØ"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "ضرب : 0 اÙÙ 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Ù
ضاعÙات 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Ù
Ù 3 إضعاÙ"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Ù
ضاعÙات اÙعدد 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Ù
ضاعÙات اÙعدد 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "اÙضرب: 0 اÙÙ 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Ù
ضاعÙات 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Ù
ضاعÙات 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "اÙضرب : 0 اÙÙ 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Ù
ضاعÙات اÙعدد 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Ù
ضاعÙات اÙعدد 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Ù
ضاعÙات اÙعدد 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "ضرب: 0 اÙÙ 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Ù
ضاعÙات اﻷعداد 11 Ù 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "ضرب : Ù
Ù 0 اÙÙ 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Ù
ضاعÙات اÙأعداد 13Ù 14Ù 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "ضرب: Ù
Ù 0 اÙÙ 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "ضرب : اعداد Ù
ÙÙÙدة"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "ÙسÙ
Ø© عÙÙ 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "3 ÙسÙ
Ø© عÙÙ"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "ÙسÙ
Ø© عÙÙ 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "ÙسÙ
Ø© عÙÙ 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "ÙسÙ
Ø©: 1 اÙÙ 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "ÙسÙ
Ø© عÙÙ 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "ÙسÙ
Ø© عÙÙ 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "ÙسÙ
Ø© عÙÙ 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "9 ÙسÙ
Ø© عÙÙ"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "ÙسÙ
Ø© عÙÙ 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "ÙسÙ
Ø© : Ù
Ù 1 اÙÙ 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "ÙسÙ
Ø© عÙÙ 11 Ù 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "ÙسÙ
Ø© : Ù
Ù 1 اÙÙ 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "ÙسÙ
Ø© عÙÙ 12 Ù 13 Ù 14 Ù 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "ÙسÙ
Ø© : Ù
Ù 1 اÙÙ 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Ù
راجعة اÙضرب ÙاÙÙسÙ
Ø©"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Ùتابة اÙأرÙاÙ
اÙسÙبÙÙ"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "اÙØ·Ø±Ø : ارÙاÙ
ساÙب"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "اضاÙØ© ارÙاÙ
ساÙبة اÙ٠ارÙاÙ
Ù
Ùجبة"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "اضاÙØ© ارÙاÙ
ساÙب اÙ٠ارÙاÙ
Ù
Ùجب"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Ø·Ø±Ø Ø§Ø±ÙاÙ
ساÙب Ù
٠ارÙاÙ
Ù
Ùجب"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Ø·Ø±Ø Ø§Ø±ÙاÙ
ساÙب Ù
٠ارÙاÙ
Ù
Ùجب"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "اضاÙØ© ارÙاÙ
ساÙب اÙ٠ارÙاÙ
Ù
Ùجب"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Ø·Ø±Ø Ø§Ø±ÙاÙ
ساÙب Ù
٠ارÙاÙ
Ù
Ùجب"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Ù
راجعة اÙارÙاÙ
اÙساÙبة ÙاÙÙ
Ùجبة"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "ضرب ÙÙسÙ
Ø© اﻷرÙاÙ
اÙساÙبة"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "ضرب اÙأرÙاÙ
اÙÙ
ÙجÙØ© ÙاÙساÙبة "
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "ÙسÙ
Ø© اÙأرÙاÙ
اÙÙ
ÙجÙØ© ÙاÙساÙبة"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "ÙرÙ٠اÙعÙ
Ù"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "دÙÙ
Ù"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "اÙÙائÙ
Ø© اÙرئÙسÙØ©"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "اÙادÙÙ
Ù٠اÙتدرÙب"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Ù
زÙد Ù
٠اÙØ®Ùارات"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Ùعب٠تÙÙÙدÙØ©"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Ùعبة Ù
خصصة"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Ù
عÙÙÙ
ات اÙÙ
شرÙع"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "خرÙج"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "أ٠ا٠Ù
ÙترØات Ø£Ù Ùتابة Ø£ÙÙاد"
+
+#~ msgid "Main menu"
+#~ msgstr "اÙÙائÙ
Ø© اÙرئÙسÙØ©"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "اÙÙاخ اÙبطارÙÙ Ù
Ù"
diff --git a/po/ast.po b/po/ast.po
new file mode 100644
index 0000000..d1638ec
--- /dev/null
+++ b/po/ast.po
@@ -0,0 +1,893 @@
+# ASTURIAN TRANSLATION FOR TUX MATH.
+# This file is distributed under the same license as the tuxmath package.
+# XANDRU ARMESTO <xandru at softastur.org>, 2009.
+# Xandru Armesto <xandru at softastur.org>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath 1.7.3\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2010-03-06 08:41+0200\n"
+"Last-Translator: Xandru Armesto <xandru at softastur.org>\n"
+"Language-Team: Asturian Team alministradores at softastur.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ast\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Virtaal 0.5.2\n"
+"X-Poedit-Language: Asturian\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "¡Norabona! ¡Ganasti!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Ronda"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] pa saltar"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Misión 1: Cuidáu Cadete"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "¡¡Préstame tanto que vinieres!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"¡Los pingüinos necesÃtente! Tán cayendo cometes dende'l cielu y derriten los "
+"iglús de los pingüinos. Pa salvar les sos cases, necesitamos qu'atopes el "
+"códigu secretu pa esborrar cada cometa."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "¡Failo lo meyor que puedas!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Misión 2: Esplorador Intelixente"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"¡Bien fecho! Salvasti abondes cases, ascedÃmoste a Esplorador. Los "
+"Esploradores son bonos vixilando por si hai problemes..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...¡como'l d'agora mesmo! ¡Vinieron los Birlladores y tán mandando cometes "
+"nuevos y más complicaos escontra los pingüinos!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "¡Pero tu pues salvalos!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Misión 3: Guarda Real"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"¡Llográstilo otra vuelta! L'Emperador PingüÃn escoyóte pa ser el xefe del "
+"equipu de Guardes qu'ayuden a la ciudá. Tamos unviándote ellà agora mesmo..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...¡oh, non! ¡L'Emperador ta siendo atacáu por una triba nueva de cometes: "
+"los problemes multiplÃquense! Pa derrotalos vas necesitar grandes "
+"habilidaes. Creyemos que pues facelo. ¡Garra los Guardes y ayuda a salvar la "
+"ciudá!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Misión 4: As Imperial"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"¡Llográstilo! L'Emperador quier date les gracies en persona. Tamos "
+"mandándote al palaciu de xelu pa recibir un gran honor: ¡vas convertite n'As "
+"Imperial!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"¡Pero, xusto en metá de la ceremonia, un nuevu ataque dende la tierra de les "
+"Divisiones entama!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "¡Agora nun hai tiempu pa reposar, la ciudá necesÃtate!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Misión Final: Comando Computador"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Los cientÃficos pingüinos averiguaron que tolos ataques vienen d'una base "
+"secreta, y necesite que vayas ellà pa la batalla final. Amás, ellos quieren "
+"date una pista: primero fae les multiplicaciones y divisiones y depués fae "
+"les sumes y restes."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "¡Espero que'l conseyu furrule!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "¡Esta ye la tuya! ¡Pues acabar con esos ataques pa siempre, Comando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "¡Téntalo otra vuelta!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Misión finada. ¡La galaxa ta segura!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, OF MATH COMMAND"
+
+#: src/credits.c:36
+#, fuzzy
+msgid "COPYRIGHT 2001-2010"
+msgstr "COPYRIGHT 2001-2009"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PARTE DEL PROYEUTU 'TUX4KIDS'"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DISEÃÃU POR"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "PROGRAMADORES PRINCIPALES"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "CÃDIGU ADICIONAL"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "DISEÃU ARTÃSTICU PRINCIPAL"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "DISEÃU ARTÃSTICU ADICIONAL"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "EFEUTOS DE SONÃU"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MÃSICA"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "EMPAQUETADORES"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "EL PENGÃÃN 'TUX' CREÃU POR"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "PROBADORES"
+
+#: src/credits.c:103
+#, fuzzy
+msgid "USER WEBSITE"
+msgstr "PÃXINA WEB"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath ye Software Llibre llicenciáu embaxo la Llicencia Pública Xeneral "
+"(GPL) de GNU. Como tal, tán especialmente garantizaos los drechos que davezu "
+"nieguen los propietarios del software a los usuarios."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"Esos drechos incluyen la llibertá d'estudiar, copiar, camudar y esparder el "
+"programa"
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"Una copia completa de la GPL ta incluyida na documentación del programa."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+"Pa más información no tocante a Software Llibre y la llicencia GPL de GNU, "
+"visita:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDES: pa ganar tienes que destruyir tolos asteroides."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Usa les fleches de cursos pa xirar o avanza. Apunta a un asteroide,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "escribi ún de los sos factores, y calca \"espaciu\" o \"intro\""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+"pa dividilu en factores. ¡Les roques con númberos primos van ser destruyÃes!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACCIONES: pa ganar tienes que destruyir tolos asteroides"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"escribi un númberu que pueda simplificar la fracción y calca \"espaciu\" o "
+"\"intro\""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"pa dividilu. ¡Destrúi les fracciones que nun puen ser más simplificaes con "
+"un disparu namás!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "¡Bienllegáu a TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "La to misión ye salvar los"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "iglús de los pingüinos de los"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "cometes que caen."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Para un cometa escribiendo"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "la rempuesta a la operación matemática"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "y calcando 'espaciu' o 'intro'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "¡Téntalo agora!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "¡Bon disparu!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Si un iglú ye golpeáu por un cometa,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "ésti queda dañáu. Pero nun t'esmolezas:"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "¡los pingüinos van tar bien!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Namás mira lo que pasa:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Calca una tecla pa entamar)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Observa la rempuesta"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Si lu golpeen otra vuelta,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr " el pingüÃn marcha."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Calca una tecla cuando teas preparáu)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Pues iguar los iglúes"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "parando los cometes con bonus."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "¡Esbórralu agora!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "¡Bon trabayu!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Colar en cualisquier momentu calcando"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'Esc' o calcando la 'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "de la esquina superior drecha."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "¡Fecho, agora a xugar!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Salón de la Fama"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadete Espacial"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Esplorador"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Guarda"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Comando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factores"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fracciones"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "¡Entrasti nel Salón de la Fama!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Pon el to Nome:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "¡TuxMath ye llibre y de códigu abiertu!"
+
+#: src/menu.c:376
+msgid "You can help make it better."
+msgstr "Pues ayudar a ameyoralu."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr "¡Pues contribuyir con suxerencies, trabayu asrtÃsticu y códigu!"
+
+#: src/menu.c:378
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Alderica no que cinca a TuxMath en tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "¡Edita'l ficheru 'options' nel to direutoriu del home"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "pa crear un xuegu personalizáu!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Calca una tecla o nel mur pa entamar el xuegu."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Llei README.txt pa más información"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "¿Cuántos neños van xugar?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Ente 2 y 4 xugadores)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr "El sirvidor ta tovÃa corriendo"
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr "Mete'l Nome del Sirvidor:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr "(50 carauteres máximo)"
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+"Calca o prime una tecla pa seleicionar un ficheru de lleición del sirvidor"
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr "Nome del Sirvidor:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr "Llección Escoyida:"
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr "Siéntolo, esta versión nun tien sofitu de rede"
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr "Siéntolo, esta versión nun tien sofitu de rede\n"
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr "Detectando sirvidores"
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr "Espera un segundu"
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr "Conectáu col sirvidor: %s"
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Mete'l to nome:"
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr "Calca nel mur cuando teas preparáu"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr "Esperando por otros xugadores"
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr "Siéntolo, el xuegu yá ta en marcha."
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr "Siéntolo, el xuegu yá ta en marcha..\n"
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr "Siéntolo, nun pudi encontrar nengún sirvidor."
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr "Siéntolo, nun pudi encontrar nengún sirvidor.\n"
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr "Entós %s\n"
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "¿Quién xuega primero?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "¿Quién xuega depués?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "¿Cuántes rondes vais xugar?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Mete un númberu"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "¡Trabayu en marcha!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Esta función nun ta preparada entá"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Alderica al rodiu del futuru de TuxMath en"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Aida"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Escribiendo Númberos"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Sumes de 1 a 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Sumes de 0 a 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Sumes hasta 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Sumes hasta 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Sumes hasta 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Sumes de dos dÃxitos"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Sumes de tolos númberos"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Restes de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Restes de 0 a 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Restes: Númberos de Dos DÃxitos"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Repasu de Sumes y Restes"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplicación de 0 a 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Múltiplos de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Múltiplos de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Múltiplos de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Múltiplos de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplicación de 0 a 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Múltiplos de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Múltiplos de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplicación de 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Múltiplos de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Múltiplos de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Múltiplos de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplicación de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Múltiplos de 11 y 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplicación de 0 a 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Múltiplos de 13, 14 y 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplicación de 0 a 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplicación de tolos númberos"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "División por 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "División por 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "División por 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "División por 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "División de 1 a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "División por 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "División por 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "División por 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "División por 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "División por 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "División de 1 a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "División por 11 y 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "División de 1 a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "División por 13, 14 y 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "División de 1 a 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Repasu de Multiplicaciones y Divisiones"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Escribiendo Númberos Negativos"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Restes: resultaos negativos"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Sumes de negativos a positivos"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Sumes de positivos a negativos"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Restanso negativos de positivos"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Restando positivos de negativos"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Sumando negativos a negativos"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Restando negativos de negativos"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Repasu de Númberos Positivos y Negativos"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplicación y División de Negativos"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplicación de Positivos y Negativos"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "División de Positivos y Negativos"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Créditos"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Eliminación"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "¡Factoroides!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr "Xunise a una partida"
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menú Principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Misiones de Math Command"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Academia d'Entrenamientu de Math Command"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Más Opciones"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr "Xuegu en Rede"
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Xugar solo"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Xuegu Arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Xuegu Personalizáu"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Xugar con Collacios"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Información del Proyeutu"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Colar"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr "Arrancar Sirvidor"
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Puntuaciones"
+
+#~ msgid "Select lesson file for server to use"
+#~ msgstr "Escueyi ficheru de llección pa usar nel sirvidor"
diff --git a/po/boldquot.sed b/po/boldquot.sed
new file mode 100644
index 0000000..4b937aa
--- /dev/null
+++ b/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/â\1â/g
+s/`\([^`']*\)'/â\1â/g
+s/ '\([^`']*\)' / â\1â /g
+s/ '\([^`']*\)'$/ â\1â/g
+s/^'\([^`']*\)' /â\1â /g
+s/ââ/""/g
+s/â/â[1m/g
+s/â/[0mâ/g
+s/â/â[1m/g
+s/â/[0mâ/g
diff --git a/po/cs.gmo b/po/cs.gmo
new file mode 100644
index 0000000..d3f4fca
Binary files /dev/null and b/po/cs.gmo differ
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 0000000..cdcc416
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,861 @@
+# translation of tuxmath.po to czech
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# JardaK <krejci at zstenis.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2007-11-12 20:54+0100\n"
+"Last-Translator: JardaK <krejci at zstenis.com>\n"
+"Language-Team: czech <cs at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "SÃÅ slávy"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "NováÄek"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "PrůzkumnÃk"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "StÅelec"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Borec"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath je svobodný software!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "I ty ho můžeÅ¡ vylepÅ¡it, když oznámÃÅ¡ chyby, "
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Diskutuj o budoucnosti na tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Uprav soubor «options » ve své domovské složce,"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "abys mohl vytvoÅit vlastnà hru!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "ZmáÄkni klávesu nebo klikni tlaÄÃtkem myÅ¡i, abys zaÄal hru"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Pokud chceÅ¡ vÃce informacÃ, podÃvej se na README.txt"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Ve výstavbÄ!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Tato vlastnost jeÅ¡tÄ nefunguje"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskutuj o budoucnosti TuxMath na"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "NápovÄda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Psanà ÄÃslic"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "SÄÃtánÃ: Od 1 do 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "SÄÃtánÃ: Od 0 do 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "SÄÃtánÃ: SouÄty do 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "SÄÃtánÃ: SouÄty do 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "SÄÃtánÃ: SouÄty do 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "SÄÃtánÃ: Dvouciferná ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "SÄÃtánÃ: Vynechaná ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "OdÄÃtánÃ: Od 0 do 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "OdÄÃtánÃ: Od 0 do 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "OdÄÃtánÃ: Dvojciferná ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "SÄÃtánà a odÄÃtánÃ: OpakovánÃ"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "NásobenÃ: Od 0 do 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Násobilka 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Násobilka 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Násobilka 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Násobilka 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "NásobenÃ: Od 0 do 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Násobilka 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Násobilka 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "NásobenÃ: od 0 do 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Násobilka 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Násobilka 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Násobilka 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "NásobenÃ: Od 0 do 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Násobilka 10 a 11"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "NásobenÃ: Od 0 do 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Násobilka 13, 14 a 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "NásobenÃ: Od 0 do 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "NásobenÃ: Vynechaná ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "DÄlenà 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "DÄlenà 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "DÄlenà 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "DÄlenà 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "DÄlenà 1 až 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "DÄlenà 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "DÄlenà 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "DÄlenà 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "DÄlenà 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "DÄlenà 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "DÄlenà 1 až 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "DÄlenà 11 a 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "DÄlenà 1 až 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "DÄlenà 13, 14 a 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "DÄlenà 1 až 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Násobenà a dÄlenÃ: OpakovánÃ"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Psanà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "OdÄÃtánÃ: VÄetnÄ záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "SÄÃtánà a odÄÃtánà kladných a záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "SÄÃtánà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "OdÄÃtánà záporných od kladných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "OdÄÃtánà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "SÄÃtánà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "OdÄÃtánà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Kladná a záporná ÄÃsla: OpakovánÃ"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Násobenà a dÄlenà záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Násobenà kladných a záporných ÄÃsel"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "DÄlenà kladných a záporných ÄÃsel"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "PodÄkovánÃ"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hlavnà menu"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Akademie vesmÃrné matematiky"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "VÃce možnostÃ"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Hra"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Vlastnà hra"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Info o projektu"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "UkonÄit"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "navrhneÅ¡ vylepÅ¡enà nebo pÅidáš svůj kód"
+
+#~ msgid "Main menu"
+#~ msgstr "Hlavnà menu"
diff --git a/po/de.gmo b/po/de.gmo
new file mode 100644
index 0000000..3847d56
Binary files /dev/null and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..6174a49
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,865 @@
+# translation of TuxMath to Deutsch
+# This file is put in the public domain.
+#
+# Lars Vogdt <lars at linux-schulserver.de>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: de\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-05-02 16:08+0200\n"
+"Last-Translator: Lars Vogdt <lars at linux-schulserver.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Willkommen bei TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Deine Mission besteht darin, "
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "die Iglus der Pinguine vor den "
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "herabfallenden Kometen zu schützen."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stoppe einen Kometen, indem du "
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "die Antwort auf das mathematische Problem"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "eingibst und die \"Leertaste\" oder \"Enter\" drückst. "
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Versuch es jetzt!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Guter SchuÃ!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Wenn ein Iglu von einem Kometen getroffen wird, "
+
+#: src/game.c:1151
+#, fuzzy
+msgid "it melts. But don't worry: the"
+msgstr "schmilzt es. Aber keine Angst, dem "
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "Pingiun geht es gut!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Sie einfach zu was passiert "
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Eine Taste zum starten drücken)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Beachte die Antwort"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "wenn es noch einmal getroffen wird, "
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "wird der Pinguin verschwinden."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Wenn fertig, bitte Taste drücken)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Du kannst die kaputten Iglus reparieren"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "wenn du Bonus-Kometen aufhälst."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Knall ihn jetzt ab!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Super Arbeit!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Beende das Spiel zu jeder Zeit durch Drücken von "
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'Esc' oder durch klicken auf das 'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "in der oberen rechten Ecke."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Tu es jetzt - und dann spiele!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Ruhmeshalle"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Raumkadett"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Aufklärer"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Jäger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ass"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath ist frei und OpenSource!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Du kannst bei der Verbesserung helfen, wenn du Probleme "
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+"Diskutiere die Zukunft von TuxMath auf tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Editiere die 'options' Datei in deinem Benutzerverzeichnis"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "um ein angepasstes Spiel zu erzeugen."
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Drücke eine Taste oder klicke mit der Maus um ein Spiel zu starten"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Lies die README.txt Datei für weitere Infrormationen"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Wenn fertig, bitte Taste drücken)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "In Arbeit!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Dieser Bereich ist noch nicht fertig."
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskutiere über die Zukunft von TuxMath auf "
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Hilfe"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Zahlen eingeben"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition: 1 bis 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition: 0 bis 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Summen bis 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Summen bis 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: SUmmen bis 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Zweistellige Zahlen"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Fehlende Zahlen"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraktion: 0 bis 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraktion: 0 bis 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraktion: Zweistellige Zahlen"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Bericht Addition und Subtraktion"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplikation 0 bis 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Vielfache von 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Vielfache von 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Vielfache von 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Vielfache von 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplikation: 0 bis 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Vielfache von 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Vielfache von 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplikation: 0 bis 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Vielfache von 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Vielfache von 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Vielfache von 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplikation: 0 bis 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Vielfache von 11 und 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplikation: 0 bis 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Vielfache von 13, 14 und 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplikation: 0 bis 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplikation: fehlende Zahlen"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division durch 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division durch 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division durch 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division durch 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 bis 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division durch 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division durch 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division durch 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division durch 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division durch 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 bis 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division durch 11 und 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 bis 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division durch 13, 14 und 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 bis 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Bericht Multiplikation und Division"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Negative Zahlen eingeben"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraktion: Negative Ergebnisse"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Negative Zahlen zu positiven hinzufügen"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Negative Zahlen zu negativen hinzufügen"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Negative Zahlen von positven subtrahieren"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Negative Zahlen von negativen abziehen"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Negative Zahlen zu negativen hinzufügen"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Negative Zahlen von negativen abziehen"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Bericht: Negative und positive Zahlen"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplikation und Division von negativen Zahlen"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplikation von positiven und negativen Zahlen"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division von positiven und negativen Zahlen"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Abspann"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstration"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hauptmenü"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Math Command Trainings-Akademie"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Weitere Optionen"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Spiele Arcade Spiel"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Spiele angepasstes Spiel"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Projekt Information"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Ende"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "meldest, Wünsche auÃerst oder Programmcode beisteuerst."
+
+#~ msgid "Main menu"
+#~ msgstr "Hauptmenü"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "die Iglus der Pinguine vor den "
diff --git a/po/en at boldquot.gmo b/po/en at boldquot.gmo
new file mode 100644
index 0000000..e9d6f9d
Binary files /dev/null and b/po/en at boldquot.gmo differ
diff --git a/po/en at boldquot.header b/po/en at boldquot.header
new file mode 100644
index 0000000..fedb6a0
--- /dev/null
+++ b/po/en at boldquot.header
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/po/en at boldquot.po b/po/en at boldquot.po
new file mode 100644
index 0000000..bef90db
--- /dev/null
+++ b/po/en at boldquot.po
@@ -0,0 +1,903 @@
+# English translations for Tux Of Math Command package.
+# This file is put in the public domain.
+# Automatically generated, 2010.
+#
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath 1.8.0\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2010-05-07 17:05-0500\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Congratulations! You win!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Round"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] to skip"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Mission One: Careful Cadet"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "I'm so glad you've come!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Do your best!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Mission Two: Smart Scout"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "But you can save them!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Mission Three: Royal Ranger"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Mission Four: Imperial Ace"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Now is no time for resting; the city needs your help!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Final Mission: Computing Commando"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "I hope that hint helps!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "This is it! You can stop these attacks forever, Commando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Sorry, try again!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Mission accomplished. The galaxy is safe!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, OF MATH COMMAND"
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr "COPYRIGHT 2001-2010"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PART OF THE â[1mTUX4KIDS[0mâ PROJECT"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DESIGNED BY"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "LEAD PROGRAMMERS"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "ADDITIONAL CODE"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "LEAD ARTIST"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "ADDITIONAL ART"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "SOUND EFFECTS"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MUSIC"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "PACKAGERS"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "â[1mTUX[0mâ THE PENGUIN CREATED BY"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "TESTERS"
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr "USER WEBSITE"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"A full copy of the GPL is included with the documentation for this program."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr "For more information about Free Software and the GNU GPL, visit:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDS: to win, you need destroy all the asteroids."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "type one of its factors, and press space or return"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "to split it into its factors. Rocks with prime numbers are destroyed!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACTIONS: to win, you need destroy all the asteroids"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"type a number that can simplify the fraction, and press space or return"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Welcome to TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Your mission is to save your"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "penguins' igloos from the"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "falling comets."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stop a comet by typing"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "the answer to the math problem"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "and hitting â[1mspace[0mâ or 'enter'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Try it now!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Good shot!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "If an igloo gets hit by a comet,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "it melts. But don't worry: the"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "penguin is OK!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Just watch what happens:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Press a key to start)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Notice the answer"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "If it gets hit again, the"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "penguin leaves."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Press a key when ready)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "You can fix the igloos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "by stopping bonus comets."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Zap it now!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Great job!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Quit at any time by pressing"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "â[1mEsc[0mâ or clicking the â[1mX[0mâ"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "in the upper right corner."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Do it now, and then play!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hall Of Fame"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Space Cadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ace"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Commando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factors"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fractions"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "You Are In The Hall of Fame!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Enter Your Name:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath is free and open-source!"
+
+#: src/menu.c:376
+msgid "You can help make it better."
+msgstr "You can help make it better."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr "Suggestions, artwork, and code are all welcome!"
+
+#: src/menu.c:378
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edit â[1moptions[0mâ file in your home directory"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "to create customized game!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Press a key or click your mouse to start game."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "See README.txt for more information"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "How many kids are playing?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Between 2 and 4 players)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr "The server is already running"
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr "Enter Server Name:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr "(limit 50 characters)"
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr "Click or press key to select server lesson file"
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr "Server Name:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr "Selected Lesson:"
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr "Sorry, this version built without network support"
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr "Sorry, this version built without network support.\n"
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr "Detecting servers"
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr "Please wait"
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr "Connected to server: %s"
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Enter your name:"
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr "Click when ready"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr "Waiting for other players"
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr "Sorry, game already in progress."
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr "Sorry, game already in progress.\n"
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr "Sorry, no server could be found."
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr "Sorry, no server could be found.\n"
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr "Then %s\n"
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Who is playing first?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Who is playing next?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "How many rounds will you play?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Enter a number"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Work In Progress!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "This feature is not ready yet"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discuss the future of TuxMath at"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Help"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Number Typing"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition: 1 to 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Sums to 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Sums to 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: Sums to 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraction: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraction: 0 to 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraction: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Addition and Subtraction Review"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplication: 0 to 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiples of 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiples of 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiples of 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiples of 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplication: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiples of 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiples of 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplication: 0 to 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiples of 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiples of 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiples of 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplication: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiples of 11 and 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplication: 0 to 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiples of 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplication: 0 to 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplication: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division by 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division by 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division by 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division by 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 to 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division by 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division by 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division by 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division by 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division by 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 to 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division by 11 and 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 to 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division by 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 to 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Multiplication and Division Review"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Typing Negative Numbers"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraction: Negative Answers"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Adding Negatives to Positives"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Adding Positives to Negatives"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtracting Negatives From Positives"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtracting Positives From Negatives"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Adding Negatives to Negatives"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtracting Negatives From Negatives"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Negative and Positive Numbers Review"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplication and Division of Negatives"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplication of Positives and Negatives"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division of Positives and Negatives"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Credits"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Elimination"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "Factoroids!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr "Join Game"
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Main Menu"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Math Command Fleet Missions"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Math Command Training Academy"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "More Options"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr "Network Game"
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Play Alone"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Play Arcade Game"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Play Custom Game"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Play With Friends"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Project Info"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Quit"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr "Run Server"
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Score Sweep"
diff --git a/po/en at quot.gmo b/po/en at quot.gmo
new file mode 100644
index 0000000..ed44be8
Binary files /dev/null and b/po/en at quot.gmo differ
diff --git a/po/en at quot.header b/po/en at quot.header
new file mode 100644
index 0000000..a9647fc
--- /dev/null
+++ b/po/en at quot.header
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/po/en at quot.po b/po/en at quot.po
new file mode 100644
index 0000000..bb12d32
--- /dev/null
+++ b/po/en at quot.po
@@ -0,0 +1,900 @@
+# English translations for Tux Of Math Command package.
+# This file is put in the public domain.
+# Automatically generated, 2010.
+#
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath 1.8.0\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2010-05-07 17:05-0500\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Congratulations! You win!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Round"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] to skip"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Mission One: Careful Cadet"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "I'm so glad you've come!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Do your best!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Mission Two: Smart Scout"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "But you can save them!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Mission Three: Royal Ranger"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Mission Four: Imperial Ace"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Now is no time for resting; the city needs your help!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Final Mission: Computing Commando"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "I hope that hint helps!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "This is it! You can stop these attacks forever, Commando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Sorry, try again!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Mission accomplished. The galaxy is safe!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, OF MATH COMMAND"
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr "COPYRIGHT 2001-2010"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PART OF THE âTUX4KIDSâ PROJECT"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DESIGNED BY"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "LEAD PROGRAMMERS"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "ADDITIONAL CODE"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "LEAD ARTIST"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "ADDITIONAL ART"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "SOUND EFFECTS"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MUSIC"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "PACKAGERS"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "âTUXâ THE PENGUIN CREATED BY"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "TESTERS"
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr "USER WEBSITE"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"A full copy of the GPL is included with the documentation for this program."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr "For more information about Free Software and the GNU GPL, visit:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDS: to win, you need destroy all the asteroids."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "type one of its factors, and press space or return"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "to split it into its factors. Rocks with prime numbers are destroyed!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACTIONS: to win, you need destroy all the asteroids"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"type a number that can simplify the fraction, and press space or return"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Welcome to TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Your mission is to save your"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "penguins' igloos from the"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "falling comets."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stop a comet by typing"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "the answer to the math problem"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "and hitting âspaceâ or 'enter'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Try it now!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Good shot!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "If an igloo gets hit by a comet,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "it melts. But don't worry: the"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "penguin is OK!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Just watch what happens:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Press a key to start)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Notice the answer"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "If it gets hit again, the"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "penguin leaves."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Press a key when ready)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "You can fix the igloos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "by stopping bonus comets."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Zap it now!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Great job!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Quit at any time by pressing"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "âEscâ or clicking the âXâ"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "in the upper right corner."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Do it now, and then play!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hall Of Fame"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Space Cadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ace"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Commando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factors"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fractions"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "You Are In The Hall of Fame!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Enter Your Name:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath is free and open-source!"
+
+#: src/menu.c:376
+msgid "You can help make it better."
+msgstr "You can help make it better."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr "Suggestions, artwork, and code are all welcome!"
+
+#: src/menu.c:378
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edit âoptionsâ file in your home directory"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "to create customized game!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Press a key or click your mouse to start game."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "See README.txt for more information"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "How many kids are playing?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Between 2 and 4 players)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr "The server is already running"
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr "Enter Server Name:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr "(limit 50 characters)"
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr "Click or press key to select server lesson file"
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr "Server Name:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr "Selected Lesson:"
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr "Sorry, this version built without network support"
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr "Sorry, this version built without network support.\n"
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr "Detecting servers"
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr "Please wait"
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr "Connected to server: %s"
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Enter your name:"
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr "Click when ready"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr "Waiting for other players"
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr "Sorry, game already in progress."
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr "Sorry, game already in progress.\n"
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr "Sorry, no server could be found."
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr "Sorry, no server could be found.\n"
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr "Then %s\n"
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Who is playing first?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Who is playing next?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "How many rounds will you play?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Enter a number"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Work In Progress!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "This feature is not ready yet"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discuss the future of TuxMath at"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Help"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Number Typing"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition: 1 to 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Sums to 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Sums to 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: Sums to 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraction: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraction: 0 to 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraction: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Addition and Subtraction Review"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplication: 0 to 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiples of 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiples of 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiples of 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiples of 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplication: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiples of 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiples of 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplication: 0 to 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiples of 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiples of 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiples of 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplication: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiples of 11 and 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplication: 0 to 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiples of 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplication: 0 to 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplication: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division by 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division by 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division by 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division by 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 to 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division by 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division by 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division by 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division by 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division by 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 to 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division by 11 and 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 to 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division by 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 to 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Multiplication and Division Review"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Typing Negative Numbers"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraction: Negative Answers"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Adding Negatives to Positives"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Adding Positives to Negatives"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtracting Negatives From Positives"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtracting Positives From Negatives"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Adding Negatives to Negatives"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtracting Negatives From Negatives"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Negative and Positive Numbers Review"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplication and Division of Negatives"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplication of Positives and Negatives"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division of Positives and Negatives"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Credits"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Elimination"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "Factoroids!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr "Join Game"
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Main Menu"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Math Command Fleet Missions"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Math Command Training Academy"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "More Options"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr "Network Game"
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Play Alone"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Play Arcade Game"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Play Custom Game"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Play With Friends"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Project Info"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Quit"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr "Run Server"
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Score Sweep"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
new file mode 100644
index 0000000..f166df6
Binary files /dev/null and b/po/en_GB.gmo differ
diff --git a/po/en_GB.po b/po/en_GB.po
new file mode 100644
index 0000000..08a5df5
--- /dev/null
+++ b/po/en_GB.po
@@ -0,0 +1,897 @@
+# Translation of en_GB to Norwegian Nynorsk
+# Karl Ove Hufthammer <karl at huftis.org>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-06-24 20:33+0100\n"
+"Last-Translator: Caroline Ford <caroline.ford.work at googlemail.com>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn at lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: English\n"
+"X-Poedit-Country: UNITED KINGDOM\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Congratulations! You win!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Round"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] to skip"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Mission One: Careful Cadet"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "I'm so glad you've come!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Do your best!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Mission Two: Smart Scout"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "But you can save them!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Mission Three: Royal Ranger"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Mission Four: Imperial Ace"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Now is no time for resting; the city needs your help!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Final Mission: Computing Commando"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "I hope that hint helps!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "This is it! You can stop these attacks forever, Commando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Sorry, try again!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Mission accomplished. The galaxy is safe!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, OF MATH COMMAND"
+
+#: src/credits.c:36
+#, fuzzy
+msgid "COPYRIGHT 2001-2010"
+msgstr "COPYRIGHT 2001-2009"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PART OF THE 'TUX4KIDS' PROJECT"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DESIGNED BY"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "LEAD PROGRAMMERS"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "ADDITIONAL CODE"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "LEAD ARTIST"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "ADDITIONAL ART"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "SOUND EFFECTS"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MUSIC"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "PACKAGERS"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "'TUX' THE PENGUIN CREATED BY"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "TESTERS"
+
+#: src/credits.c:103
+#, fuzzy
+msgid "USER WEBSITE"
+msgstr "WEBSITE"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+
+#: src/credits.c:113
+#, fuzzy
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"A full copy of the GPL is included with the documenation for this program."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr "For more information about Free Software and the GNU GPL, visit:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDS: to win, you need destroy all the asteroids."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "type one of its factors, and press space or return"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "to split it into its factors. Rocks with prime numbers are destroyed!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACTIONS: to win, you need destroy all the asteroids"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"type a number that can simplify the fraction, and press space or return"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Welcome to TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Your mission is to save your"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "penguinsâ igloos from the"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "falling comets."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stop a comet by typing"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "the answer to the maths problem"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "and hitting âspaceâ or âenterâ."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Try it now!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Good shot!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "If an igloo gets hit by a comet,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "it melts. But donât worry: the"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "penguin is OK!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Just watch what happens:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Press a key to start)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Notice the answer"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "If it gets hit again, the"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "penguin leaves."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Press a key when ready)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "You can fix the igloos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "by stopping bonus comets."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Zap it now!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Great job!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Quit at any time by pressing"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "âEscâ or clicking the âXâ"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "in the upper right corner."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Do it now, and then play!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hall Of Fame"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Space Cadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ace"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Commando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factors"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fractions"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "You Are In The Hall of Fame!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Enter Your Name:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath is free and open-source!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "You can help make it better by reporting problems,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discuss the future at tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edit âoptionsâ file in your home directory"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "to create customised game!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Press a key or click your mouse to start game."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "See README.txt for more information"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "How many kids are playing?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Between 2 and 4 players)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Enter Your Name:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Enter Your Name:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Enter your name:"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Press a key when ready)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Who is playing first?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Who is playing next?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "How many rounds will you play?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Enter a number"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Work In Progress!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "This feature is not ready yet"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discuss the future of TuxMath at"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Help"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Number Typing"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition: 1 to 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Sums to 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Sums to 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: Sums to 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraction: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraction: 0 to 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraction: Two Digit Numbers"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Addition and Subtraction Review"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplication: 0 to 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiples of 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiples of 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiples of 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiples of 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplication: 0 to 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiples of 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiples of 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplication: 0 to 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiples of 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiples of 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiples of 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplication: 0 to 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiples of 11 and 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplication: 0 to 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiples of 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplication: 0 to 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplication: Missing Numbers"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division by 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division by 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division by 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division by 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 to 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division by 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division by 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division by 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division by 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division by 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 to 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division by 11 and 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 to 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division by 13, 14, and 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 to 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Multiplication and Division Review"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Typing Negative Numbers"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraction: Negative Answers"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Adding Negatives to Positives"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Adding Positives to Negatives"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtracting Negatives From Positives"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtracting Positives From Negatives"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Adding Negatives to Negatives"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtracting Negatives From Negatives"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Negative and Positive Numbers Review"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplication and Division of Negatives"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplication of Positives and Negatives"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division of Positives and Negatives"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Credits"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Elimination"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "Factoroids!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Main Menu"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Math Command Fleet Missions"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Math Command Training Academy"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "More Options"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Play Alone"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Play Arcade Game"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Play Custom Game"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Play With Friends"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Project Info"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Quit"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Score Sweep"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "suggesting improvements, or adding code."
+
+#~ msgid "Main menu"
+#~ msgstr "Main menu"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "penguinsâ igloos from the"
diff --git a/po/es.gmo b/po/es.gmo
new file mode 100644
index 0000000..d5c195f
Binary files /dev/null and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..59a2a8a
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,898 @@
+# Spanish translation for Tux, Of Math Command.
+# This file is put in the public domain.
+# Angela Ruiz <angieruiz211 at hotmail.com>
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.6.2\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-10-29 15:39-0300\n"
+"Last-Translator: SoporteLihuen <soportelihuen at linti.unlp.edu.ar>\n"
+"Language-Team: Español <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "¡Felicitaciones! ¡Ganaste!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Vuelta"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] para saltear"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Misión Uno: Cadete Cuidadoso"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "¡Que bueno que viniste!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"¡Los pingüinos necesitan tu ayuda! Están lloviendo cometas que derriten los "
+"iglúes de los pingüinos. Para salvar sus casas, tendrás que encontrar el "
+"código secreto que destruirá cada cometa."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "¡Suerte!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Misión Dos: Supervisor Astuto"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"¡Buen trabajo! Como salvaste las casas de los pingüinos, te promoveremos a "
+"Supervisor. Los Supervisores son buenos vigilando que no haya problemas..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...¡como los que hay ahora! ¡Vinieron los Arrebatadores y están lanzando "
+"cometas más complicados contra los pingüinos!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "¡Pero tú puedes salvarlos!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Misión Tres: Guardia Real"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"¡Lo lograste otra vez! El Emperador Pinguino te ha elegido para unirte a su "
+"equipo de Guardias que ayudan a proteger la ciudad. Te estamos enviando "
+"allÃ..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...¡No! El Emperador está siendo atacado por nuevos tipos de cometas: ¡Estos "
+"problemas se están multiplicando! Para luchar contra ellos necesitarás "
+"grandes habilidades. Pensamos que podrás lograrlo. ¡Ãnete a los Guardias y "
+"ayuda a salvar la ciudad!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Misión Cuatro: Maestro Imperial"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"¡Lo lograste! El Emperador quiere agradecerte en persona. Te estamos "
+"llevando a su palacio de hielo para un gran honor: ¡te convertirás en el "
+"Maestro Imperial!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"Pero en la mitad de la ceremonia... ¡Comienza un nuevo ataque de la tierra "
+"de las Divisiones!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "No es tiempo de descansar, ¡la ciudad necesita tu ayuda!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Misión Final: Comando Computador"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Los cientÃficos pingüinos han aprendido que todos estos ataques provienen de "
+"una base secreta, y necesitan que vayas allà a pelear la última batalla. "
+"También te dan esta pista: primero multiplica y divide, y luego suma y resta."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "¡Espero que esa pista te ayude!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+"¡Este es el momento! Puedes detener estos ataques para siempre, Comando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "¡Intenta de nuevo!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Misión cumplida. ¡La galaxia está a salvo!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, DE MATH COMMAND"
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PARTE DEL PROYECTO 'TUX4KIDS'"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DISEÃADO POR"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "PROGRAMADORES PRINCIPALES"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "CÃDIGO ADICIONAL"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "ARTISTA PRINCIPAL"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "ARTE ADICIONAL"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "EFECTOS DE SONIDO"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MÃSICA"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "'TUX' EL PINGÃINO CREADO POR"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "PROBADORS"
+
+#: src/credits.c:103
+#, fuzzy
+msgid "USER WEBSITE"
+msgstr "SITIO WEB"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath es Software Libre bajo la licencia GNU (GPL). Por esta razón, se le "
+"otorgan especÃficamente derechos que normalmente se le niegan a usuarios de "
+"software propietario."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"Estos derechos incluyen la libertad de estudiar, copiar, modificar y "
+"redistribuir el programa."
+
+#: src/credits.c:113
+#, fuzzy
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr "Se incluye una copia de la GPL en la documentación de este programa."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr "Para mayor información sobre el Software Libre y la GPL GNU, visite:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDES: para ganar, tendrás que destruir todos los asteroides."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Usa las teclas de flecha para avanzar o girar. Apunta a un asteroide,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "escribe uno de sus factores y presiona espacio o retorno"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+"para dividirlo en sus factores. ¡Las rocas con números primos se destruyen!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACCIONES: para ganar, tendrás que destruir todos los asteroides."
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"escribe un número que simplifique la fracción y presiona espacio o retorno"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"para dividirlo. ¡Destruye fracciones que no se pueden simplificar más de un "
+"solo tiro!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "¡Bienvenido a TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Tu mision es salvar a"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "los iglúes de tus pingüinos"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "de los cometas que caen."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Para parar el cometa"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "debes escribir la respuesta correcta al problema matemático"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "y presionar 'espacio' o 'enter'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "¡Prueba ahora!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "¡Buen tiro!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Si uno de los iglúes es atacado por un cometa,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "se derretirá. Pero no te preocupes: "
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "¡el pingüino estará a salvo!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Observa lo que sucede:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Presiona una tecla para empezar)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Nota la respuesta"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Si el iglú es atacado de nuevo,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "el pingüino se irá."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Presiona una tecla cuando estés listo)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Tú puedes areglar los iglúes"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr " si logras parar cometas de bono."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "¡Dispárale ahora!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "¡Bien hecho!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Puedes parar el juego en cualquier momento"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "oprimiendo la tecla 'ESC' o haciendo clic en la X "
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "en la esquina derecha de la pantalla."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Hazlo ahora y luego juega"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Salón de la Fama"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadete Espacial"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Supervisor"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Guardia"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Maestro"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Comando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factores"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fracciones"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "¡Estás en el Salón de la Fama!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Escribe tu nombre:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "¡TuxMath es gratis y de código abierto!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Puedes hacer que el programa funcione mejor reportando problemas,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discute el futuro en tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "¡Edita el archivo de 'opciones' del directorio principal"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "para personalizar el juego!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Presiona una tecla o haz click para empezar el juego."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Ver README.txt para más información"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "¿Cuántos están jugando?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Entre 2 y 4 jugadores)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Escribe tu nombre:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Escribe tu nombre:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Escribe tu nombre:"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Presiona una tecla cuando estés listo)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "¿Quién juega primero?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "¿Quién juega después?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "¿Cuántas vueltas van a jugar?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Escribe un número"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "¡Trabajo en curso!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Esta opción no funciona todavÃa"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Para discutir el futuro de TuxMath puedes ir a"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Ayuda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Escritura de números"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Suma: 1 a 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Suma: 0 a 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Suma: hasta 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Suma: hasta 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Suma: hasta 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Suma: números de dos dÃgitos"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Suma: números que faltan"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Resta: de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Resta: de 0 a 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Resta: números de dos dÃgitos"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Repaso de suma y resta"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplicación: 0 a 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Múltipos de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Múltipos de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Múltipos de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Múltipos de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplicación: 0 a 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Múltipos de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Múltipos de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplicación: 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Múltipos de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Múltipos de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Múltipos de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplicación: 0 a 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Múltipos de 11 y 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplicación: 0 a 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Múltipos de 13, 14, 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplicación: 0 a 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplicación: números que faltan"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "División de 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "División de 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "División de 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "División de 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "División de 1 a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "División de 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "División de 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "División de 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "División de 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "División de 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "División de 1 a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "División de 11 a 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "División de 1 a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "División de 13,14 y 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "División de 1 a 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Repaso de multiplicación y división"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Escribiendo números negativos"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "resta de numeros negativos"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Sumando números negativos a números positivos"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Sumando Positivos con Negativos"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Restando números negativos de números positivos"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Restando Positivos de Negativos"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Sumando números negativos a números negativos"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Restando números negativos de negativos"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Repaso de números negativos y positivos"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplicación y División de Negativos"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplicación de números positivos y negativos"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "División de números positivos y negativos"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Créditos"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Eliminación"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "¡Factoroides!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menú principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Misiones de Flota de Matemáticas"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Academia de Entrenamiento de Matemáticas"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Más opciones"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Jugar solo"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Jugar el juego de arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Jugar un juego personalizado"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Jugar con amigos"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Información del projecto"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Terminar"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Limpiar puntuación"
+
+#~ msgid "Main menu"
+#~ msgstr "Menú principal"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "enviando sugerencias o añadiendo código."
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "los igloos de tus pinguinos"
diff --git a/po/fi.gmo b/po/fi.gmo
new file mode 100644
index 0000000..d3442c9
Binary files /dev/null and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 0000000..9d5df96
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,867 @@
+# Finnish translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Marten
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-22 06:59+0000\n"
+"Last-Translator: Miika Metsälä <Unknown>\n"
+"Language-Team: Finnish <fi at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Parhaat tulokset"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Astronautti"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Tiedustelija"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Jousimies"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr ""
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath on vapaa ja avointa koodia!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Voit auttaa meitä tekemään sen paremmaksi ilmoittamalla ongelmista,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+"Keskustele tuxmathin tulevaisuudesta osoitteesta tuxmath-devel at lists."
+"sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Muokkaa 'options' tiedostoa kotikansiossasi"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "tehdäksesi kustomoidun pelin!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr ""
+"Paina mitä tahansa näppäintä tai napsauta hiirellä aloittaaksesi pelin."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Katso README.txt saadaksesi lisätietoja"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Työn alla!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Tämä ominaisuus ei ole vielä valmis"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr ""
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "O_hje"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Numeroiden kirjoitus"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Yhteenlasku: Puuttuvat numerot"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Kertominen: 0 kertaa 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Kertominen luvulla 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Kertominen: 0 kertaa 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Kertominen luvulla 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Kertominen luvulla 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Kertominen: 0 kertaa 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Kertominen luvulla 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Kertominen luvulla 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Kertominen luvulla 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Kertominen: 0 kertaa 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Kertominen luvuilla 11 ja 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Kertominen: 0 kertaa 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Kertominen luvuilla 13, 14 ja 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Kertominen: 0 kertaa 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Kertominen: Puuttuvat numerot"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Jakaminen luvulla 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Jakaminen luvulla 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Jakaminen luvulla 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Jakaminen luvulla 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Jakaminen: 5 jaettuna 1"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Jakaminen luvulla 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Jakaminen luvulla 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Jakaminen luvulla 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Jakaminen luvulla 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Jakaminen luvulla 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Jakaminen: 10 jaettuna 1"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Negatiivisten lukujen yhteenlasku"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Negatiivisten lukujen vähennyslasku"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Negatiivisten lukujen yhteenlasku"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Negatiivisten lukujen vähennyslasku"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Negatiivisten lukujen kerto- ja jakolasku"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Positiivisten ja negatiivisten lukujen kertolasku"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Positiivisten ja negatiivisten lukujen jakolasku"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Tekijät"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr ""
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Päävalikko"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Lisää asetuksia"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Pelaa arcade-peliä"
+
+#: data/menus/menu_strings:19
+#, fuzzy
+msgid "Play Custom Game"
+msgstr "Pelaa arcade-peliä"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Tietoa projektista"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Lopeta"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "ehdottamalla parannuksista, tai lisäämällä koodia."
+
+#~ msgid "Main menu"
+#~ msgstr "Päävalikko"
diff --git a/po/fr.gmo b/po/fr.gmo
new file mode 100644
index 0000000..82633ae
Binary files /dev/null and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..00aa6e2
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,859 @@
+# French translation of tuxmath.pot for TuxMath
+# This file is put in the public domain.
+# Grumeau Rémi <remi at beosfrance.com>, 2007.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.5.8\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2007-11-15 09:00+0100\n"
+"Last-Translator: Grumeau Rémi <remi at beosfrance.com>\n"
+"Language-Team: Dutch <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Tableau des scores"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadet de l'espace"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath est gratuit et open-source!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Participez à l'amélioration du jeu en nous signalant des problemes,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Parlons-en sur tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Editer le fichier 'option' dans le dossier home"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "pour créer une partie personnalisée !"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Appuyez sur une touche ou cliquez pour commencer"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Lisez README.txt pour plus d'informations"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Chargement"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Cette option n'est pas encore disponible"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Participer au futur de TuxMath au"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Aide"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Taper un nombre"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition 1 Ã 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition 1 Ã 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Somme de 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Somme de 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: Somme de 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Nombres à deux chiffres"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Nombre manquant"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Addition: 0 Ã 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Soustraction: 0 Ã 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Soustraction: Nombre à deux chiffres"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Rapport d'addition et soustraction"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplication: 0 Ã 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiples de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiples de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiples de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiples de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplication: 0 Ã 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiples de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiples de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplication: 0 Ã 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiples de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiples de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiples de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplication: 0 Ã 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiples de 11 et 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplication: 0 Ã 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiples de 13, 14 et 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplication: 0 Ã 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplication: Nombres manquants"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division par 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division par 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division par 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division par 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 Ã 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division par 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division par 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division par 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division par 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division par 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 Ã 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division par 11 et 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 Ã 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division par 13, 14 et 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 Ã 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Rapport de multiplication et division"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Nombres négatifs entrés"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Soustraction: fausses réponses"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Addition: négatifs aux positifs"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Ajout de négatifs aux positifs"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Soustraction de négatifs au positifs"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Soustraction de négatifs aux négatifs"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Ajout de négatifs aux positifs"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Soustraction de négatifs aux négatifs"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Rapport des nombres négatifs au positifs"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplication et division de négatifs"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplication de positifs et négatifs"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division de positifs et négatifs"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Crédits"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menu principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Ecole d'entrainement au Math"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Plus d'options"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Jouer en mode arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Jouer en mode personnalisé"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "A propos"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Quitter"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "vos suggestions, ou en développement."
+
+#~ msgid "Main menu"
+#~ msgstr "Menu principal"
diff --git a/po/ga.gmo b/po/ga.gmo
new file mode 100644
index 0000000..718b5f1
Binary files /dev/null and b/po/ga.gmo differ
diff --git a/po/ga.po b/po/ga.po
new file mode 100644
index 0000000..df73823
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,863 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-07-13 23:16-0000\n"
+"Last-Translator: Seanán à CoistÃÂn <seananoc at gmail.com>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Fáilte go TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "An cúram atá agat ná"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "ÃÂoglúanna do phiongain a chosaint"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "ó na réalta mhongach atá ag titim anuas."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stad réalt mhongach tràan"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "freagra don ceist mata a chlóscrÃÂobh"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "agus brúigh 'bearna' nó 'isteach'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Imir anois é!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Amas iontach!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Má bhuaileann réalt mhongach ÃÂoglú,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "leáitear é. Ach ná bàbuartha:"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "tá an phiogain togha!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Féach cad a tharlaÃÂonn:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Brúigh cnaipe chun tosú)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Tabhair faoi deara an freagra"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Má bhuailfàarÃÂs é,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "fágann an piongain."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Brúigh cnaipe ar bith nuair atá tú réidh)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Is fédir na hioglúanna a dheisiú"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "tràréalta mhongach breise a stadadh."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Buail anois é!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Maith thú!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Scoir ag am ar bith tràbrúigh"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'Esc' nó brúigh an 'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "sa chúinne uachtarach ar dheis."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Déan anois é, agus ansin imir!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Réim na gCuradh"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Glasearcach"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Gasóg"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "RánaÃÂ"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Curadh"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "Tá TuxMath ar fáil saor in aisce agus le foinse oscailte!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Is féidir leat cuidiú é a fheabhsú tràfadhbanna a fhógrú,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Plé an todhchaàag tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Cuir in eagar an comhad 'roghanna' i do chomhadlann baile"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "chun cluiche saincheaptha a chruthú!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Brúigh cnaipe nó brúigh do luchóg chun an cluiche a thosú."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Féach ar README.txt le haghaidh breis eolas"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Brúigh cnaipe ar bith nuair atá tú réidh)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Obair Idir Lámha!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "NÃÂl an ghné seo réidh fós"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Plé todhchaàTuzMath ag"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Cabhair"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "ClóscrÃÂobh Uimhreacha"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Suimiú: 1 go dtàa 13"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Suimiú: 1 go dtàa 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Suimiú: Suimeanna go dtàa 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Suimiú: Suimeanna go dtàa 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Suimiú: Suimeanna go dtàa 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Suimiú: Uimhreacha Dhá Dhigit"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Suimiú: Uimhreacha In Easnamh"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Dealú: 0 go dtàa 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Dealú: 0 go dtàa 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Dealú: Uimhreacha Dhá Dhigit"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Súil Siar ar Suimiú agus Dealú"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Iolrú: 0 go dtàa 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Iolraithe de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Iolraithe de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Iolracha de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Iolracha de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Iolrú: 0 go dtàa 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Iolracha de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Iolracha de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Iolrú: 0 go dtàa 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Iolracha de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Iolracha de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Iolracha de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Iolrú: 0 go dtàa 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Iolraithe de a 11 agus a 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Iolrú: 0 go dtàa 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Iolraithe de a 13, a 14, agus a 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Iolrú: 0 go dtàa 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Iolrú: Uimhreacha In Easnamh"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Roinnt faoi na a 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Roinnt faoi na a 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Roinnt faoi na a 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Roinnt faoi na a 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Roinnt: 1 go dtÃÂ a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Roinnt faoi na a 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Roinnt faoi na a 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Roinnt faoi na a 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Roinnt faoi na a 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Roinnt faoi na a 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Roinnt: 1 go dtÃÂ a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Roinnt faoi na a 11 agus a 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Roinnt: 1 go dtÃÂ a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Roinnt faoi na a 13, a 14, agus a 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Roinnt: 1 go dtÃÂ a 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Súil Siar ar Iolrú agus Roinnt"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Ag ClóscrÃÂobh Uimhreacha Diúltacha"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Dealú: FreagraàDiúltacha"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Ag Suimiú Diúltacha le Deimhneacha"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Ag Suimiú Diúltacha le Diúltacha"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Ag Dealú Diúltacha ó Deimhneacha"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Ag Dealú Diúltacha ó Diúltacha"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Ag Suimiú Diúltacha le Diúltacha"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Ag Dealú Diúltacha ó Diúltacha"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Súil Siar ar Uimhreacha Dhiúltacha agus Dheimhneacha"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Iolrú agus Roinnt Diúltacha"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Iolrú Deimhneacha agus Diúltacha"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Roinnt Deimhneacha agus Diúltacha"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "BuÃÂochas le"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Taispeántas"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "An PrÃÂomh Roghchlár"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Lárionad Oiliúna an Cheannais Mata"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Tuilleadh Roghanna"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Imir an Gnáthchluiche"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Imir Cluiche Saincheaptha"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Faisnéis an Tionscadail"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Scoir"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "feabhsaithe a mholadh, nó tràcód a chur leis."
+
+#~ msgid "Main menu"
+#~ msgstr "An PrÃÂomh Roghchlár"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "ÃÂoglúanna do phiongain a chosaint"
diff --git a/po/he.gmo b/po/he.gmo
new file mode 100644
index 0000000..2d702f4
Binary files /dev/null and b/po/he.gmo differ
diff --git a/po/he.po b/po/he.po
new file mode 100644
index 0000000..e399e2e
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,872 @@
+# Hebrew translation for tuxmath
+# Copyright (c) 2008 Tux4Kids
+# This file is distributed under the same license as the tuxmath package.
+# Yaron Shahrbani <sh.yaron at gmail.com>, 2008.
+#
+# Contributors:
+# Yaron Shahrabani
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-01-17 10:32+0200\n"
+"Last-Translator: Yaron Shahrabani <sh.yaron at gmail.com>\n"
+"Language-Team: Hebrew <sh.yaron at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-01-17 08:28+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+"Plural-Forms: n!=1\n"
+"X-Poedit-Language: Hebrew\n"
+"X-Poedit-Country: ISRAEL\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "×ר×××× ××××× ×××קס×××ק×!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "×××¨×ª× ××× ××צ×× ×ת"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "×פ×× ××××× ×× ×©×× ××¤× ×"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "××××××× ×× ×פ×××."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "ת××× ×××××£ ×××× ×¢× ×××"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "×ק××ת ×תש××× ×××¢×× ××ת×××ת"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "×××××¦× ×¢× 'ר×××' ×× 'Enter'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "× ×¡× ××ת ×עת!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "פ×××¢× ×פ×!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "×× ×¤×××¢ ×××× ××××××,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "×××××× × ×ס. ×× ×× ××××:"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "×פ×× ××××× ×× ×ס×ר ×××ר!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "פש×× ×©×× ×× ×× ×§×ר×:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(×××¥ ×¢× ×קש ××ת×××)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "ש×× ×× ×תש×××"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "×× ×××××× × ×¤××¢ ש××,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "×פ×× ××××× ×¢×××."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(×××¥ ×¢× ×קש ×ש××ª× ××××)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "ת×××× ××ª×§× ×ת ×××××××××"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "×¢× ××× ×××פת ××××× ××× ×ס."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "ת××¨× ×× ×עת!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "×¢×××× ×פ×!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "ת××× ×צ×ת ××× ×¢× ×¢× ×××"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "××××¦× ×¢× 'Esc' ×× ×¢× ×Ö¾'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "×פ×× × ×ש××××ת ××¢×××× ×."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "×¢×©× ××ת ×עת, ש×ק ×××ר ×××!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "×××× ×ת××××"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "××ר××"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "ת××××"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "×ת×צ×"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "ת×ת×"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "××קס××××§× ××× × ××פש×ת ×××¢×ת ק×× ×¤×ª××!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "ת××× ××¢××ר ×× × ×שפר ×××ª× ×¢× ××× ××××× ×ª×§××ת,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "××× ×עת×× ××קס××××§× ×רש××ת ×××××ר tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "ער×× ×ת ק×××¥ ××פשר×××ת ('options') ×ת×ק××ת ×××ת ש××"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "××× ××צ×ר ×ש×ק ××ת×× ××ש×ת!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "×××¥ ×¢× ×קש ××ק××ת ×× ××¢××ר ××× ××ת××× ××ש×ק."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "×¢××× ×ק×××¥ README.TXT ×××××¢ × ×סף"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(×××¥ ×¢× ×קש ×ש××ª× ××××)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "×¢×××× ×ת××××××!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "ת××× × ×× ××× × ×××× × ×¢××××"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "××× ×עת××× ×©× ××קס×ת××§× ×ק××צת ×××××"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "×¢×ר×"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "×ק××ת ×ספר××"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "××××ר: 1 ×¢× 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "××××ר: 0 ×¢× 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "××××ר: ס××××× ×¢× 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "××××ר: ס××××× ×¢× 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "××××ר: ס××××× ×¢× 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "××××ר: ×ספר×× ××-ספרת×××"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "××××ר: ×ספר×× ×סר××"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "××ס×ר: 0 ×¢× 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "××ס×ר: 0 ×¢× 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "××ס×ר: ×ספר×× ××-ספרת×××"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "סק×רת ××××ר ×××ס×ר"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "×פ×: 0 ×¢× 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "×פ×××ת ×©× 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "×פ×××ת ×©× 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "×פ×××ת ×©× 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "×פ×××ת ×©× 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "×פ×: 0 ×¢× 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "×פ×××ת ×©× 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "×פ×××ת ×©× 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "×פ×: 0 ×¢× 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "×פ×××ת ×©× 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "×פ×××ת ×©× 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "×פ×××ת ×©× 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "×פ×××ת: 0 ×¢× 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "×פ×××ת ×©× 11 ×-12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "×פ×: 0 ×¢× 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "×פ×××ת ×©× 13, 14 ×-15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "×פ×: 0 ×¢× 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "×פ×: ×ספר×× ×סר××"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "××××ק ×-2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "××××ק ×-3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "××××ק ×-4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "××××ק ×-5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "××××ק: 1×¢× 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "××××ק ×-6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "××××ק ×-7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "××××ק ×-8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "××××ק ×-9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "××××ק ×-10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "××××ק: 1 ×¢× 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "××××ק ×-11 ×-12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "××××ק: 1 ×¢× 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "××××ק ×-13, 14 ×-15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "××××ק: 1 ×¢× 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "סק×רת ××¤× ×××××ק"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "×ק××ת ×ספר×× ×©××××××"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "××ס×ר: ת×צ××ת ש×××××ת"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "××ספת ×ספר×× ×©×××××× ××××××××"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "××ספת ש×××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "××ס×ר ×ספר×× ×©×××××× ××××××××"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "××ס×ר ש×××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "××ספת ש×××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "××ס×ר ש×××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "סק×רת ×ספר×× ××××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "××¤× ×××××ק ×©× ×ספר×× ×©××××××"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "××פ×ת ×ספר×× ××××××× ×ש××××××"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "×××קת ×ספר×× ××××××× ×ש××××××"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "ת×××ת"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "×××××"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "תפר×× ×¨×ש×"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "××ק×××× ×××××× ×¤×¢×××ת ×ת××××ת"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "×פשר×××ת × ×ספ×ת"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "ש×ק ×ש×ק ×רק×××"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "ש×ק ×ש×ק ××ת××"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "××××¢ ×¢× ×××××"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "×צ×××"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "×צעת ש×פ×ר×× ×× ××ספת ק××."
+
+#~ msgid "Main menu"
+#~ msgstr "תפר×× ×¨×ש×"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "×פ×× ××××× ×× ×©×× ××¤× ×"
diff --git a/po/hu.gmo b/po/hu.gmo
new file mode 100644
index 0000000..8a0dcbb
Binary files /dev/null and b/po/hu.gmo differ
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 0000000..5df7c87
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,864 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-02-11 21:56+0100\n"
+"Last-Translator: Miklos Merenyi <mermik at freemail.hu>\n"
+"Language-Team: LANGUAGE <HU at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Ãdvözöllek a TuxMath-ban!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Küldetésed a pingvinek"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "jégkunyhóinak megvédése"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "az aláhulló meteoritoktól."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Gépeld be a matematikai feladat "
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "eredményét, és üss Enter-t"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "a meteor megállÃtásához!"
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Próbáld meg most!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Szép lövés!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Ha egy jégkunyhót eltalál"
+
+#: src/game.c:1151
+#, fuzzy
+msgid "it melts. But don't worry: the"
+msgstr "egy meteor, megolvad, de a"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "pingvinnek még nem lesz baja!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Nézd, mi történik:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Nyomj meg egy gombot!)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Látod a választ?"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "A második találat után"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "a pingvin elmenekül."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Nyomj meg egy gombot!)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "A jégkunyhókat a bónusz meteorok"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "szétlövésével javÃthatod meg."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Adj neki!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Szép munka!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Akármikor kiléphetsz az 'ESC'"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "gomb megnyomásával, vagy "
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "az 'X'-re való kattintással."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Lépj ki, és kezdd a játékot!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "DicsÅséglista"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Ãjonc"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "FelderÃtÅ"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "JárÅrparancsnok"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Mesterpilóta"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "A TuxMath ingyenes és nyÃlt forráskódú!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Te is segÃthetsz még jobbá tenni az észlelt hibák bejelentésével,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "LevelezÅlista (angol nyelvű): tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "A home-könyvtáradban levŠ'options' fájl "
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "szerkesztésével készÃthetsz testreszabott játékot."
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Nyomj le egy billentyűt vagy egy egérgombot a kezdéshez!"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "További részletek a README.txt fájlban."
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Nyomj meg egy gombot!)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Fejlesztés alatt."
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Ez a funkció még nem működik"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "A TuxMath jövÅjét itt vitathatod meg:"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "SegÃtség"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Számok gépelése"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Ãsszeadás: 1 - 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Ãsszeadás: 0 - 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Ãsszeadás: az összeg max. 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Ãsszeadás: az összeg max. 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Ãsszeadás: az összeg max. 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Ãsszeadás: kétjegyű számok"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Ãsszeadás: hiányzó számok"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Kivonás: 0 - 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Kivonás: 0 - 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Kivonás: kétjegyű számok"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Ãsszeadás és kivonás összefoglaló"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Szorzás: 0-3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "2 többszörösei"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "3 többszörösei"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "4 többszörösei"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "5 többszörösei"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Szorzás: 0 - 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "6 többszörösei"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "7 többszörösei"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Szorzás: 0 - 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "8 többszörösei"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "9 többszörösei"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "10 többszörösei"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Szorzás: 0 - 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "11 és 12 többszörösei"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Szorzás: 0 - 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "13, 14 és 15 többszörösei"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Szorzás: 0 - 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Szorzás: hiányzó számok"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Osztás kettÅvel"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Osztás 3-mal"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Osztás 4-gyel"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Osztás 5-tel"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Osztás: 1 - 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Osztás 6-tal"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Osztás 7-tel"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Osztás 8-cal"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Osztás 9-cel"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Osztás 10-zel"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Osztás: 1 - 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Osztás 11-gyel és 12-vel"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Osztás: 1 - 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Osztás 13-mal, 14-gyel és 15-tel"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Osztás: 1 - 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Szorzás és osztás összefoglaló"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "NegatÃv számok gépelése"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Kivonás: negatÃv eredmény"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "NegatÃv és pozitÃv számok összeadása"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "NegatÃv számok összeadása"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "NegatÃv számok kivonása pozitÃvakból"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "NegatÃv számok kivonása negatÃvokból"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "NegatÃv számok összeadása"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "NegatÃv számok kivonása negatÃvokból"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "PozitÃv és negatÃv számok összefoglaló"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "NegatÃv számok szorzása és osztása"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "PozitÃv és negatÃv számok szorzása"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "PozitÃv és negatÃv számok osztása"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "KöszönetnyilvánÃtás"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "FÅmenü"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Matek-Parancsnok KépzŠAkadémia"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Egyebek"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "BeépÃtett játékok"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Testreszabott játékok"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Projekt információ"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Kilépés"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "továbbfejlesztési ötletekkel, vagy programkóddal."
+
+#~ msgid "Main menu"
+#~ msgstr "FÅmenü"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "jégkunyhóinak megvédése"
diff --git a/po/insert-header.sin b/po/insert-header.sin
new file mode 100644
index 0000000..b26de01
--- /dev/null
+++ b/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/it.gmo b/po/it.gmo
new file mode 100644
index 0000000..7d6e3de
Binary files /dev/null and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 0000000..1e1bd2d
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,870 @@
+# Italian translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Giovanni Condello <condellog at gmail.com>
+# Sergio Zanchetta
+# cenoura
+# lucabaffa
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-01 11:49+0000\n"
+"Last-Translator: Giovanni Condello <condellog at gmail.com>\n"
+"Language-Team: Italian <it at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Galleria dei campioni"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadetto spaziale"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Asso"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath è gratuito ed open-source!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Puoi aiutare a migliorarlo riportando i problemi,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discuti del futuro su tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Modifica il file 'options' nella tua cartella home"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "per creare una partita personalizzata!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Premi un tasto o fai click con il mouse per iniziare il gioco."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Vedi il file README.txt per maggiori informazioni"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Lavori in corso!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Questa caratteristica non è ancora pronta."
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discuti del futuro di TuxMatch su"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Aiuto"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addizione: da 1 a 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addizione: da 0 a 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addizione: somme fino a 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addizione: somme fino a 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addizione: somme fino a 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addizione: numeri a due cifre"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addizione: numeri mancanti"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Sottrazione: da 0 a 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Sottrazione: da 0 a 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Sottrazione: numeri a due cifre"
+
+#: data/missions/lessons/descr_lessons:12
+#, fuzzy
+msgid "Addition and Subtraction Review"
+msgstr "Ripasso su addizioni e sottrazioni"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Moltiplicazione: da 0 a 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multipli di 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multipli di 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multipli di 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multipli di 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Moltiplicazione: da 0 a 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multipli di 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multipli di 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Moltiplicazione: da 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multipli di 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multipli di 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multipli di 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Moltiplicazione: da 0 a 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multipli di 11 e 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Moltiplicazione: da 0 a 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multipli di 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Moltiplicazione: da 0 a 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Moltiplicazione: numeri mancanti"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Divisione per 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Divisione per 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Divisione per 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Divisione per 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Divisione: da 1 a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Divisione per 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Divisione per 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Divisione per 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Divisione per 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Divisione per 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Divisione: da 1 a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Divisione per 11 e 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Divisione: da 1 a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Divisione per 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Divisione: da 1 a 15"
+
+#: data/missions/lessons/descr_lessons:46
+#, fuzzy
+msgid "Multiplication and Division Review"
+msgstr "Ripasso su moltiplicazioni e divisioni"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Scrittura di numeri negativi"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Sottrazione: risultati negativi"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Sommare numeri negativi a positivi"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Sommare numeri negativi a negativi"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Sottrarre numeri negativi da positivi"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Sottrarre numeri negativi da negativi"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Sommare numeri negativi a negativi"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Sottrarre numeri negativi da negativi"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Ripasso sui numeri positivi e negativi"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Moltiplicazione e divisione di numeri negativi"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Moltiplicazione di numeri positivi e negativi"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Divisione di numeri positivi e negativi"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Ringraziamenti"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menu principale"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Altre opzioni"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+#, fuzzy
+msgid "Play Arcade Game"
+msgstr "Gioca una partita personalizzata"
+
+#: data/menus/menu_strings:19
+#, fuzzy
+msgid "Play Custom Game"
+msgstr "Gioca una partita personalizzata"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Informazioni sul progetto"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Esci"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "proponendo miglioramenti o con l'aggiunta di codice."
+
+#~ msgid "Main menu"
+#~ msgstr "Menu principale"
diff --git a/po/ja.gmo b/po/ja.gmo
new file mode 100644
index 0000000..2f77bbc
Binary files /dev/null and b/po/ja.gmo differ
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 0000000..c1d6369
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,864 @@
+# Japanese translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# CMasami
+# Yuji Kaneko
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-05 15:29+0000\n"
+"Last-Translator: CMasami <Unknown>\n"
+"Language-Team: Japanese <ja at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "殿å å
¥ã"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "è¨ç·´ç"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "ä¸çå
µ"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "ç¹æ®é¨é"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "è¶
è½åè
"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath ã¯èªç±ã§ãªã¼ãã³ã½ã¼ã¹ã§ã!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "åé¡ç¹ãå ±åãã¦ã²ã¼ã ãæ¹åãããã¨ãã§ãã¾ãã"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "é£çµ¡å
ã¯ãã¡ã tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "ãã¼ã ã»ãã£ã¬ã¯ããªã®'optoins'ãã¡ã¤ã«ãç·¨éãã¦"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "ãªãªã¸ãã«ã®ã²ã¼ã ãä½ãã!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "ãã¼ãæ¼ããã¯ãªãã¯ãã¦ã²ã¼ã éå§"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "詳ãã説æã¯README.txtãè¦ã¦ãã ãã"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "ä½æ¥ä¸!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "ãã®æ©è½ã¯ã¾ã ããã¾ãã"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "TuxMathã«ã¤ãã¦ã®è¦æã¯"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "ãã«ã"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "æ°åãå
¥åãã"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "足ãç®: 1 ãã 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "足ãç®: 0 ãã 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "足ãç®: åè¨ã 10 ã«ãã"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "足ãç®: åè¨ã 15 ã«ãã"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "足ãç®: åè¨ã 20 ã«ãã"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "足ãç®: ï¼æ¡ã®æ°"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "足ãç®: æ°åã®ç©´åã"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "å¼ãç®: 0 ãã 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "å¼ãç®: 0 ãã 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "å¼ãç®: 2æ¡ã®æ°"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "足ãç®ã¨å¼ãç®ã®ã¾ã¨ã"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "æãç®: 0 ãã 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "2ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "3ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "4ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "5ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "æãç®: 0 ãã 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "6ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "7ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "æãç®: 0 ãã 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "8ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "9ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "10ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "æãç®: 0 ãã 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "11 ã¨12ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "æãç®: 0 ãã 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "13ãã15ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "æãç®: 0 ãã15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "æãç®: ç©´åã"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "2ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "3ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "4ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "5ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "å²ãç®: 1 ãã 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "6ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "7ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "8ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "9ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "10ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "å²ãç®: 1 ãã 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "11ã¨12ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "å²ãç®: 1 ãã 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "13ãã15ã®å²ãç®"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "å²ãç®: 1 ãã 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "æãç®ã¨å²ãç®ã®ã¾ã¨ã"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "è² ã®æ°ã®å
¥å"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "å¼ãç®: è² ã®æ°ã®çã"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "è² ã®æ°ã¨æ£ã®æ°ã®è¶³ãç®"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "è² ã®æ°ã¨è² ã®æ°ã®è¶³ãç®"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "æ£ã®æ°ããè² ã®æ°ãå¼ã"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "è² ã®æ°ããè² ã®æ°ãå¼ã"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "è² ã®æ°ã¨è² ã®æ°ã®è¶³ãç®"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "è² ã®æ°ããè² ã®æ°ãå¼ã"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "è² ã®æ°ã¨æ£ã®æ°ã®ã¾ã¨ã"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "è² ã®æ°ã®æãç®ã¨å²ãç®"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "æ£ã®æ°ã¨è² ã®æ°ã®æãç®"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "æ£ã®æ°ã¨è² ã®æ°ã®å²ãç®"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "ã¯ã¬ã¸ãã"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "ãã¢"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "ã¡ã¤ã³ã¡ãã¥ã¼"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "è¨ç®æ¦éè¨ç·´å¦æ ¡"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "ä»ã®ãªãã·ã§ã³"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "ä¸è¬è¨ç·´éå§"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "ç¹æ®è¨ç·´éå§"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "ããã¸ã§ã¯ãæ
å ±"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "çµäº"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "æ°æ©è½ã®ææ¡ããã³ã¼ãã®è¿½å ãæè¿ãã¾ãã"
+
+#~ msgid "Main menu"
+#~ msgstr "ã¡ã¤ã³ã¡ãã¥ã¼"
diff --git a/po/ku.po b/po/ku.po
new file mode 100644
index 0000000..03ad0a8
--- /dev/null
+++ b/po/ku.po
@@ -0,0 +1,864 @@
+# Kurdish translation for tuxmath
+# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-05-28 12:30+0000\n"
+"Last-Translator: Amed Ãeko Jiyan <amedcj at gmail.com>\n"
+"Language-Team: Kurdish <ku at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-06-24 22:12+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Bi xêr hatî TuxMathê!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Peywira te ew e ku"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "îgoyên penguenan ji kevirên fezayî"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "yên dikevin biparêzî."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Bersivên pirsên matematîkê"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "binivîse biÅkoka 'space' an jî 'anter' bitikîne"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "û kevirên fezayî bisekinîne."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Niha biceribîne!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Derbekî baŠbû!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Eger kevirekî fezayî li îglooyekê bikeve,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "îgloo dihele. Lê xeman nexwe;"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "penguen hê jî dijî!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Binêre ka çi dibe:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Ji bo destpêkirinê pêlî biÅkokekê bike)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Ji bo bersivê baldar be"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Eger heman îgloo dîsa derb bixwe,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "penguen diçe."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Dema amade bî pêlî biÅkokekê bike)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Dikarî îglooyan bi sekinandina"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "kevirên fezayî tamîr bikî"
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Niha lê bixe!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Pir çak e!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Dema bixwazî derkevî"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'Esc' an jî 'X' bitikîne"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "û ji lîstikê derkeve."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "NIha 'ESC' an jî 'X' bitikîne û dest bi lîstikê bike!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hola Navdaran"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "LeÅkerê Fezayê"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Åopger"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Parazvan"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "Tuxmath belaŠe û ji çavkaniya-vekirî ye!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Ji bo pêÅdebirinê dikarî çewtiyan rapor bikî,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+"Dikarî ji navnîÅana tuxmath-devel at lists.sourceforge.net tevli nîqaÅên ji bo "
+"dahatûya bernameyê bibî."
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Dikarî peldanka 'options' a di pelrêça malê de"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "serast bikî û lîstikeke taybet biafirînî!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Ji bo destpêkirina lîstikekê pêlî miÅkî an jî biÅkokekê bike."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Ji bo zêdetir agahî pelê README.txt bixwîne"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Dema amade bî pêlî biÅkokekê bike)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Kiriyar Didome!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Ev taybetmendî hê ne amade ye"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Sohbeta der barê dahatûya TuxMathê de"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Alîkarî"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Nivîsandina Hejmaran"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Tevandin: Ji 1'ê heta 3'yan"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Tevandin: Ji 0'ê heta 5'an"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Tevandin: Tevandina heta 10'an"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Tevandin: Tevandina heta 15'an"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Tevandin: Tevandina heta 20'an"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Tevandin: Bi reqemên dumalik"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Tevandin: Reqemên Kêm"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Derandin: Ji 0'î heta 10'an"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Derandin: Ji 0'î heta 20'an"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Derandin: Reqemên dumalik"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Kontrolkirina tevandin û derandinan"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Carandin: Ji 0'ê heta 3'an"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Carandina 2'an"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Carandina 3'an"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Carandina 4'an"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Carandina 5'an"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Carandin: Ji 0'ê heta 5'an"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Carandina 6'an"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Carandina 7'an"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Car: Ji 0'ê heta 7'an"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Carandina 8'an"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Carandina 8'an"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Carandina 10'an"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Carandin: Ji 0'ê heta 10'an"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Carandina 11 û 12'an"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Carandin: Ji 0'ê heta 12'an"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Carandina 13, 14, 15'an"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Carandin: Ji 0'ê heta 15'an"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Carandin: Hejmarên Kêm"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "2 Parkirin"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "3 Parkirin"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "4 Parkirin"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "5 Parkirin"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Parandin: Ji 1'ê heta 5'an"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "6 Parkirin"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "7 Parkirin"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "8 Parkirin"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "9 Parkirin"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "10 Parkirin"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Parandin: Ji 1'ê heta 10 'an"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "11 û 12 Parkirin"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Parandin: Ji 1'ê heta 12'an"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "13, 14, 15 Parkirin"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Parandin: Ji 1'ê heta 15'an"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Kontrolkirina Carandin û Parandinan"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Nivîsandina Hejmarên Negatîf"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Derandin: Bersivên Negatîf"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Tevandina Hejmarên Negatîf li yên Pozîtîf"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Tevandina Hejmarên Negatîf li yên Negatîf"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Derandina Hejêmarên Negatîf ji yên Pozîtîf"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Derandina Hejmarên Negatîf ji yên Negatîf"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Tevandina Hejmarên Negatîf li yên Negatîf"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Derandina Hejmarên Negatîf ji yên Negatîf"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Carandin û Parandina Hejmarên Negatîf"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Carandina Hejmarên Pozîtîf û yên Negatîf"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Parandina Hejmarên Pozîtîf û yên Negatîf"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Yên ked dane"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "PêÅeka GiÅtî"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Akademiya Perwerdehiya Matematîkê"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Zêdetir Vebijêrk"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Lîsteya Lîstikan"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Lîstika takekes bilîze"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Agahiyên Projeyê"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Derkeve"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "Main menu"
+#~ msgstr "PêÅeka GiÅtî"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "pêÅniyarên xwe ragihînî an jî kodan têxiyê"
diff --git a/po/nb.gmo b/po/nb.gmo
new file mode 100644
index 0000000..c1bfbcc
Binary files /dev/null and b/po/nb.gmo differ
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 0000000..9a26ee0
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,874 @@
+# Translation of nb to Norwegian Nynorsk
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Karl Ove Hufthammer <karl at huftis.org>, 2007, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: nb\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-09-21 19:08+0200\n"
+"Last-Translator: Karl Ove Hufthammer <karl at huftis.org>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn at lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Velkommen til TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Oppdraget ditt er å redde"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "igloene til pingvinene fra"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "kometer fra verdensrommet."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Du kan stoppe en komet ved"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "å skrive inn svaret, og så"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "«Mellomrom» eller «Enter»."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Prøv det nå!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Bra skudd!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Hvis en iglo blir truffet av en"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "komet, smelter den. Men ta det"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "med ro: pingvinen klarer seg!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Berre se hva som skjer."
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Trykk en tast for å se.)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Legg merke til rett svar."
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Hvis igloen blir truffet på nytt,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "vandrer pingvinen bort."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Trykk en tast når du er klar.)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Du kan bygge opp igjen igloene"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "ved å stoppe bonuskometer."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Skyt kometen nå!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Kjempebra!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Du kan når som helst gi deg,"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "ved å trykke «Escape» eller"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "klikke på X-en oppe til høyre."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Prøv det nå, og start spillet!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Rekordar"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Romkadett"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Romlærling"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Romvokter"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Romsjef"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Romkommandør"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Faktorer"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Brøker"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath er fri programvare!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Du kan være med på å gjøre spillet bedre, ved å melde fra"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Diskuter framtiden på tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Rediger «options»-fila i hjemmemappa di"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "for å lage ditt eget spill."
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Trykk en tast eller med musen for å starte spillet."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Se «README.txt» for mer informasjon."
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Trykk en tast når du er klar.)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Uferdig!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Denne funksjonen er ikke klar ennå."
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskuter fremtiden til TuxMath på"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Hjelp"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Tallskriving"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addisjon: 1 til 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addisjon: 0 til 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addisjon: Summer til 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addisjon: Summer til 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addisjon: Summer til 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addisjon: Tosifrede tall"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addisjon: Manglende tall"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraksjon: 0 til 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraksjon: 0 til 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraksjon: Tosifrede tall"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Gjennomgang: Addisjon og subtraksjon"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplikasjon: 0 til 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiplum av 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiplum av 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiplum av 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiplum av 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplikasjon: 0 til 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiplum av 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiplum av 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplikasjon: 0 til 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiplum av 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiplum av 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiplum av 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplikasjon: 0 til 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiplum av 11 og 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplikasjon: 0 til 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiplum av 13, 14 og 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplikasjon: 0 til 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplikasjon: Manglende tall"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Divisjon med 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Divisjon med 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Divisjon med 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Divisjon med 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Divisjon: 1 til 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Divisjon med 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Divisjon med 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Divisjon med 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Divisjon med 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Divisjon med 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Divisjon: 1 til 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Divisjon med 11 og 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Divisjon: 1 til 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Divisjon med 13, 14 og 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Divisjon: 1 til 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Gjennomgang: Multiplikasjon og divisjon"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Negative tall"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraksjon: Negative svar"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Addisjon av negative til positive tall"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Addisjon av negative til negative tall"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtraksjon av negative fra positive tall"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtraksjon av negative fra negative tall"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Addisjon av negative til negative tall"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtraksjon av negative fra negative tall"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Gjennomgang: Negative og positive tall"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplikasjon og divisjon av negative tall"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplikasjon av positive og negative tall"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Divisjon av positive og negative tall"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Bidragsytere"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstrasjon"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+#, fuzzy
+msgid "Factoroids!"
+msgstr "Faktorer"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hovedmeny"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Oppdrag"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Kadettskole"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Flere valg"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Spill alene"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Arkadespill"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Selvlaget spill"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Spill med venner"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Prosjektinfo"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Avslutt"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "om feil, foreslå forbedringer eller bidra med programkode."
+
+#~ msgid "Main menu"
+#~ msgstr "Hovedmeny"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "igloene til pingvinene fra"
+
+#, fuzzy
+#~ msgid "forever, Commando!"
+#~ msgstr "Romkommandør"
+
+#~ msgid "Other Math Command Activities"
+#~ msgstr "Andre aktiviteter"
diff --git a/po/nl.gmo b/po/nl.gmo
new file mode 100644
index 0000000..5438b1d
Binary files /dev/null and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 0000000..e4fa11a
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,859 @@
+# Dutch translation of tuxmath.pot for TuxMath
+# This file is put in the public domain.
+# Schrijvers Luc <Begasus at skynet.be>, 2007.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2007-11-15 09:00+0100\n"
+"Last-Translator: Schrijvers Luc <Begasus at skynet.be>\n"
+"Language-Team: Dutch <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hoogste scores"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Ruimte kadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ace"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath is gratis en open-source!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Je kan helpen met het verbeteren door problemen te melden,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Praat over de toekomst via tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Bewerk 'options' bestand in je home folder"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "voor een eigen spel!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Druk op een toets of de muis om het spel te starten."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Lees README.txt voor meer informatie"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Werk in uitvoering"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Deze functie is nog niet beschikbaar"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Praat over de toekomst van TuxMath op"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Help"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Nummers typen"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Optellen 1 tot 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Optellen 1 tot 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Optellen: sommen tot 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Optellen: sommen tot 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Optellen: sommen tot 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Optellen: dubbele getallen"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Optellen: missende getallen"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Aftellen: 0 tot 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Aftellen: 0 tot 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Aftellen: dubbele getallen"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Optellen en aftellen test"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Vermenigvuldigen: 0 tot 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Vermenigvuldigingen van 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Vermenigvuldigingen van 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Vermenigvuldigingen van 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Vermenigvuldigingen van 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Vermenigvuldig: 0 tot 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Vermenigvuldigingen van 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Vermenigvuldigingen van 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Vermenigvuldig: 0 tot 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Vermenigvuldigingen van 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Vermenigvuldigingen van 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Vermenigvuldigingen van 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Vermenigvuldig: 0 tot 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Vermenigvuldigingen van 11 en 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Vermenigvuldig: 0 tot 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Vermenigvuldigingen van 13, 14 en 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Vermenigvuldig: 0 tot 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Vermenigvuldig: missende getallen"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Delen door 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Delen door 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Delen door 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Delen door 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Delen: 1 tot 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Delen door 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Delen door 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Delen door 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Delen door 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Delen door 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Delen: 1 tot 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Delen door 11 en 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Delen: 1 tot 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Delen door 13, 14 en 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Delen: 1 tot 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Vermenigvuldigen en delen test"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Typ negatieve getallen"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Aftellen: negatieve antwoorden"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Optellen: negatief naar positief"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Optellen: negatief naar negatief"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Aftellen: negatief van positief"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Aftellen: negatief van negatief"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Optellen: negatief naar negatief"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Aftellen: negatief van negatief"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Negatieve en positieve getallen test"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Vermenigvuldigen en delen van negatieven"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Vermenigvuldigen van positieven en negatieven"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Delen van positieven en negatieven"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Kredieten"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hoofdmenu"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Reken commando training academie"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Meer opties"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Speel Arcade spel"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Speel je eigen spel"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Projekt info"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Afsluiten"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "suggesties verbeteringen, of code toevoegen."
+
+#~ msgid "Main menu"
+#~ msgstr "Hoofdmenu"
diff --git a/po/nn.gmo b/po/nn.gmo
new file mode 100644
index 0000000..9afdc77
Binary files /dev/null and b/po/nn.gmo differ
diff --git a/po/nn.po b/po/nn.po
new file mode 100644
index 0000000..c6ac92e
--- /dev/null
+++ b/po/nn.po
@@ -0,0 +1,996 @@
+# Translation of nn to Norwegian Nynorsk
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Karl Ove Hufthammer <karl at huftis.org>, 2007, 2008, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: nn\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-04-16 18:58+0200\n"
+"Last-Translator: Karl Ove Hufthammer <karl at huftis.org>\n"
+"Language-Team: Norwegian Nynorsk <i18n-nn at lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 0.2\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Gratulerer! Du vann!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Runde"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "(Trykk «Escape» for å hoppa over.)"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Oppdrag 1: Kampklare kadett"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "Eg er så glad du endeleg er her!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"Pingvinane treng hjelp frå deg! Det fell kometar frå himmelen, og dei "
+"smeltar igloane til pingvinane. For å redda heimane deira, må du finna dei "
+"hemmelege kodane som øydeleggjer kometane."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Gjer ditt beste!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Oppdrag 2: Listige læring"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"Bra jobba! Sidan du klarte å redda heimane til pingvinane, forfremjar me deg "
+"til romlærling. HÃ¥par du har lært Ã¥ hanska vanskar â¦"
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"⦠for no får du nokon rett i hendene! TaVekk-arane kjem, og dei sender nye "
+"og endå skumlare kometar mot pingvinane!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "Men du kan redda dei!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Oppdrag 3: Vaktsam vaktar"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"Du klarte det igjen! Keisarpingvinen har valt deg til å delta i den "
+"offisielle romvaktargruppa som vernar om byen. Me sender deg der no â¦"
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"Ã
nei, å nei! Keisarpingvinen sjølv vert no angripen, av dei nye "
+"gongekometane. Desse er endå vanskelegare, og for å øydeleggja dei må du "
+"vera dugande dyktig. Men me trur du vil klara det. Vert med romvaktarane og "
+"redd byen!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Oppdrag fire: Supersjef"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"Du klarte det! Keisaren ønskjer å takka deg personleg. Me tek deg med til "
+"ispalasset hans, der du får æra av å verta utnemnd til keisarleg romsjef!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr "Men midt under seremonien kjem det eit angrep frå deleland!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Inga tid til å kvila på laurbæra; byen treng di hjelp!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Siste oppdrag: Kodeknekkingskommandør"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Forskarpingvinane har funne ut alle angrepa kjem frå ein hemmeleg base, og "
+"dei treng hjelp frå deg til å øydeleggja basen. Dei har òg eit lite tips: "
+"Gonga først, dela så, og avslutt med å leggja til og trekkja frå."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "HÃ¥par tipset er til hjelp!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "Endeleg! No kan du klara å stoppa angrepa for alltid, romkommandør!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Prøv på nytt!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Oppdrag utførd. Galaksen er no trygg!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "MATTE-TUX"
+
+#: src/credits.c:36
+#, fuzzy
+msgid "COPYRIGHT 2001-2010"
+msgstr "COPYRIGHT 2001â2009"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "EIN DEL AV «TUX4KIDS»-PROSJEKTET"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "UTFORMA AV"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "HOVUDUTVIKLARAR"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "MEIR KODE"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "HOVUDKUNSTNAR"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "FLEIRE BILETE"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "LYDEFFEKTAR"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MUSIKK"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "PAKKARAR"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "PINGVINEN TUX ER LAGA AV"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "TESTARAR"
+
+#: src/credits.c:103
+#, fuzzy
+msgid "USER WEBSITE"
+msgstr "HEIMESIDE"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath er fri programvare, og er tilgjengeleg under GNU General Public "
+"License (GPL). Denne lisensen gjev deg rettar du vanlegvis ikkje har med "
+"ikkje-fri programvare."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"Du kan blant anna studera, kopiera, gjera endringar i og vidareformidla "
+"programmet."
+
+#: src/credits.c:113
+#, fuzzy
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"Heile GNU GPL-lisensen er tilgjengeleg i hjelpetekstane som følgjer med "
+"programmet."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+"For meir informasjon om fri programvare og GNU GPL, kan du vitja nettstaden"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FAKTOROIDAR: For å vinna må du øydeleggja elle asteroidane."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Bruk piltastane til å dreia rundt eller fly framover. Sikt på ein"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "asteroide, skriv inn éin av faktorane og trykk «Enter»"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+"eller «Mellomrom» for å dela han opp. Primtalsasteroidar vert øydelagde."
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "BRÃKAR: For Ã¥ vinna mÃ¥ du øydeleggja elle asteroidane."
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr "Skriv inn eit tal som kan forenkla brøken, og trykk «Enter»"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"eller «Mellomrom» for Ã¥ dela han. Ãydelegg brøkar som ikkje kan forenklast "
+"med eit enkeltskot."
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Velkommen til TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Oppdraget ditt er å redda"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "igloane til pingvinane frå"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "kometar frå verdsrommet."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Du kan stoppa ein komet ved"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "å skriva inn svaret, og så"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "«Mellomrom» eller «Enter»."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Prøv det no!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Bra skot!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Viss ein iglo vert treft av ein"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "komet, smeltar han. Men ta det"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "med ro: pingvinen klarer seg!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Berre sjå kva som skjer."
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Trykk ein tast for å sjå.)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Legg merke til rett svar."
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Viss igloen vert treft på nytt,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "vandrar pingvinen vekk."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Trykk ein tast når du er klar.)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Du kan byggja opp att igloane"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "ved å stoppa bonuskometar."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Skyt kometen no!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Kjempebra!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Du kan når som helst gje deg,"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "ved å trykkja «Escape» eller"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "klikka på X-en oppe til høgre."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Prøv det no, og start spelet!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Rekordar"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Romkadett"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Romlærling"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Romvaktar"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Romsjef"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Romkommandør"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Faktorar"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Brøkar"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "Du fekk ein ny rekord!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Skriv inn namnet ditt:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath er fri programvare!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Du kan vera med på å gjera spelet betre, ved å melda frå"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Diskuter framtida på tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Rediger «options»-fila i heimemappa di"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "for å laga ditt eige spel."
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Trykk ein tast eller med musa for å starta spelet."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Sjå «README.txt» for meir informasjon."
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "Kor mange spelar?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(2 til 4 spelarar)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Skriv inn namnet ditt:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Skriv inn namnet ditt:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Skriv inn namnet ditt:"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Trykk ein tast når du er klar.)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Kven spelar først?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Kven sin tur er det så?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "Kor mange rundar vil du spela?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Skriv inn eit tal"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Uferdig!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Denne funksjonen er ikkje klar enno."
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskuter framtida til TuxMath på"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Hjelp"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Talskriving"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addisjon: 1 til 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addisjon: 0 til 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addisjon: Summar til 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addisjon: Summar til 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addisjon: Summar til 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addisjon: Tosifra tal"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addisjon: Manglande tal"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraksjon: 0 til 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraksjon: 0 til 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraksjon: Tosifra tal"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Gjennomgang: Addisjon og subtraksjon"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplikasjon: 0 til 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiplum av 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiplum av 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiplum av 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiplum av 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplikasjon: 0 til 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiplum av 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiplum av 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplikasjon: 0 til 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiplum av 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiplum av 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiplum av 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplikasjon: 0 til 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiplum av 11 og 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplikasjon: 0 til 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiplum av 13, 14 og 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplikasjon: 0 til 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplikasjon: Manglande tal"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Divisjon med 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Divisjon med 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Divisjon med 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Divisjon med 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Divisjon: 1 til 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Divisjon med 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Divisjon med 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Divisjon med 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Divisjon med 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Divisjon med 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Divisjon: 1 til 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Divisjon med 11 og 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Divisjon: 1 til 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Divisjon med 13, 14 og 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Divisjon: 1 til 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Gjennomgang: Multiplikasjon og divisjon"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Negative tal"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraksjon: Negative svar"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Addisjon av negative til positive tal"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Addisjon av positive til negative tal"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtraksjon av negative frå positive tal"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtraksjon av positive frå negative tal"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Addisjon av negative til negative tal"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtraksjon av negative frå negative tal"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Gjennomgang: Negative og positive tal"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplikasjon og divisjon av negative tal"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplikasjon av positive og negative tal"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Divisjon av positive og negative tal"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Bidragsytarar"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstrasjon"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Eliminering"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "Faktoroidar!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hovudmeny"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Oppdrag"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Kadettskule"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Fleire val"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Spel åleine"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Arkadespel"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Sjølvlaga spel"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Spel med venner"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Prosjektinfo"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Avslutt"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Poengsamling"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "om feil, foreslå forbetringar eller bidra med programkode."
+
+#~ msgid "Main menu"
+#~ msgstr "Hovudmeny"
+
+#~ msgid "The penguins need your help! Comets"
+#~ msgstr "Pingvinane treng hjelp frå deg! Det fell"
+
+#~ msgid "are falling from the sky, and are melting"
+#~ msgstr "kometar frå himmelen, og dei smeltar"
+
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "igloane til pingvinane. For å redda heimane"
+
+#~ msgid "we need you to find the secret code that"
+#~ msgstr "deira, må du finna dei hemmelege kodane"
+
+#~ msgid " will zap each comet."
+#~ msgstr "som øydeleggjer kometane."
+
+#~ msgid "Great job! Since you saved the penguins' homes,"
+#~ msgstr "Bra jobba! Sidan du klarte å redda heimane til"
+
+#~ msgid "we are promoting you to Scout. Scouts are good"
+#~ msgstr "pingvinane, forfremjar me deg til romlærling."
+
+#~ msgid "for keeping an eye out for trouble..."
+#~ msgstr "HÃ¥par du har lært Ã¥ hanska vanskar â¦"
+
+#~ msgid "...like what's happening right now!"
+#~ msgstr "⦠for no får du nokon rett i hendene!"
+
+#~ msgid "The TakeAways have come, and they're sending"
+#~ msgstr "TaVekk-arane kjem, og dei sender nye og"
+
+#~ msgid "new, trickier comets against the penguins!"
+#~ msgstr "endå skumlare kometar mot pingvinane!"
+
+#~ msgid "You've done it again! The Penguin Emperor has"
+#~ msgstr "Du klarte det igjen! Keisarpingvinen har valt"
+
+#~ msgid "chosen you to join his team of Rangers that"
+#~ msgstr "deg til å delta i den offisielle romvaktargruppa"
+
+#~ msgid "help protect the city. We're sending you"
+#~ msgstr "som vernar om byen. Me sender deg"
+
+#~ msgid "there now..."
+#~ msgstr "der no â¦"
+
+#~ msgid "...oh no! Now the Emperor himself is under attack,"
+#~ msgstr "Ã
nei, å nei! Keisarpingvinen sjølv vert no angripen,"
+
+#~ msgid "from new types of comets: these problems are"
+#~ msgstr "av dei nye gongekometane. Desse er endå"
+
+#~ msgid "multiplying! To fight these, you need great"
+#~ msgstr "vanskelegare, og for å øydeleggja dei må du"
+
+#~ msgid "skill. We think you can do it. Join the"
+#~ msgstr "vera dugande dyktig. Men me trur du vil"
+
+#~ msgid "Rangers and help save the city!"
+#~ msgstr "klara det. Vert med romvaktarane og redd byen!"
+
+#~ msgid "You did it! The Emperor wants to thank you"
+#~ msgstr "Du klarte det! Keisaren ønskjer å takka deg"
+
+#~ msgid "in person. We are taking you to his ice palace"
+#~ msgstr "personleg. Me tek deg med til ispalasset hans,"
+
+#~ msgid "for a great honor: you will become"
+#~ msgstr "der du får æra av å verta utnemnd"
+
+#~ msgid "the Imperial Ace!"
+#~ msgstr "til keisarleg romsjef!"
+
+#~ msgid "But right in the middle of the ceremony,"
+#~ msgstr "Men midt under seremonien"
+
+#~ msgid "needs your help!"
+#~ msgstr "treng di hjelp!"
+
+#~ msgid "Penguin scientists have learned that all"
+#~ msgstr "Forskarpingvinane har funne ut alle"
+
+#~ msgid "these attacks are coming from a secret"
+#~ msgstr "angrepa kjem frå ein hemmeleg base,"
+
+#~ msgid "base, and they need you to go fight"
+#~ msgstr "og dei treng hjelp frå deg til å"
+
+#~ msgid "the final battle. They also give you"
+#~ msgstr "øydeleggja basen. Dei har òg eit"
+
+#~ msgid "this clue: first do multiplication and"
+#~ msgstr "lite tips: Gonga først, dela så, og"
+
+#~ msgid "division, and then do addition and subtraction."
+#~ msgstr "avslutt med å leggja til og trekkja frå."
+
+#~ msgid "forever, Commando!"
+#~ msgstr "for alltid, romkommandør!"
+
+#~ msgid "Other Math Command Activities"
+#~ msgstr "Andre aktivitetar"
diff --git a/po/oc.gmo b/po/oc.gmo
new file mode 100644
index 0000000..d70db14
Binary files /dev/null and b/po/oc.gmo differ
diff --git a/po/oc.po b/po/oc.po
new file mode 100644
index 0000000..f713dc3
--- /dev/null
+++ b/po/oc.po
@@ -0,0 +1,857 @@
+# Occitan (post 1500) translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Yannig MARCHEGAY (Kokoyaya) <yannig at marchegay.org>
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-02-25 16:55+0000\n"
+"Last-Translator: Yannig MARCHEGAY (Kokoyaya) <yannig at marchegay.org>\n"
+"Language-Team: Occitan (post 1500) <oc at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr ""
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr ""
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr ""
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr ""
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr ""
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr ""
+
+#: src/menu.c:376
+msgid "You can help make it better."
+msgstr ""
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr ""
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr ""
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr ""
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr ""
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr ""
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr ""
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr ""
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Ajuda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Adicion : de 1 a 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Adicion : de 0 a 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Adicion : sumas fins a 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Adicion : sumas fins a 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Adicion : sumas fins a 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Sostraccion : de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Sostraccion : de 0 a 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Sostraccions : nombres de doas chifras"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplicacion : de 0 a 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multiples de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multiples de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multiples de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multiples de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplicacion : de 0 a 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multiples de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multiples de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplicacion : de 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multiples de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multiples de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multiples de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplicacion : de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multiples de 11 e 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplicacion : de 0 a 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multiples de 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplicacion : de 0 a 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division per 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division per 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division per 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division per 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division : de 1 a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division per 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division per 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division per 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division per 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division per 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division : de 1 a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division per 11 e 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division : de 1 a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division per 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division : de 1 a 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr ""
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Mercejaments"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr ""
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menut principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Mai d'opcions"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr ""
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr ""
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr ""
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Sortir"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "Main menu"
+#~ msgstr "Menut principal"
diff --git a/po/pl.gmo b/po/pl.gmo
new file mode 100644
index 0000000..404ec73
Binary files /dev/null and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..d7fdb81
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,872 @@
+# Polish translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Mateusz Tybura <wujciol at gmail.com>
+# Mateusz Owczarek
+# Mr G.
+# wojtusm
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-02-25 18:43+0000\n"
+"Last-Translator: Mateusz Tybura <wujciol at gmail.com>\n"
+"Language-Team: Polish <pl at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Lista najlepszych"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Kosmiczny Kadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Strzelec"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Strażnik"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath jest wolny i ma otwarte źródÅa"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Możesz pomóc uczyniÄ go lepszym zgÅaszajÄ
c bÅÄdy."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Dyskutuj na temat przyszÅoÅci na tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edytuj pik 'options' w swoim katalogu domowym"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr ""
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "NaciÅnij klawisz albo kliknij myszkÄ
aby uruchomiÄ grÄ."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Przeczytaj README.txt, żeby uzyskaÄ wiÄcej informacji"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Prace trwajÄ
!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Ta cecha jeszcze nie jest gotowa"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Dyskusje na temat przyszÅoÅci Tuxmath na"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Pomoc"
+
+#: data/missions/lessons/descr_lessons:1
+#, fuzzy
+msgid "Number Typing"
+msgstr "Wpisywanie numerów"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Dodawanie: 1 do 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Dodawanie: 0 do 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Dodawanie: Sumy do 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Dodawanie: Sumy do 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Dodawanie: Sumy do 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Dodawanie: Dwucyfrowe liczby"
+
+#: data/missions/lessons/descr_lessons:8
+#, fuzzy
+msgid "Addition: Missing Numbers"
+msgstr "Dodawanie: z niewiadomÄ
"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Odejmowanie: 0 do 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Odejmowanie: 0 do 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Odejmowanie: dwucyfrowe liczby"
+
+#: data/missions/lessons/descr_lessons:12
+#, fuzzy
+msgid "Addition and Subtraction Review"
+msgstr "Powtórka z dodawania i odejmowania"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Mnożenie: 0 do 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "WielokrotnoÅci liczby 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "WielokrotnoÅci liczby 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "WielokrotnoÅci liczby 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "WielokrotnoÅci liczby 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Mnożenie: 0 do 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "WielokrotnoÅci liczby 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "WielokrotnoÅci liczby 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Mnożenie: 0 do 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "WielokrotnoÅci liczby 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "WielokrotnoÅci liczby 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "WielokrotnoÅci liczby 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Mnożenie: 0 do 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "WielokrotnoÅci liczb 11 i 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Mnożenie: 0 do 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "WielokrotnoÅci liczb 13,14 i 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Mnożenie: 0 do 15"
+
+#: data/missions/lessons/descr_lessons:30
+#, fuzzy
+msgid "Multiplication: Missing Numbers"
+msgstr "Mnożenie: z niewiadomÄ
"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Dzielenie przez 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Dzielenie przez 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Dzielenie przez 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Dzielenie przez 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Dzielenie: 1 do 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Dzielenie przez 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Dzielenie przez 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Dzielenie przez 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Dzielenie przez 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Dzielenie przez 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Dzielenie: 1 do 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Dzielenie przez 11 i 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Dzielenie: 1 do 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Dzielenie przez 13,14 i 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Dzielenie: 1 do 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Powtórka z mnożenia i dzielenia"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Pisanie liczb ujemnych"
+
+#: data/missions/lessons/descr_lessons:48
+#, fuzzy
+msgid "Subtraction: Negative Answers"
+msgstr "Odejmowanie: ujemne odpowiedzi"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Dodawanie liczb ujemnych do dodatnich"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Dodawanie liczb ujemnych do ujemnych"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Odejmowanie liczb ujemnych od dodatnich"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Odejmowanie liczb ujemnych od dodatnich"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Dodawanie liczb ujemnych do ujemnych"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Odejmowanie liczb ujemnych od dodatnich"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Powtórka z liczb dodatnich i ujemnych"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Mnożenie i dzielenie liczb ujemnych"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Mnożenie liczb dodatnich i ujemnych"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Dzielenie liczb dodatnich i ujemnych"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Twórcy"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstracja"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menu gÅówne"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Akademia Treningowa PoleceÅ Math"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "WiÄcej opcji"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Zagraj w grÄ zrÄcznoÅciowÄ
"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Zagraj w wybranÄ
grÄ"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Informacja o projekcie"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Wyjdź"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#, fuzzy
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "Zasugeruj ulepszenia lub dodaj kod"
+
+#~ msgid "Main menu"
+#~ msgstr "Menu gÅówne"
diff --git a/po/pt.gmo b/po/pt.gmo
new file mode 100644
index 0000000..720384d
Binary files /dev/null and b/po/pt.gmo differ
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..b818374
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,911 @@
+# Portuguese translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Mykas0 <Mykas0 at gmail.com>
+# Tiago Silva
+# sandro
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-10-14 16:04+0100\n"
+"Last-Translator: Pedro Amorim <pedro_amorim at live.com.pt>\n"
+"Language-Team: Portuguese <pt at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 1.2.1\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Parabéns! Ganhaste!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Volta"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] para saltar"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Missão Um: Cuidado Cadete"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "Estou tão feliz por teres chegado!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"Os pinguins precisam da tua ajuda! Estão a cair cometas do céu, e estão a "
+"derreter os iglos dos pinguins. Para salvar as casas deles, precisamos de ti "
+"para encontrar o código secreto que vai dar um tiro a cada um dos cometas."
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Faz o teu melhor!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Missão Dois: Batedor Inteligente"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+"Bom trabalho! Uma vez que salvas-te as casas dos pinguins, vais ser "
+"promovido para Batedor. Os Batedores são bons para manter um olho fora dos "
+"sarilhos..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...como o que está acontecer agora mesmo! Os TakeAways vieram, e eles estão "
+"a mandar de novo cometas contra os pinguins!"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "Mas tu podes salvá-los!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Missão Três: Ranger Nobre"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"Tu conseguiste outra vez! O Pinguim Imperador escolheu a ti para participar "
+"na sua equipe de Rangers que ajudam a proteger a cidade. Vamos enviar-te "
+"para lá agora..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...oh não! Agora, o Pinguim Imperador está a ser atacado, por novos tipos de "
+"cometas: estes multiplicam-se! Para combater contra estes, precisas de uma "
+"grande habilidade. Achamos que tu podes fazer isso. Junta-te aos Rangers e "
+"ajuda a salvar a cidade!"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Missão Quatro: Ãs Imperial"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"Conseguiste! O Imperador quer agradecer-te pessoalmente. Estamos a levar-te "
+"para o seu palácio de gelo com grande honra: tornas-te o Ãs Imperial!"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+"Mas mesmo no meio da cerimónia, um novo ataque a partir da terra da Divisão "
+"começa!"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Agora não é hora para descansar, a cidade precisa da tua ajuda!"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Missão Final: Comando Informático"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"Cientistas Pinguins aprenderam que todos estes ataques são provenientes de "
+"uma base secreta, e eles precisam de ti para combater a batalha final. Eles "
+"também te dão esta dica: em primeiro lugar fazer multiplicação e divisão, e "
+"depois fazer soma e subtracção."
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "Espero que a dica ajude!"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "Ã isso! Tu podes parar esses ataques para sempre, Comando!"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Desculpa, tenta outra vez!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Missão cumprida. A galáxia está segura!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr "TUX, COMANDO DA MATEMÃTICA"
+
+#: src/credits.c:36
+#, fuzzy
+msgid "COPYRIGHT 2001-2010"
+msgstr "DIREITOS DE AUTOR 2001-2009"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "PARTE DO PROJECTO \"TUX4KIDS\""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "DESENHADO POR"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr "PROGRAMADORES LÃDERES"
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr "CÃDIGO ADICIONAL"
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr "ARTISTA LÃDER"
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr "ARTE ADICIONAL"
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "EFEITOS DE SOM"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "MUSICA"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr "EMPACOTADOR"
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "'TUX' O PINGUIM CRIADO POR"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr "TESTADORES"
+
+#: src/credits.c:103
+#, fuzzy
+msgid "USER WEBSITE"
+msgstr "WEBSITE"
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+"TuxMath é Software Livre licenciado sob a GNU General Public License (GPL). "
+"Como tal, é-lhe concedido especificamente os direitos de que são geralmente "
+"negado aos usuários de software proprietário."
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+"Estes direitos incluem a liberdade de estudar, copiar, modificar e "
+"redistribuir o programa."
+
+#: src/credits.c:113
+#, fuzzy
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+"Uma cópia completa da GPL está incluÃda na documentação para este programa."
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr "Para mais informações sobre Software Livre e da GNU GPL, visite:"
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "FACTOROIDS: para ganhar, precisas de destruir todos os asteróides."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+"Utiliza as setas do teclado para virar ou ir em frente. Faz mira contra um "
+"asteróide,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+"digitando o número que corresponde ao seu factor, e carregas nas teclas "
+"Espaço ou Enter"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+"para dividir entre os seus factores. As rochas com números primos são "
+"destruÃdos! Por exemplo o factor primo de 6 é 2 e 3 (6 = 2 à 3)"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "FRACÃÃES: para ganhar, precisas de destruir todos os asteróides."
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"digitando um número que pode simplificar a divisão, e carregas nas teclas "
+"Espaço ou Enter"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"para o dividir. Destrói fracções que não podem ser mais simplificadas com "
+"um único tiro!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Bem-vindo ao TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "A tua missão é salvar os"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "iglos dos pinguins da"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "queda dos cometas."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Pára um cometa"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "respondendo ao problema matemático"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "e carrega na tecla 'espaço' ou 'enter'."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Tenta agora!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Bom tiro!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Se um iglo for atingido por um cometa,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "ele derrete-se. Mas não te preocupes: o"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "pinguim está bem!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Basta veres o que acontece"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Carrega numa tecla para começar)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Observa a resposta"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Se for atingindo outra vez, o"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "pinguim vai embora."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(carrega numa tecla quando estiveres preparado)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Tu podes reparar os iglos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "parando os cometas bónus."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Destrói-o agora!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Bom trabalho!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Sai a qualquer momento carregando em"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "'Esc' ou 'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "que está no canto superior direito."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Faz isso agora e, depois joga!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Corredor da Fama"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadete Espacial"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Batedor"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ãs"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Comando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Factores"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Divisões"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "Tu estás no Corredor da Fama"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Coloca o Teu Nome:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath é livre e com código aberto!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Podes ajudar o TuxMath ao reportar problemas,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discuta o futuro em tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edita o ficheiro 'options' que está na tua directoria pessoal"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "para criar um jogo customizado!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr ""
+"Pressiona em qualquer tecla do teclado ou clique no rato para começar o jogo."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Lê o ficheiro README.txt para mais informações!"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "Quantas crianças vão jogar?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(Entre 2 a 4 jogadores)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Coloca o Teu Nome:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Coloca o Teu Nome:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Coloca o teu nome:"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(carrega numa tecla quando estiveres preparado)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Quem vai jogar primeiro?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Quem joga a seguir?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "Quantas voltas querem jogar?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Coloca um número"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Trabalho em Progresso!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Este recurso ainda não está pronto"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discuta o futuro do TuxMath em"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Ajuda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Número de Digitalização"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Soma: 1 até 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Soma: 0 até 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Soma: Somas até 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Soma: Somas até 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Soma: Somas até 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Soma: Números com Dois DÃgitos"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Soma: Falta Números"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtracção: 0 até 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtracção: 0 até 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtracção: Números com Dois DÃgitos"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Revisão de Soma e Subtracção"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplicação: 0 até 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Múltiplos de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Múltiplos de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Múltiplos de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Múltiplos de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplicação: 0 até 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Múltiplos de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Múltiplos de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplicação: 0 até 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Múltiplos de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Múltiplos de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Múltiplos de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplicação: 0 até 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Múltiplos de 11 e 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplicação: 0 até 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Múltiplos de 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplicação: 0 até 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplicação: Falta Números"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Divisão por 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Divisão por 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Divisão por 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Divisão por 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Divisão: 1 até 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Divisão por 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Divisão por 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Divisão por 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Divisão por 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Divisão por 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Divisão: 1 até 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Divisão por 11 e 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Divisão: 1 até 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Divisão por 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Divisão: 1 até 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Revisão da Multiplicação e da Divisão"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Digitar Números Negativo"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtracção: Respostas Negativas"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Somar Negativos com Positivos"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Somar Positivos com Negativos"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtraindo Negativos com Positivos"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtraindo Positivos com Negativos"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Somar Negativos com Negativos"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtraindo Negativos com Negativos"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Revisão dos Números Negativos e Positivos"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplicação e Divisão de Negativos"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplicação de Positivos e Negativos"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Divisão de Positivos e Negativos"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Créditos"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstração"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "Eliminação"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "Factoroids!"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menu Principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Frota de Missões para Comando da Matemática"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Academia de Treino Comando da Matemática"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Mais Opções"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Jogar Sozinho"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Jogar Modo Arcada"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Jogar Modo de Prática"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Jogar Com Amigos"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Informação do Projecto"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Sair"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "Pontuação"
+
+#~ msgid "Main menu"
+#~ msgstr "Menu principal"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "sugerindo melhorias, ou adicionando código."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
new file mode 100644
index 0000000..62149a2
Binary files /dev/null and b/po/pt_BR.gmo differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..5a13011
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,867 @@
+# Brazilian Portuguese translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Laudeci Oliveira <laudeci at gmail.com>
+# Andrews Medina
+# André Gondim
+# Julio
+# daniellibanori
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-03 21:35+0000\n"
+"Last-Translator: Laudeci Oliveira <laudeci at gmail.com>\n"
+"Language-Team: Brazilian Portuguese <pt_BR at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Hall da Fama"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Cadete Espacial"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Sentinela"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Defensor"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Especialista"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath é gratuÃto e software livre!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Você pode ajudar a torná-lo melhor reportando problemas."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Discutir o futuro em tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Edite o arquivo 'options\" no seu diretório home"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "criar jogo personalizado!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Pressione uma tecla ou clique com seu mouse para iniciar o jogo."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Leia o README.txt para mais informações"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Trabalho em curso"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Esta função ainda não está disponÃvel"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Discutir o futuro do TuxMath em"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Ajuda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Digitar Número"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Adição: 1 até 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Adição: 0 até 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Adição: Somar até 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Adição: Somar até 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Adição: Somar até 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Adição: Números de Dois DÃgitos"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Adição: Números Perdidos"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtração: 0 até 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtração: 0 até 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtração: Números de Dois Digitos"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Revisão de Adição e Subtração"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplicação: 0 até 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Múltiplos de 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Múltiplos de 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Múltiplos de 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Múltiplos de 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplicação: 0 até 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Múltiplos de 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Múltiplos de 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplicação: 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Múltiplos de 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Múltiplos de 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Múltiplos de 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplicação: 0 até 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Múltiplos de 11 e 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplicação: 0 até 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Múltiplos de 13, 14 e 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplicação: 0 até 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplicação: Números Perdidos"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Divisão por 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Divisão por 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Divisão por 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Divisão por 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Divisão: 1 até 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Divisão por 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Divisão por 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Divisão por 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Divisão por 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Divisão por 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Divisão: 1 até 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Divisão por 11 e 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Divisão: 1 até 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Divisão por 13, 14, e 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Divisão: 1 até 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Revisar Multiplicação e Divisão"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Entre com um Número Negativo"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtração: Respostas Negativas"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Adicionando Negativos para Positivos"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Adicionando Negativos para Negativos"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtrair Negativos de Positivos"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtrair Negativos de Negativos"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Adicionando Negativos para Negativos"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtrair Negativos de Negativos"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Revisar Números Negativos e Positivos"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplicação e Divisão de Negativos"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplicação de Positivos e Negativos"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Divisão de Positivos e Negativos"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Créditos"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstração"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Menu Principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Comando de Treinamento Matemático Acadêmico"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Mais Opções"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Jogar jogo de Arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Jogar um Jogo Personalizado"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Informação do Projeto"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Sair"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "sugerindo melhorias, ou programando."
+
+#~ msgid "Main menu"
+#~ msgstr "Menu Principal"
diff --git a/po/quot.sed b/po/quot.sed
new file mode 100644
index 0000000..0122c46
--- /dev/null
+++ b/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/â\1â/g
+s/`\([^`']*\)'/â\1â/g
+s/ '\([^`']*\)' / â\1â /g
+s/ '\([^`']*\)'$/ â\1â/g
+s/^'\([^`']*\)' /â\1â /g
+s/ââ/""/g
diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin
new file mode 100644
index 0000000..2436c49
--- /dev/null
+++ b/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/ru.gmo b/po/ru.gmo
new file mode 100644
index 0000000..a0e8496
Binary files /dev/null and b/po/ru.gmo differ
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 0000000..cf9f5df
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,864 @@
+# Russian translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# Ivan Kliouchenkov
+# ¡ÝÖÜãÑßÕâ AldeX ¬âíÝàÓ
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-01 06:56+0000\n"
+"Last-Translator: ÐлекÑÐ°Ð½Ð´Ñ AldeX ÐÑÑлов <Unknown>\n"
+"Language-Team: Russian <ru at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Ðал ÑлавÑ"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "ÐоÑмиÑеÑкий кÑÑÑанÑ"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "РазведÑик"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "РейнджеÑ"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "ÐÑ"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath ÑвободнÑй и оÑкÑÑÑÑй!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "ÐÑ Ð¼Ð¾Ð¶ÐµÑе ÑлÑÑÑиÑÑ ÑÑÐ¾Ñ Ð¿ÑодÑкÑ, ÑообÑив о пÑоблеме,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "ÐбÑÑдиÑе бÑдÑÑее пÑогÑÐ°Ð¼Ð¼Ñ Ð½Ð° tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "РедакÑиÑоваÑÑ Ñайл паÑамеÑÑов в ваÑей домаÑней диÑекÑоÑии"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑелÑÑкой игÑÑ!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "ÐажмиÑе клавиÑÑ Ð¸Ð»Ð¸ кликниÑе мÑÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка игÑÑ."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "СмоÑÑиÑе README.txt Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "РабоÑа пÑодолжаеÑÑÑ!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "ÐÑа ÑÑнкÑÐ¸Ñ Ð¿Ð¾ÐºÐ° не гоÑова"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "ÐбÑÑдиÑÑ Ð±ÑдÑÑее TuxMath на"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "ÐомоÑÑ"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "ЧиÑловой ввод"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Сложение: Ð¾Ñ 1 до 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Сложение: Ð¾Ñ 0 до 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Сложение: СÑÐ¼Ð¼Ñ Ð´Ð¾ 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Сложение: СÑÐ¼Ð¼Ñ Ð´Ð¾ 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Сложение: СÑÐ¼Ð¼Ñ Ð´Ð¾ 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Сложение: ÐвÑзнаÑнÑе ÑиÑла"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Сложение: ÐÑопÑÑеннÑе ÑиÑла"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "ÐÑÑиÑание: Ð¾Ñ 0 до 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "ÐÑÑиÑание: Ð¾Ñ 0 до 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "ÐÑÑиÑание: ÐвÑзнаÑнÑе ÑиÑла"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "ÐÐ±Ð·Ð¾Ñ ÑÐ»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ вÑÑиÑаниÑ"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Умножение: Ð¾Ñ 0 до 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Умножение на 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Умножение на 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Умножение на 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Умножение на 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Умножение: Ð¾Ñ 0 до 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Умножение на 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Умножение на 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Умножение: Ð¾Ñ 0 до 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Умножение на 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Умножение на 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Умножение на 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Умножение: Ð¾Ñ 0 до 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Умножение на 11 и 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Умножение: Ð¾Ñ 0 до 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Умножение на 13, 14 и 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Умножение: Ð¾Ñ 0 до 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Умножение: ÐÑопÑÑеннÑе ÑиÑла"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Ðеление на 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Ðеление на 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Ðеление на 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Ðеление на 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Ðеление: Ð¾Ñ 1 до 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Ðеление на 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Ðеление на 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Ðеление на 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Ðеление на 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Ðеление на 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Ðеление: Ð¾Ñ 1 до 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Ðеление на 11 и 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Ðеление: Ð¾Ñ 1 до 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Ðеление на 13, 14 и 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Ðеление: Ð¾Ñ 1 до 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "ÐÐ±Ð·Ð¾Ñ ÑÐ¼Ð½Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ делениÑ"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Ðвод оÑÑиÑаÑелÑнÑÑ
ÑиÑел"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "ÐÑÑиÑание: ÐÑÑиÑаÑелÑнÑй ÑезÑлÑÑаÑ"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Сложение оÑÑиÑаÑелÑнÑÑ
и положиÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Сложение оÑÑиÑаÑелÑнÑÑ
Ñ Ð¾ÑÑиÑаÑелÑнÑми"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "ÐÑÑиÑание оÑÑиÑаÑелÑнÑÑ
из положиÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "ÐÑÑиÑание оÑÑиÑаÑелÑнÑÑ
из оÑÑиÑаÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Сложение оÑÑиÑаÑелÑнÑÑ
Ñ Ð¾ÑÑиÑаÑелÑнÑми"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "ÐÑÑиÑание оÑÑиÑаÑелÑнÑÑ
из оÑÑиÑаÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "ÐÐ±Ð·Ð¾Ñ Ð¾ÑÑиÑаÑелÑнÑÑ
и положиÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Умножение и деление оÑÑиÑаÑелÑнÑÑ
"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Умножение положиÑелÑнÑÑ
на оÑÑиÑаÑелÑнÑе"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Ðеление положиÑелÑнÑÑ
и оÑÑиÑаÑелÑнÑÑ
"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "РазÑабоÑÑики"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "ÐемонÑÑÑаÑиÑ"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Ðлавное менÑ"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "УÑÐµÐ±Ð½Ð°Ñ Ð°ÐºÐ°Ð´ÐµÐ¼Ð¸Ñ Ð¿Ð¾ аÑиÑмеÑике"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "ÐополниÑелÑнÑе наÑÑÑойки"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "ÐгÑаÑÑ Ð² аÑкаднÑÑ Ð¸Ð³ÑÑ"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "ÐгÑаÑÑ Ð² полÑзоваÑелÑÑкÑÑ Ð¸Ð³ÑÑ"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "ÐнÑоÑмаÑÐ¸Ñ Ð¾ пÑоекÑе"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "ÐÑÑ
од"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "пÑедложив ÑлÑÑÑение или добавив код."
+
+#~ msgid "Main menu"
+#~ msgstr "Ðлавное менÑ"
diff --git a/po/sk.gmo b/po/sk.gmo
new file mode 100644
index 0000000..8ef7ade
Binary files /dev/null and b/po/sk.gmo differ
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 0000000..afb22b3
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,864 @@
+# Slovak translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# salwator
+# %GÅ %@tefan Lu%GÄ%@ivjanský
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-03-16 09:41+0000\n"
+"Last-Translator: Å tefan LuÄivjanský <lucorp at azet.sk>\n"
+"Language-Team: Slovak <sk at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "SieŠslávy"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "VesmÃrny kadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Skaut"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "PoruÄÃk"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Eso"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath je slobodný software!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "MôžeÅ¡ ho vylepÅ¡iÅ¥ aj ty oznamovanÃm problémov,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Diskutuj o budúcnosti na tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Uprav súbor «options » vo svojom domovskom prieÄinku,"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "aby si mohol vytvoriť svoju vlastnú hru!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Pre spustenie hry stlaÄte ľubovoľnú klávesu, alebo kliknite myÅ¡ou."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Pre viac informácià pozrite README.txt"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Spracováva sa!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Táto vlastnosť ešte nie je pripravená"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskutuj o budúcnosti TuxMath na"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "PomocnÃk"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "PÃsanie ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "SÄÃtanie: od 1 do 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "SÄÃtanie: Od 0 do 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "SÄÃtanie: SúÄty do 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "SÄÃtanie: SúÄty do 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "SÄÃtanie: SúÄty do 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "SÄÃtanie: Dvojciferné ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "SÄÃtanie: Vynechané ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "OdÄÃtanie: Od 0 do 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "OdÄÃtanie: Od 0 do 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "OdÄÃtanie: Dvojciferné ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "SÄÃtanie a odÄÃtanie: Opakovanie"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Násobenie: Od 0 do 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Násobky 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Násobky 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Násobky 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Násobky 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Násobenie: Od 0 do 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Násobky 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Násobky 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Násobenie: Od 0 do 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Násobky 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Násobky 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Násobky 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Násobenie: Od 0 do 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Násobky 10 a 11"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Násobenie: Od 0 do 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Násobky 13, 14 a 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Násobenie: Od 0 do 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Násobenie: Vynechané ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Delenie 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Delenie 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Delenie 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Delenie 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Delenie 1 až 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Delenie 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Delenie 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Delenie 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Delenie 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Delenie 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Delenie 1 až 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Delenie 11 a 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Delenie 1 až 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Delenie 13, 14 a 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Delenie 1 až 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Násobanie a delenie: Opakovanie"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "PÃsanie záporných Äisiel"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "OdÄÃtavanie: Záporné ÄÃsla"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "SÄÃtavanie a odÄÃtavanie kladných a záporných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "SÄÃtanie záporných ÄÃsiel so zápornými ÄÃslami"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "OdÄÃtavanie záporných od kladných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "OdÄÃtanie záporných ÄÃsiel od záporných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "SÄÃtanie záporných ÄÃsiel so zápornými ÄÃslami"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "OdÄÃtanie záporných ÄÃsiel od záporných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Kladné a záporné ÄÃsla: Opakovanie"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Násobenie a delenie záporných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Násobenie kladných a záporných ÄÃsiel"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Delenie kladných a záporných ÄÃsiel"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Tvorcovia"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demo"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Hlavná ponuka"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "CviÄná akadémia matematického ovládania"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Viac možnostÃ"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Hrať arkádovú hru"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Hrať vlastnú hru"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Informácie o projekte"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Koniec"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "navrhovanÃm vylepÅ¡enÃ, alebo pridanÃm kódu"
+
+#~ msgid "Main menu"
+#~ msgstr "Hlavná ponuka"
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 0000000..7ad1729
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,861 @@
+# Slovenian translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-07-17 12:30+0000\n"
+"Last-Translator: Å tefan Baebler <Unknown>\n"
+"Language-Team: Slovenian <sl at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-06-24 22:16+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr ""
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr ""
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Tabornik"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Äuvaj"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath je prost in odprtokoden!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "S sporoÄanjem težav, predlogov za izboljÅ¡ave in"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Pogovor o prihodnosti na tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Za igro po meri spremenite datoteko"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "'options' v vaÅ¡i domaÄi mapi."
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Za zaÄetek igre pritisni tipko ali klikni z miÅ¡ko."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Za veÄ podrobnosti preberite datoteko README.txt"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Delo Å¡e poteka!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Ta možnost še ni pripravljena"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Pogovor o prihodnsti programa TuxMath na"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "PomoÄ"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Tipkanje Å¡tevilk"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Seštevanje: 1 do 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Seštevanje: 0 do 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Seštevanje: vsote do 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Seštevanje: vsote do 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Seštevanje: vsote do 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Seštevanje: dvomestna števila"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "SeÅ¡tevanje: manjkajoÄa Å¡tevila"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Odštevanje: 0 do 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Odštevanje: 0 do 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Odštevanje: dvomestna števila"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Pregled seštevanja in odštevanja"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Množenje: 0 do 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "VeÄkratniki Å¡tevila 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "VeÄkratniki Å¡tevila 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "VeÄkratniki Å¡tevila 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "VeÄkratniki Å¡tevila 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Množenje: 0 do 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "VeÄkratniki Å¡tevila 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "VeÄkratniki Å¡tevila 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Množenje: 0 do 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "VeÄkratniki Å¡tevila 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "VeÄkratniki Å¡tevila 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "VeÄkratniki Å¡tevila 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Množenje: 0 do 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "VeÄkratniki Å¡tevil 11 in 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Množenje: 0 do 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "VeÄkratniki Å¡tevil 13, 14 in 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Množenje: 0 do 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Množenje: manjkajoÄa Å¡tevila"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Deljenje z 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Deljenje s 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Deljenje s 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Deljenje s 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Deljenje: 1 do 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Deljenje s 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Deljenje s 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Deljenje z 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Deljenje z 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Deljenje z 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Deljenje: 1 do 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Deljenje z 11 in 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Deljenje: 1 do 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Deljenje s 13, 14 in 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Deljenje: 1 do 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Pregled množenja in deljenja"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Tipkanje negativnih Å¡tevil"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Odštevanje: negativni rezultati"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Seštevanje negativnih in pozitivnih števil"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Seštevanje negativnih števil"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Odštevanje negativnih od pozitivnih števil"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Odštevanje negativnih števil"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Seštevanje negativnih števil"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Odštevanje negativnih števil"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Pregled negativnih in pozitivnih Å¡tevil"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Množenje in deljenje negativnih števil"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Množenje pozitivnih in negativnih števil"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Deljenje pozitivnih in negativnih Å¡tevil"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Zasluge"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr ""
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Glavni meni"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "VeÄ možnosti"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Igraj arkadno igro"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Igraj igro po meri"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "O projektu"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "KonÄaj"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "Main menu"
+#~ msgstr "Glavni meni"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "dopolnitvami kode lahko program še izboljšamo."
diff --git a/po/sv.gmo b/po/sv.gmo
new file mode 100644
index 0000000..3aa95fe
Binary files /dev/null and b/po/sv.gmo differ
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..ece4d15
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,974 @@
+# Swedish translation for tuxmath.
+# This file is put in the public domain.
+# Daniel Nylander <po at danielnylander.se>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
+"Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Swedish\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Gratulerar! Du vann!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Omgång"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-[Esc] för att hoppa över"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Uppdrag 1: Försiktig kadett"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "Jag är så glad att du kom!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "Gör ditt yttersta!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Uppdrag 2: Smart scout"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "Du kan rädda dem!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Uppdrag 3: Kunglig jägare"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Uppdrag 4: Empirisk mästare"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+#, fuzzy
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr "en ny attack från Divisionslandet!"
+
+#: src/campaign.c:154
+#, fuzzy
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Det finns ingen tid att förlora. Staden"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Sista uppdraget: Beräknande kommandosoldat"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "Jag hoppas att tipset hjälper!"
+
+#: src/campaign.c:165
+#, fuzzy
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "Nu gäller det! Du kan stoppa dessa"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Tyvärr, försök igen!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Uppdraget slutfört! Galaxen är säker!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "NÃMNARE: för att vinna behöver du förstöra alla asteroider."
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+"Använd piltangenterna för att svänga eller gå framåt. Sikta på en asteroid,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "skriv in en av dess nämnare och tryck på Blanksteg eller Return"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "för att dela den i sina nämnare. Stenar med primtal förstörs!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "BRÃ
K: för att vinna behöver du förstöra alla asteroider"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"skriv in ett tal som kan förenkla bråket och tryck på Blanksteg eller Return"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"för att dela det. Förstör bråken som inte kan förenklas mer i ett enda skott!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Välkommen till TuxMath!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Ditt uppdrag är att rädda dina"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "pingviners igloos från"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "fallande kometer."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Stoppa en komet genom att"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "skriva in svaret på matteproblemet,"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "trycka på \"blanksteg\" eller \"Enter\"."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Prova det nu!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Bra skjutet!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "Om en igloo träffas av en komet,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "så smälter den. Men var lugn,"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "pingvinen är OK!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Se vad som händer:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(Tryck på en tangent)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Observera svaret"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "Om den blir träffad igen,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "kommer pingvinen att gå."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Tryck på en tangent)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Du kan bygga nya igloos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "genom att stoppa bonuskometer."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Skjut den nu!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Bra jobbat!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Avsluta när du vill genom att"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "trycka \"Esc\" eller klicka på \"X\""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "i övre högra hörnet."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Gör det nu och spela sedan!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Poänglistan"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Rymdkadett"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Scout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Jägare"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Mästare"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Kommandosoldat"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Nämnare"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Bråk"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr "Du kom med på poänglistan!"
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Skriv ditt namn:"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath är gratis och öppen källkod!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Du kan hjälpa oss att göra det bättre genom att rapportera problem,"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Diskutera framtiden på tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "Redigera filen \"options\" i din hemkatalog"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "för att skapa anpassade spel!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Tryck på en tangent eller klicka med musen för att starta spelet."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Se README.txt för mer information"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Skriv ditt namn:"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Skriv ditt namn:"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+#, fuzzy
+msgid "Enter your name:"
+msgstr "Skriv ditt namn:"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Tryck på en tangent)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+#, fuzzy
+msgid "Enter a number"
+msgstr "Skriv ditt namn:"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Arbete pågår!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Denna funktion är inte färdig ännu"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Diskutera framtiden för TuxMath på"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Hjälp"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Skriv in tal"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Addition: 1 till 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Addition: 0 till 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Addition: Summor upp till 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Addition: Summor upp till 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Addition: Summor upp till 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Addition: Tal med två siffror"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Addition: Saknade tal"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Subtraktion: 0 till 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Subtraktion: 0 till 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Subtraktion: Tal med två siffror"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Mer addition och subtraktion"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Multiplikation: 0 till 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Multipler av 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Multipler av 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Multipler av 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Multipler av 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Multiplikation: 0 till 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Multipler av 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Multipler av 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Multiplikation: 0 till 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Multipler av 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Multipler av 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Multipler av 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Multiplikation: 0 till 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Multipler av 11 och 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Multiplikation: 0 till 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Multipler av 13, 14 och 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Multiplikation: 0 till 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Multiplikation: Saknade tal"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Division med 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Division med 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Division med 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Division med 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Division: 1 till 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Division med 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Division med 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Division med 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Division med 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Division med 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Division: 1 till 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Division med 11 och 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Division: 1 till 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Division med 13, 14 och 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Division: 1 till 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Mer multiplikation och division"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Skriv in negativa tal"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Subtraktion: Negativa svar"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Addera negativa till positiva tal"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Addera negativa med negativa tal"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Subtrahera negativa från positiva tal"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Subtrahera negativa från negativa tal"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Addera negativa med negativa tal"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Subtrahera negativa från negativa tal"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Fler negativa och positiva tal"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Multiplikation och division med negativa tal"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Multiplikation med positiva och negativa tal"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Division med positiva och negativa tal"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Tack till"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Demonstration"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+#, fuzzy
+msgid "Factoroids!"
+msgstr "Nämnare"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Huvudmeny"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Uppdrag för matematikflottan"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Akademin för matematikträning"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Fler alternativ"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Spela ensam"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Spela arkadspel"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Spela anpassat spel"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "Spela med vänner"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Projektinformation"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Avsluta"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "föreslå förbättringar eller bidra med programkod."
+
+#~ msgid "Main menu"
+#~ msgstr "Huvudmeny"
+
+#~ msgid "The penguins need your help! Comets"
+#~ msgstr "Pingvinerna behöver din hjälp! Kometer"
+
+#~ msgid "are falling from the sky, and are melting"
+#~ msgstr "faller från himlen och smälter"
+
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "pingvinernas igloos. Vi behöver dig"
+
+#~ msgid "we need you to find the secret code that"
+#~ msgstr "för att hitta hemliga koden som kan"
+
+#~ msgid " will zap each comet."
+#~ msgstr "förstöra varje komet för att rädda dem."
+
+#~ msgid "Great job! Since you saved the penguins' homes,"
+#~ msgstr "Bra jobbat! Eftersom du räddat pingvinernas hem"
+
+#~ msgid "we are promoting you to Scout. Scouts are good"
+#~ msgstr "så befordrar vi dig till Scout. Scoter är bra"
+
+#~ msgid "for keeping an eye out for trouble..."
+#~ msgstr "på att se upp för problem..."
+
+#~ msgid "...like what's happening right now!"
+#~ msgstr "... precis det som händer just nu!"
+
+#~ msgid "The TakeAways have come, and they're sending"
+#~ msgstr "Bortförarna har kommit och de skickar nya"
+
+#~ msgid "new, trickier comets against the penguins!"
+#~ msgstr "svårare kometer mot pingvinerna!"
+
+#~ msgid "You've done it again! The Penguin Emperor has"
+#~ msgstr "Du har lyckats igen! Pingvinernas kejsare har"
+
+#~ msgid "chosen you to join his team of Rangers that"
+#~ msgstr "valt dig till sin grupp av jägare som ska"
+
+#~ msgid "help protect the city. We're sending you"
+#~ msgstr "hjälpa till att skydda staden. Vi skickar dit"
+
+#~ msgid "there now..."
+#~ msgstr "dig nu..."
+
+#~ msgid "...oh no! Now the Emperor himself is under attack,"
+#~ msgstr "... Ã
h nej! Nu är själva kejsaren under attack"
+
+#~ msgid "from new types of comets: these problems are"
+#~ msgstr "från nya typer av kometer. Problemen bara"
+
+#~ msgid "multiplying! To fight these, you need great"
+#~ msgstr "förökar sig! Du behöver erfarenhet för"
+
+#~ msgid "skill. We think you can do it. Join the"
+#~ msgstr "att bekämpa dessa. Vi tror att du kan göra"
+
+#~ msgid "Rangers and help save the city!"
+#~ msgstr "det. Gå med jägarna och rädda staden!"
+
+#~ msgid "You did it! The Emperor wants to thank you"
+#~ msgstr "Du klarade det! Kejsaren vill tacka dig"
+
+#~ msgid "in person. We are taking you to his ice palace"
+#~ msgstr "personligen. Vi tar dig till hans ispalats"
+
+#~ msgid "for a great honor: you will become"
+#~ msgstr "för att ge dig ära. Du kommer att"
+
+#~ msgid "the Imperial Ace!"
+#~ msgstr "bli en Empirisk mästare!"
+
+#~ msgid "But right in the middle of the ceremony,"
+#~ msgstr "Men just i mitten av ceremonin så inleds"
+
+#~ msgid "needs your help!"
+#~ msgstr "behöver din hjälp!"
+
+#~ msgid "Penguin scientists have learned that all"
+#~ msgstr "Pingvinvetenskapsmännen har upptäckt att"
+
+#~ msgid "these attacks are coming from a secret"
+#~ msgstr "alla dessa attacker kommer från en hemlig"
+
+#~ msgid "base, and they need you to go fight"
+#~ msgstr "bas och de behöver dig för att utkämpa"
+
+#~ msgid "the final battle. They also give you"
+#~ msgstr "den sista striden. De har även gett dig"
+
+#~ msgid "this clue: first do multiplication and"
+#~ msgstr "denna ledtråd: multiplicera och dividera"
+
+#~ msgid "division, and then do addition and subtraction."
+#~ msgstr "först, gör sedan addition och subtraktion."
+
+#~ msgid "forever, Commando!"
+#~ msgstr "attacker för alltid, Kommandosoldat!"
+
+#~ msgid "Other Math Command Activities"
+#~ msgstr "Andra matematikaktiviteter"
diff --git a/po/tr.gmo b/po/tr.gmo
new file mode 100644
index 0000000..6249be1
Binary files /dev/null and b/po/tr.gmo differ
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 0000000..364b2e5
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,970 @@
+# translation of tr2.po to Turkish
+# This file is put in the public domain.
+#
+# Doruk Fisek <dfisek at fisek.com.tr>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: tr2\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-12-07 15:54+0200\n"
+"Last-Translator: Doruk Fisek <dfisek at fisek.com.tr>\n"
+"Language-Team: Turkish <gnu-tr-u12a at lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Tebrikler! Kazandın!"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "Tur"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "-Atlamak için [Esc]"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "Görev Bir : Dikkatli Tertip"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "GeldiÄine çok sevindim!"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "En iyisini yap!"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "Görev İki: Akıllı İzci"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "Ama sen onları kurtarabilirsin!"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "Görev Ãç: Asil Korucu"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "Görev Dört: İmparatorluk Ası"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+#, fuzzy
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr "yeni bir saldırı baÅlar!"
+
+#: src/campaign.c:154
+#, fuzzy
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "Åimdi dinlenmek için zaman yok; Åehrin"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "Son Görev: Hesaplama Komandosu"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "Umarım bu ipucu iÅine yarar!"
+
+#: src/campaign.c:165
+#, fuzzy
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "Hepsi bu! Bu saldırıları sonsuza dek"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "Ãzgünüm, tekrar dene!"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Görev baÅarıyla tamamlandı. Galaksi güvenli!"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "Ok tuÅlarını kullanarak dön ya da ileri git. Bir asteroidi hedef al,"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "çarpanlarından birini yaz ve boÅluk ya da enter'e "
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "basarak çarpanlarına ayır. Asal sayılar olan kayalar yok oluyor!"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "KESİRLER: Kazanmak için tüm asteroitleri yok etmen gerekiyor."
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+"Kesiri basitleÅtirebilecek bir sayıyı yazıp boÅluk ya da enter'e basarak onu"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+"parçalayın. Daha fazla basitleÅtirilemeyen kesirleri tek bir atıÅta yok et!"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "TuxMath'e HoÅ Geldin!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Görevin penguenlerin evlerini"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "düÅen kuyruklu yıldızlardan"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "korumak."
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "Kuyruklu yıldızı durdurmak için"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "matematik probleminin yanıtını yaz"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "ve 'boÅluk' ya da 'enter' tuÅuna bas."
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "Åimdi dene!"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Ä°yi atıÅ!"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "EÄer bir ev kuyruklu yıldız tarafından"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "vurulursa erir. Ama merak etme :"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "içindeki penguene zarar gelmez!"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "Yalnız ne olduÄunu izle:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(BaÅlamak için bir tuÅa bas)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "Yanıta dikkat et"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "EÄer ev tekrar vurulursa,"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "içindeki penguen evi terk eder."
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(Hazır olunca herhangi bir tuÅa basın)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "Ek kuyruklu yıldızları durdurarak"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "evlerini tamir edebilirsin."
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "Hemen vur onu!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Ä°yi iÅ!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "Her an 'Esc'e basarak ya da"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "saÄ Ã¼st köÅedeki 'X'e"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "tıklayarak çıkabilirsin."
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "Hemen Åimdi yap ve sonra oyna!"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Gurur Tablosu"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Uzay Tertibi"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Ä°zci"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Korucu"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "As"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "Komando"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "Ãarpanlar"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Kesirler"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath özgür ve açık kaynak kodlu!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Sorunları bildirerek, iyileÅtirmeler önererek ya da kod yazarak"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+"tuxmath-devel at lists.sourceforge.net e-posta listesinde TuxMath'in geleceÄini "
+"tartıÅabilirsin"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "ÃzelleÅtirilmiÅ oyun yaratmak için"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "ev dizinindeki 'options' dosyasını düzenle!"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "Oyuna baÅlamak için bir tuÅa basın ya da fareye tıklayın."
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "Daha fazla bilgi için README.txt dosyasına bakın"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(Hazır olunca herhangi bir tuÅa basın)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "ÃalıÅmalar Sürüyor!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Bu özellik henüz hazır deÄil"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Tuxmath'in geleceÄini tartıÅıldıÄı liste :"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Yardım"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Sayı Yazmak"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Toplama: 1'den 3'e"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Toplama: 0'dan 5'e"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Toplama: Toplamı 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Toplama: Toplamı 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Toplama: Toplamı 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Toplama : İki Basamaklı Sayılar"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Toplama : Eksik Sayılar"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Ãıkarma: 0'dan 10'a"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Ãıkarma: 0'dan 20'ye"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "Ãıkarma: Ä°ki Basamaklı Sayılar"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Toplama ve Ãıkarma DeÄerlendirmesi"
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Ãarpma: 0'dan 3'e"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "2'nin Katları"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "3'ün Katları"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "4'ün Katları"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "5'in Katları"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Ãarpma: 0'dan 5'e"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "6'nın Katları"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "7'nin Katları"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Ãarpma: 0'dan 7'ye"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "8'in Katları"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "9'un Katları"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "10'un Katları"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Ãarpma: 0'dan 10'a"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "11 ve 12'nin Katları"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Ãarpma: 0'dan 12'ye"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "13, 14 ve 15'in Katları"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Ãarpma: 0'dan 15'e"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Ãarpma: Eksik Sayılar"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "2'ye Bölme"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "3'e Bölme"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "4'e Bölme"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "5'e Bölme"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Bölme: 1'den 5'e"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "6'ya Bölme"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "7'ye Bölme"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "8'e Bölme"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "9'a Bölme"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "10'a Bölme"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Bölme: 1'den 10'a"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "11 ve 12'ye Bölme"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Bölme: 1'den 12'ye"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "13, 14 ve 15'e Bölme"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Bölme: 1'den 15'e"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "Ãarpım ve Bölme DeÄerlendirmesi"
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Negatif Sayıların Yazımı"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "Ãıkartma: Negatif Sonuçlar"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Negatiflerle Pozitiflerin Toplanması"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "Negatiflerin Negatiflerle Toplanması"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Pozitiflerden Negatiflerin Ãıkartılması"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "Negatiflerin Negatiflerden Ãıkartılması"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Negatiflerin Negatiflerle Toplanması"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Negatiflerin Negatiflerden Ãıkartılması"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "Negatif ve Pozitif Sayıların DeÄerlendirmesi"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Negatif Sayıların Ãarpma ve Bölmesi"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Pozitiflerle Negatiflerin Ãarpılması"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "Pozitif ve Negatiflerin Bölünmesi"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Hazırlayanlar"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "Gösteri (Demo)"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+#, fuzzy
+msgid "Factoroids!"
+msgstr "Ãarpanlar"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Ana Menü"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "Matematik KomutanlıÄı Donanması Görevleri"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Matematik KomutanlıÄı EÄitim Akademisi"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Daha Ãok Seçenek"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "Yalnız Oyna"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "EÄlence Oyunu Oyna"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "Ãzel Oyun Oyna"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "ArkadaÅlarla Oyna"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Proje Bilgisi"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "ÃıkıÅ"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "daha iyi olmasına yardımcı olabilirsin."
+
+#~ msgid "Main menu"
+#~ msgstr "Ana menü"
+
+#~ msgid "The penguins need your help! Comets"
+#~ msgstr "Penguenlerin yardımına ihtiyacı var!"
+
+#~ msgid "are falling from the sky, and are melting"
+#~ msgstr "Kuyruklu yıldızlar gökten düÅüyor ve"
+
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "penguenlerin evlerini eritiyor. Evlerini kurtarmak için,"
+
+#~ msgid "we need you to find the secret code that"
+#~ msgstr "her kuyruklu yıldızı düÅürecek"
+
+#~ msgid " will zap each comet."
+#~ msgstr "gizli kodu bulmanı istiyoruz"
+
+#~ msgid "Great job! Since you saved the penguins' homes,"
+#~ msgstr "Ä°yi iŠçıkardın! Penguenlerin evlerini kurtardıÄın için,"
+
+#~ msgid "we are promoting you to Scout. Scouts are good"
+#~ msgstr "seni \"Ä°zci\"liÄe yükseltiyoruz. Ä°zciler"
+
+#~ msgid "for keeping an eye out for trouble..."
+#~ msgstr "olası bir soruna karÅı tetikte olurlar"
+
+#~ msgid "...like what's happening right now!"
+#~ msgstr "... tıpkı Åimdi olan gibi!"
+
+#~ msgid "The TakeAways have come, and they're sending"
+#~ msgstr "Paket servisleri geldi ve penguenlere yeni daha becerikli"
+
+#~ msgid "new, trickier comets against the penguins!"
+#~ msgstr "kuyruklu yıldızlar gönderiyorlar!"
+
+#~ msgid "You've done it again! The Penguin Emperor has"
+#~ msgstr "Tekrar baÅardın! Ä°mparator Penguen seni"
+
+#~ msgid "chosen you to join his team of Rangers that"
+#~ msgstr "Åehri korumaya yardımcı olan kendi korucular"
+
+#~ msgid "help protect the city. We're sending you"
+#~ msgstr "takımına katılman için seçti. Åimdi seni"
+
+#~ msgid "there now..."
+#~ msgstr "oraya gönderiyoruz..."
+
+#~ msgid "...oh no! Now the Emperor himself is under attack,"
+#~ msgstr "... oo hayır! Åimdi Ä°mparator'un kendisine saldırılıyor,"
+
+#~ msgid "from new types of comets: these problems are"
+#~ msgstr "hem de yeni tip kuyruklu yıldızlarla : problemler"
+
+#~ msgid "multiplying! To fight these, you need great"
+#~ msgstr "katlanıyor! Bunlarla savaÅmak için, harika yeteneklere"
+
+#~ msgid "skill. We think you can do it. Join the"
+#~ msgstr "gereksinim var. YapabileceÄini düÅünüyoruz."
+
+#~ msgid "Rangers and help save the city!"
+#~ msgstr "Koruculara katıl ve Åehri kurtarmaya yardım et!"
+
+#~ msgid "You did it! The Emperor wants to thank you"
+#~ msgstr "BaÅardın! Ä°mparator sana bizzat kendisi teÅekkür"
+
+#~ msgid "in person. We are taking you to his ice palace"
+#~ msgstr "etmek istiyor. Seni büyük bir onur kazanman için"
+
+#~ msgid "for a great honor: you will become"
+#~ msgstr "buzdan kalesine götürüyoruz :"
+
+#~ msgid "the Imperial Ace!"
+#~ msgstr "İmparatorluk Ası olacaksın!"
+
+#~ msgid "But right in the middle of the ceremony,"
+#~ msgstr "Törenin tam ortasında Bölme Ãlkesi'nden"
+
+#~ msgid "needs your help!"
+#~ msgstr "yardımında gereksinimi var!"
+
+#~ msgid "Penguin scientists have learned that all"
+#~ msgstr "Penguen bilim adamları tüm bu saldırıların"
+
+#~ msgid "these attacks are coming from a secret"
+#~ msgstr "gizli bir üsten geldiÄini öÄrendi ve senin"
+
+#~ msgid "base, and they need you to go fight"
+#~ msgstr "gidip bu iÅi sona erdirecek savaÅı"
+
+#~ msgid "the final battle. They also give you"
+#~ msgstr "kazanmana ihtiyaçları var. Sana bir de ipuuc"
+
+#~ msgid "this clue: first do multiplication and"
+#~ msgstr "verdiler: Ãnce çarpma ve bölmeyi, ondan"
+
+#~ msgid "division, and then do addition and subtraction."
+#~ msgstr "sonra toplama ve çıkarmayı yap."
+
+#~ msgid "forever, Commando!"
+#~ msgstr "durdurabilirsin Komando!"
+
+#~ msgid "Other Math Command Activities"
+#~ msgstr "DiÄer Matematik KomutanlıÄı Etkinlikleri"
diff --git a/po/tuxmath.pot b/po/tuxmath.pot
new file mode 100644
index 0000000..3c66841
--- /dev/null
+++ b/po/tuxmath.pot
@@ -0,0 +1,849 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath 1.8.0\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr ""
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr ""
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr ""
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr ""
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr ""
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr ""
+
+#: src/menu.c:376
+msgid "You can help make it better."
+msgstr ""
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr ""
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr ""
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr ""
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr ""
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr ""
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr ""
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr ""
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr ""
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr ""
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr ""
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr ""
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr ""
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr ""
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr ""
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr ""
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr ""
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..de8652f
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,859 @@
+# Vietnamese translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2008-07-22 18:01+0000\n"
+"Last-Translator: lusiads <Unknown>\n"
+"Language-Team: Vietnamese <vi at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2009-06-24 22:20+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr ""
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr ""
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr ""
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr ""
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr ""
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr ""
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr ""
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr ""
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr ""
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr ""
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr ""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr ""
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr ""
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr ""
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr ""
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr ""
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr ""
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr ""
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr ""
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr ""
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr ""
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr ""
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr ""
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr ""
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr ""
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr ""
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr ""
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr ""
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr ""
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr ""
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "Nhà lÆ°u niá»m"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "Space Cadet"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "Trinh sát"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "Ranger"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Ace"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMatch là phần má»m miá»
n phà và mã nguá»n má»!"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "Bạn có thá» giúp cải thiá»n chÆ°Æ¡ng trình bằng cách báo cáo lá»i."
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "Thảo luáºn vá» tÆ°Æ¡ng lai tại tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr ""
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr ""
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr ""
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr ""
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr ""
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+msgid "Click when ready"
+msgstr ""
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr ""
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Äang Äược thá»±c hiá»n!"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "TÃnh nÄng nà y chÆ°a sẵn sà ng"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "Thảo luáºn tÆ°Æ¡ng lại của TuxMath tại"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "Trợ giúp"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr ""
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr ""
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "Lá»i cám Æ¡n"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr ""
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr ""
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "Trình ÄÆ¡n chÃnh"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr ""
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "Tuỳ chá»n khác"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Chơi trò chơi Arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "ChÆ¡i trò chÆ¡i tá»± chá»n"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "Thông tin dự án"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "Thoát"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "Main menu"
+#~ msgstr "Trình ÄÆ¡n chÃnh"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "gợi ý cải thiá»n, hoặc viết thêm mã."
diff --git a/po/zam.po b/po/zam.po
new file mode 100644
index 0000000..10b92ec
--- /dev/null
+++ b/po/zam.po
@@ -0,0 +1,873 @@
+# Spanish translation for Tux, Of Math Command.
+# This file is put in the public domain.
+# Angela Ruiz <angieruiz211 at hotmail.com>
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 1.6.2\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-09-23 17:52-0600\n"
+"Last-Translator: Rodrigo Perez <rodpera at yahoo.com>\n"
+"Language-Team: espanol <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "Luú blÃÂl"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr ""
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "Bruú"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr ""
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr ""
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr ""
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr ""
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr ""
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr ""
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr ""
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr ""
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr ""
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr ""
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr ""
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr ""
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr ""
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "LiÃÂl taá diàves"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "Teé loól shiint. Luú siúu yeén kuan sbhaak"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+#, fuzzy
+msgid "COPYRIGHT 2001-2010"
+msgstr "Kué naák chaán TUXMATH 2001-2009"
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr "Chaán TUX4KIDS"
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr "Thus kuéy por"
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr "Saá taák diÃÂs haa"
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr "Saá diÃÂs haa"
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr "ÃŽTUXÃŽRee kooliÃÂn paar loó veent di"
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr ""
+"FACTOROIDS: Paar liÃÂl gaán, luú naa kiin loós luú reé keé naá loó "
+"beé"
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr ""
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr ""
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr ""
+"FRACCIONES: Paar liÃÂl gaán, luú naa kiin loós luú reé keé naá loó "
+"beé"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr ""
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr ""
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "Vestaá diiefluú TuxMath"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "Naá kiÃÂn ruúl tree"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "los igloos de tus pinguinos"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "Beél kiàde laá "
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "luhus Beél kii"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "debes teclar la respuesta correcta al problema matematico"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "Gaás \"enter\" o \"barra espaciadora\""
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "taá diif beés"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "Vesta bluú vi lil"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "si uno de los igloos es derramado por el cometa"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "Luús ha, naá sieéb luú"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "que el pinguino estara asalvo"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "GÃÅii koo bshaaÃŽk "
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "Gaás kuue paar tetél "
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "nota la respuesta"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "si el igloo es pegado por el cometa de nuevo "
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "el pinguino se va"
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "aprieta una tecla cuando estes listo "
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr " tu puedes areglar los igloos"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr " si logras parrar a los cometas de bono"
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "diis ah"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "Vaá kaá liÃÂl lÃÂ"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "si quieres parrarel juego en cualquier momento"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "lo puedes hacer oprimiendo la tecla de ESC or la x en la pantalla"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "en la equinq derecha"
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "LiÃÂy naál, será kiid"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "sala de fama"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "cadete espacial"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "escout"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "guardador"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "Yeég"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr ""
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr ""
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "Fracciones"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr "Taá leel"
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath es gratis y es una opcion abierta"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr ""
+"puedes hacer que el programa funcione mejor si reportas problems con el "
+"programa"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "discute el futuro en tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "editar opciones del archivo del directorio principal"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "para crear un juego especialmente"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "aprieta un tecla y con tu mouse oprime la opcion de empesar el juego"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "ver README.txt para mas informacion"
+
+#: src/menu.c:526
+#, fuzzy
+msgid "How many kids are playing?"
+msgstr "Plaal kiid luú?"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr ""
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+#, fuzzy
+msgid "Enter Server Name:"
+msgstr "Taá leel"
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+#, fuzzy
+msgid "Server Name:"
+msgstr "Taá leel"
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr "Taá leel"
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "aprieta una tecla cuando estes listo "
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr "Naal, Ah o yeenta %s\n"
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr "Choó kiÃÂd neerta?"
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr "Choó kiÃÂd será?"
+
+#: src/multiplayer.c:274
+msgid "How many rounds will you play?"
+msgstr "Plaal kiid luú?"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr "Toob diif numbr"
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "Deé thus kue kue "
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "Naá reshint kue"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "para discutir el futuro de TuxMath puedes ir a"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr ""
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "ayda"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "Keé diif numero"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "Teé shaap men: 1 a 3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "Teé shaap men: 0 a 5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "Teé shaap men: hasta 10"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "Teé shaap men hasta 15"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "Teé shaap men hasta 20"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "Keé gaáp paá: numeros de dos dijitos"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "Keé gaáp paá:con numeros que faltan"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "Kiib: de 0 a 10"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "Kiib: de 0 a 20"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "KiÃÂb: numeros de dos dijitos"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "Sée luú suúl kalta men ner kib men "
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "Teé eshent men: de 0 a 3"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "Teé eshent men en 2"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "Teé eshent men en 3"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "Teé eshent men en 4"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "Teé eshent men en 5"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "Teé eshent men en 0 a 5"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "Teé eshent men en 6"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "Teé eshent men en 7"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "Teé eshent men en 0 a 7"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "Teé eshent men en 8"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "Teé eshent men en 9"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "Teé eshent men en 10"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "Teé eshent men en 0 a 10"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "Teé eshent men en 11 y 12"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "Teé eshent men en 0 a 12"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "Teé eshent men en 13, 14, 15"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "Teé eshent men en 0 a 15"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "Teé eshent men en con un numero que falta"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "Liàroól laá en 2"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "Liàroól laá en 3"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "Liàroól laá en 4"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "Liàroól laá en 5"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "Liàroól laá en 1 a 5"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "Liàroól laá en 6"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "Liàroól laá en 7"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "Liàroól laá en 8"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "Liàroól laá en 9"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "Liàroól laá en 10"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "Liàroól laá en 1 a 10"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "Liàroól laá en 11 a 12"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "Liàroól laá en 1 a 12"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "Liàroól laá en 13,14 y 15"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "Liàroól laá en 1 a 15"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "GÃÅi taá diif veés kalta men ploy ner liàrool men na "
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "Keé numeros negativos"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "kiib men numeros negativos"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "Kalta numeros negativos a numeros positivos"
+
+#: data/missions/lessons/descr_lessons:50
+msgid "Adding Positives to Negatives"
+msgstr "Kalta numeros negativos a numeros negativos"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "Kiib men negativos de numeros positivos"
+
+#: data/missions/lessons/descr_lessons:52
+msgid "Subtracting Positives From Negatives"
+msgstr "Kiib numeros negativos de negativos"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "Kalta numeros negativos a numeros negativos"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "Kiib men numeros negativos de negativos"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "GÃÅi taá diifveés numeros negativos y positivos"
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "Kalta ploy ner lii rool laá numeros negativos"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "Kalta men ploy numeros positivos y negativos"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "lii rool men numeros positivos y negativos"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "creditos"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "demostracion"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr ""
+
+#: data/menus/menu_strings:6
+#, fuzzy
+msgid "Factoroids!"
+msgstr "Fracciones"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "menu principal"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr ""
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "Academia de entrenamiento de matematicas"
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "mas opciones"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr ""
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "Juega el juego de arcade"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "juega el juego hecho especialmente"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr ""
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "informacion del projecto"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "terminar"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr ""
+
+#~ msgid "Main menu"
+#~ msgstr "menu principal"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "sugestiones para mejorar el programa o para anadir un codigo"
+
+#, fuzzy
+#~ msgid "the penguins' igloos. To save their homes,"
+#~ msgstr "los igloos de tus pinguinos"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
new file mode 100644
index 0000000..efdf515
Binary files /dev/null and b/po/zh_CN.gmo differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..dff2b6c
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,875 @@
+# Simplified Chinese translation for tuxmath
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the tuxmath package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2008.
+#
+# Contributors:
+# TeliuTe <teliute at 163.com>
+msgid ""
+msgstr ""
+"Project-Id-Version: tuxmath\n"
+"Report-Msgid-Bugs-To: tuxmath-devel at lists.sourceforge.net\n"
+"POT-Creation-Date: 2010-05-07 17:05-0500\n"
+"PO-Revision-Date: 2009-02-07 18:04+0800\n"
+"Last-Translator: Xavier <XavierXavierye at gmail.com>\n"
+"Language-Team: Simplified Chinese <zh_CN at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2008-05-06 22:24+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: src/campaign.c:30
+msgid "Congratulations! You win!"
+msgstr "æåï¼ä½ èµ¢äºï¼"
+
+#: src/campaign.c:48
+msgid "Round"
+msgstr "åå"
+
+#: src/campaign.c:115 src/campaign.c:127 src/campaign.c:148 src/campaign.c:159
+msgid "-[Esc] to skip"
+msgstr "æEscé®è·³è¿"
+
+#: src/campaign.c:116
+msgid "Mission One: Careful Cadet"
+msgstr "第ä¸ä¸ªä»»å¡:认ççåæ ¡å¦å"
+
+#: src/campaign.c:118
+msgid "I'm so glad you've come!"
+msgstr "å¾é«å
´ä½ æ¥äº"
+
+#: src/campaign.c:120
+msgid ""
+"The penguins need your help! Comets are falling from the sky, and are "
+"melting the penguins' igloos. To save their homes, we need you to find the "
+"secret code that will zap each comet."
+msgstr ""
+"ä¼é¹
éè¦ä½ ç帮å©ï¼å½æä»å¤©èéï¼æ£å¨èåä¼é¹
çå°å±ã为äºä¿æ¤å®ä»¬çæ¿åï¼éè¦"
+"ä½ æ¾å°å¯ç æè´¥"
+
+#: src/campaign.c:122
+msgid "Do your best!"
+msgstr "å°½ä½ æè½ï¼"
+
+#: src/campaign.c:128
+msgid "Mission Two: Smart Scout"
+msgstr "第äºä¸ªä»»å¡ï¼èªæç侦å¯å"
+
+#: src/campaign.c:130
+msgid ""
+"Great job! Since you saved the penguins' homes, we are promoting you to "
+"Scout. Scouts are good for keeping an eye out for trouble..."
+msgstr "å¹²ç好ï¼å ä¸ºä½ ä¿æ¤äºä¼é¹
çå°å±ï¼æåä½ ä¸ºä¾¦å¯åï¼çæ§å¯è½ç麻ç¦..."
+
+#: src/campaign.c:132
+msgid ""
+"...like what's happening right now! The TakeAways have come, and they're "
+"sending new, trickier comets against the penguins!"
+msgstr ""
+"...就象æ£å¨åçç!æ 夺è
æ¥äºï¼ä»ä»¬æ£å¨åå°æ°çï¼æ´ç¡ç¾çå½ææ¥æ»å»ä¼é¹
ï¼"
+
+#: src/campaign.c:133
+msgid "But you can save them!"
+msgstr "ä½æ¯ä½ å¯ä»¥ä¿æ¤ä»ä»¬ï¼"
+
+#: src/campaign.c:139
+msgid "Mission Three: Royal Ranger"
+msgstr "第ä¸ä¸ªä»»å¡ï¼ç家çªå»é"
+
+#: src/campaign.c:141
+msgid ""
+"You've done it again! The Penguin Emperor has chosen you to join his team of "
+"Rangers that help protect the city. We're sending you there now..."
+msgstr ""
+"ä½ ååå°äºï¼ä¼é¹
å½çæéä½ åå ä»ççªå»éï¼ä¿å«åå¸ãæ们ç°å¨å°±éä½ å°é£å¿å»..."
+
+#: src/campaign.c:143
+msgid ""
+"...oh no! Now the Emperor himself is under attack, from new types of comets: "
+"these problems are multiplying! To fight these, you need great skill. We "
+"think you can do it. Join the Rangers and help save the city!"
+msgstr ""
+"...å¦ä¸ï¼ç°å¨å½çèªå·±åå°æ¥èªæ°çå½ææ»å»äºï¼è¿äºæ¯ä¹æ³é®é¢ï¼ä½ éè¦æ´å¼ºçæè½"
+"å»è´¥æ»å»ãæ们ç¸ä¿¡ä½ è½åå°ãå å
¥çªå»éä¿å«åå¸å§ï¼"
+
+#: src/campaign.c:149
+msgid "Mission Four: Imperial Ace"
+msgstr "第å个任å¡ï¼ç家ççé£è¡å"
+
+#: src/campaign.c:151
+msgid ""
+"You did it! The Emperor wants to thank you in person. We are taking you to "
+"his ice palace for a great honor: you will become the Imperial Ace!"
+msgstr ""
+"ä½ åå°äºï¼å½å¤æ³äº²èªæè°¢ä½ ãæ们é常è£å¹¸å°å¸¦ä½ å°ä»çå°åç宫殿å»ï¼ä½ å°æ为ç"
+"家ççé£è¡åï¼"
+
+#: src/campaign.c:153
+msgid ""
+"But right in the middle of the ceremony, a new attack from the land of "
+"Division starts!"
+msgstr "ä½å°±å¨åºå
¸æ¶ï¼ä¸ä¸ªæ¥èªé¤æ³ä¹å°çæ°æ»å»å¼å§äºï¼"
+
+#: src/campaign.c:154
+msgid "Now is no time for resting; the city needs your help!"
+msgstr "ç°å¨æ²¡ææ¶é´è®©ä½ ä¼æ¯ï¼åå¸éè¦ä½ ç帮å©ï¼"
+
+#: src/campaign.c:160
+msgid "Final Mission: Computing Commando"
+msgstr "æåä»»å¡ï¼è®¡ç®çªå»é"
+
+#: src/campaign.c:162
+msgid ""
+"Penguin scientists have learned that all these attacks are coming from a "
+"secret base, and they need you to go fight the final battle. They also give "
+"you this clue: first do multiplication and division, and then do addition "
+"and subtraction."
+msgstr ""
+"ä¼é¹
ç§å¦å®¶ç 究ååæ¾ï¼ææçæ»å»é½æ¥èªä¸ä¸ªç§å¯åºå°ï¼ä»ä»¬éè¦ä½ å»æèµ¢è¿æåç"
+"ææãç§å¦å®¶ä»¬è¿ç»ä½ ä¸ä¸ªçº¿ç´¢ï¼å
åä¹æ³ååé¤æ³ï¼ç¶ååå æ³ååæ³ã"
+
+#: src/campaign.c:163
+msgid "I hope that hint helps!"
+msgstr "å¸ææ示è½å¸®å°ä½ ï¼"
+
+#: src/campaign.c:165
+msgid "This is it! You can stop these attacks forever, Commando!"
+msgstr "å°±æ¯è¿æ ·ï¼ä½ æ¯çªå»éåï¼ä½ å¯ä»¥æ°¸è¿å¶æ¢è¿äºæ»å»ï¼"
+
+#: src/campaign.c:229
+msgid "Sorry, try again!"
+msgstr "对ä¸èµ·ï¼è¯·åè¯ä¸æ¬¡ï¼"
+
+#: src/campaign.c:236
+msgid "Mission accomplished. The galaxy is safe!"
+msgstr "ä»»å¡å®æãé¶æ²³ç³»å®å
¨äºï¼"
+
+#: src/credits.c:35
+msgid "TUX, OF MATH COMMAND"
+msgstr ""
+
+#: src/credits.c:36
+msgid "COPYRIGHT 2001-2010"
+msgstr ""
+
+#: src/credits.c:38
+msgid "PART OF THE 'TUX4KIDS' PROJECT"
+msgstr ""
+
+#: src/credits.c:41
+msgid "DESIGNED BY"
+msgstr ""
+
+#: src/credits.c:44
+msgid "LEAD PROGRAMMERS"
+msgstr ""
+
+#: src/credits.c:50
+msgid "ADDITIONAL CODE"
+msgstr ""
+
+#: src/credits.c:63
+msgid "LEAD ARTIST"
+msgstr ""
+
+#: src/credits.c:66
+msgid "ADDITIONAL ART"
+msgstr ""
+
+#: src/credits.c:70
+msgid "SOUND EFFECTS"
+msgstr ""
+
+#: src/credits.c:73
+msgid "MUSIC"
+msgstr ""
+
+#: src/credits.c:83
+msgid "PACKAGERS"
+msgstr ""
+
+#: src/credits.c:88
+msgid "'TUX' THE PENGUIN CREATED BY"
+msgstr ""
+
+#: src/credits.c:91
+msgid "TESTERS"
+msgstr ""
+
+#: src/credits.c:103
+msgid "USER WEBSITE"
+msgstr ""
+
+#: src/credits.c:106
+msgid "TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:"
+msgstr ""
+
+#: src/credits.c:109
+msgid ""
+"TuxMath is Free Software licensed under the GNU General Public License "
+"(GPL). As such, you are specifically granted the rights that are usually "
+"denied to users of proprietary software."
+msgstr ""
+
+#: src/credits.c:111
+msgid ""
+"These rights include the freedom to study, copy, modify, and redistribute "
+"the program."
+msgstr ""
+
+#: src/credits.c:113
+msgid ""
+"A full copy of the GPL is included with the documentation for this program."
+msgstr ""
+
+#: src/credits.c:115
+msgid "For more information about Free Software and the GNU GPL, visit:"
+msgstr ""
+
+#: src/factoroids.c:553
+msgid "FACTOROIDS: to win, you need destroy all the asteroids."
+msgstr "å æ°å解游æï¼è¦èµ¢çè¯ï¼ä½ å¾å»æ¯ææçå°è¡æã"
+
+#: src/factoroids.c:554 src/factoroids.c:565
+msgid "Use the arrow keys to turn or go forward. Aim at an asteroid,"
+msgstr "ç¨é®çä¸çæ¹åé®è½¬å¨æåè¿ãçåä¸ä¸ªå°è¡æï¼"
+
+#: src/factoroids.c:555
+msgid "type one of its factors, and press space or return"
+msgstr "è¾å
¥å
¶ä¸ä¸ä¸ªçç³»æ°ï¼ç¶åæç©ºæ ¼æå车"
+
+#: src/factoroids.c:556
+msgid "to split it into its factors. Rocks with prime numbers are destroyed!"
+msgstr "å解æç³»æ°ã带æè´¨æ°ç岩ç³ä¼è¢«æ§æ¯"
+
+#: src/factoroids.c:564
+msgid "FRACTIONS: to win, you need destroy all the asteroids"
+msgstr "åæ°:è¦èµ¢çè¯ï¼ä½ å¾æ¶çææçå°è¡æ"
+
+#: src/factoroids.c:566
+msgid "type a number that can simplify the fraction, and press space or return"
+msgstr "è¾å
¥å¯ä»¥ç®ååæ°çæ°ï¼ç¶åæç©ºæ ¼æå车é®"
+
+#: src/factoroids.c:567
+msgid ""
+"to split it. Destroy fractions that can not be further simplified in a "
+"single shot!"
+msgstr "å解å®ã"
+
+#: src/game.c:1091
+msgid "Welcome to TuxMath!"
+msgstr "欢è¿æ¥å°TuxMax!"
+
+#: src/game.c:1108
+msgid "Your mission is to save your"
+msgstr "ä½ çä»»å¡æ¯ä¿æ¤ä½ ç"
+
+#: src/game.c:1109
+msgid "penguins' igloos from the"
+msgstr "ä¼é¹
çå°å±"
+
+#: src/game.c:1110
+msgid "falling comets."
+msgstr "æ£å¨éè½çå½æã"
+
+#: src/game.c:1129
+msgid "Stop a comet by typing"
+msgstr "è¦å¶æ¢å½æçè¯ï¼æ"
+
+#: src/game.c:1130
+msgid "the answer to the math problem"
+msgstr "æ°å¦é®é¢ççæ¡"
+
+#: src/game.c:1131
+msgid "and hitting 'space' or 'enter'."
+msgstr "æç©ºæ ¼æå车é®"
+
+#: src/game.c:1132
+msgid "Try it now!"
+msgstr "ç°å¨å°±è¯ä¸è¯å§ï¼"
+
+#: src/game.c:1140
+msgid "Good shot!"
+msgstr "æç好ï¼"
+
+#: src/game.c:1150
+msgid "If an igloo gets hit by a comet,"
+msgstr "å¦æä¸ä¸ªå°å±è¢«å½æå»ä¸çè¯,"
+
+#: src/game.c:1151
+msgid "it melts. But don't worry: the"
+msgstr "å¦æèåçè¯ï¼å«æ
å¿:"
+
+#: src/game.c:1152
+msgid "penguin is OK!"
+msgstr "ä¼é¹
æ£å¸¸ï¼"
+
+#: src/game.c:1153
+msgid "Just watch what happens:"
+msgstr "åªè¦è§å¯åçäºä»ä¹:"
+
+#: src/game.c:1154
+msgid "(Press a key to start)"
+msgstr "(æä»»æé®å¼å§)"
+
+#: src/game.c:1167
+msgid "Notice the answer"
+msgstr "注æçæ¡"
+
+#: src/game.c:1177
+msgid "If it gets hit again, the"
+msgstr "å¦æå次被å»ä¸çè¯ï¼"
+
+#: src/game.c:1178
+msgid "penguin leaves."
+msgstr "ä¼é¹
离å¼äºã"
+
+#: src/game.c:1179
+msgid "(Press a key when ready)"
+msgstr "(åå¤å¥½åæä»»æé®)"
+
+#: src/game.c:1202
+msgid "You can fix the igloos"
+msgstr "ä½ å¯ä»¥ä¿®å¤å°å±"
+
+#: src/game.c:1203
+msgid "by stopping bonus comets."
+msgstr "éè¿åæ¢å¥å±çå½æ"
+
+#: src/game.c:1214
+msgid "Zap it now!"
+msgstr "ç°å¨æ»å»!"
+
+#: src/game.c:1220
+msgid "Great job!"
+msgstr "å¹²ç好!"
+
+#: src/game.c:1238
+msgid "Quit at any time by pressing"
+msgstr "ä»»ä½æ¶é´éåºï¼æ"
+
+#: src/game.c:1239
+msgid "'Esc' or clicking the 'X'"
+msgstr "æ'Esc'é®æç¹å»'X'"
+
+#: src/game.c:1240
+msgid "in the upper right corner."
+msgstr "å¨å³ä¸è§"
+
+#: src/game.c:1241
+msgid "Do it now, and then play!"
+msgstr "ç°å¨å°±åï¼å¼å§å§ï¼"
+
+#: src/highscore.c:168 data/menus/menu_strings:9
+msgid "Hall Of Fame"
+msgstr "æè¡æ¦"
+
+#: src/highscore.c:188 src/highscore.c:209 data/menus/menu_strings:27
+msgid "Space Cadet"
+msgstr "太空è¦"
+
+#: src/highscore.c:191 data/menus/menu_strings:26
+msgid "Scout"
+msgstr "ç«¥åå"
+
+#: src/highscore.c:194 data/menus/menu_strings:23
+msgid "Ranger"
+msgstr "å·¡é»å
µ"
+
+#: src/highscore.c:197 data/menus/menu_strings:1
+msgid "Ace"
+msgstr "ççé£è¡å"
+
+#: src/highscore.c:200 data/menus/menu_strings:2
+msgid "Commando"
+msgstr "çªå»é"
+
+#: src/highscore.c:203 data/menus/menu_strings:7
+msgid "Factors"
+msgstr "ç³»æ°"
+
+#: src/highscore.c:206 data/menus/menu_strings:8
+msgid "Fractions"
+msgstr "åæ°"
+
+#: src/highscore.c:287
+msgid "You Are In The Hall of Fame!"
+msgstr ""
+
+#: src/highscore.c:287
+msgid "Enter Your Name:"
+msgstr ""
+
+#: src/menu.c:375
+msgid "TuxMath is free and open-source!"
+msgstr "TuxMath æ¯èªç±è½¯ä»¶èä¸æ¯å¼æ¾æºä»£ç çï¼"
+
+#: src/menu.c:376
+#, fuzzy
+msgid "You can help make it better."
+msgstr "ä½ å¯ä»¥æ¹è¿å®ææ¥åç¨åºé误ï¼"
+
+#: src/menu.c:377
+msgid "Suggestions, artwork, and code are all welcome!"
+msgstr ""
+
+#: src/menu.c:378
+#, fuzzy
+msgid "Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"
+msgstr "讨论TuxMathï¼ tuxmath-devel at lists.sourceforge.net"
+
+#: src/menu.c:499
+msgid "Edit 'options' file in your home directory"
+msgstr "å¨ä½ ç主æ件夹ç¼è¾'options' é项æ件"
+
+#: src/menu.c:500
+msgid "to create customized game!"
+msgstr "å建èªå®ä¹æ¸¸æï¼"
+
+#: src/menu.c:501
+msgid "Press a key or click your mouse to start game."
+msgstr "æä»»æé®æç¹å»é¼ æ å¼å§æ¸¸æã"
+
+#: src/menu.c:502
+msgid "See README.txt for more information"
+msgstr "æ¥ç README.txt æ件以è·å¾æ´å¤ä¿¡æ¯"
+
+#: src/menu.c:526
+msgid "How many kids are playing?"
+msgstr "åå 游æçå°æåæ°éï¼"
+
+#: src/menu.c:527
+msgid "(Between 2 and 4 players)"
+msgstr "(ï¼å°ï¼ä¸ªç©å®¶)"
+
+#: src/menu.c:589
+msgid "The server is already running"
+msgstr ""
+
+#: src/menu.c:594
+msgid "Enter Server Name:"
+msgstr ""
+
+#: src/menu.c:594
+msgid "(limit 50 characters)"
+msgstr ""
+
+#: src/menu.c:608
+msgid "Click or press key to select server lesson file"
+msgstr ""
+
+#: src/menu.c:637
+msgid "Server Name:"
+msgstr ""
+
+#: src/menu.c:639
+msgid "Selected Lesson:"
+msgstr ""
+
+#: src/menu.c:654 src/menu.c:701
+msgid "Sorry, this version built without network support"
+msgstr ""
+
+#: src/menu.c:655 src/menu.c:702
+#, c-format
+msgid "Sorry, this version built without network support.\n"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Detecting servers"
+msgstr ""
+
+#: src/menu.c:665
+msgid "Please wait"
+msgstr ""
+
+#: src/menu.c:671
+#, c-format
+msgid "Connected to server: %s"
+msgstr ""
+
+#: src/menu.c:672 src/multiplayer.c:258 src/multiplayer.c:260
+msgid "Enter your name:"
+msgstr ""
+
+#: src/menu.c:674
+#, fuzzy
+msgid "Click when ready"
+msgstr "(åå¤å¥½åæä»»æé®)"
+
+#: src/menu.c:676
+msgid "Waiting for other players"
+msgstr ""
+
+#: src/menu.c:689
+msgid "Sorry, game already in progress."
+msgstr ""
+
+#: src/menu.c:690
+#, c-format
+msgid "Sorry, game already in progress.\n"
+msgstr ""
+
+#: src/menu.c:696
+msgid "Sorry, no server could be found."
+msgstr ""
+
+#: src/menu.c:697
+#, c-format
+msgid "Sorry, no server could be found.\n"
+msgstr ""
+
+#: src/multiplayer.c:183
+#, c-format
+msgid "Then %s\n"
+msgstr ""
+
+#: src/multiplayer.c:258
+msgid "Who is playing first?"
+msgstr ""
+
+#: src/multiplayer.c:260
+msgid "Who is playing next?"
+msgstr ""
+
+#: src/multiplayer.c:274
+#, fuzzy
+msgid "How many rounds will you play?"
+msgstr "åå 游æçå°æåæ°éï¼"
+
+#: src/multiplayer.c:274
+msgid "Enter a number"
+msgstr ""
+
+#: src/titlescreen.c:478
+msgid "Work In Progress!"
+msgstr "è¿è¡ä¸"
+
+#: src/titlescreen.c:479
+msgid "This feature is not ready yet"
+msgstr "è§è²è¿æ²¡åå¤å¥½"
+
+#: src/titlescreen.c:480
+msgid "Discuss the future of TuxMath at"
+msgstr "讨论TuxMathï¼"
+
+#: src/titlescreen.c:481
+msgid "tuxmath-devel at lists.sourceforge.net"
+msgstr "tuxmath-devel at lists.sourceforge.net"
+
+#: src/tuxmath.c:54 data/menus/menu_strings:10
+msgid "Help"
+msgstr "帮å©"
+
+#: data/missions/lessons/descr_lessons:1
+msgid "Number Typing"
+msgstr "è¾å
¥æ°å"
+
+#: data/missions/lessons/descr_lessons:2
+msgid "Addition: 1 to 3"
+msgstr "å æ³ï¼1ï¼3"
+
+#: data/missions/lessons/descr_lessons:3
+msgid "Addition: 0 to 5"
+msgstr "å æ³ï¼0ï¼5"
+
+#: data/missions/lessons/descr_lessons:4
+msgid "Addition: Sums to 10"
+msgstr "å æ³ï¼10以å
"
+
+#: data/missions/lessons/descr_lessons:5
+msgid "Addition: Sums to 15"
+msgstr "å æ³ï¼15以å
"
+
+#: data/missions/lessons/descr_lessons:6
+msgid "Addition: Sums to 20"
+msgstr "å æ³ï¼20以å
"
+
+#: data/missions/lessons/descr_lessons:7
+msgid "Addition: Two Digit Numbers"
+msgstr "å æ³ï¼ä¸¤ä½æ°å æ³"
+
+#: data/missions/lessons/descr_lessons:8
+msgid "Addition: Missing Numbers"
+msgstr "å æ³ï¼ç¼ºå°çæ°å"
+
+#: data/missions/lessons/descr_lessons:9
+msgid "Subtraction: 0 to 10"
+msgstr "åæ³ï¼10以å
"
+
+#: data/missions/lessons/descr_lessons:10
+msgid "Subtraction: 0 to 20"
+msgstr "åæ³ï¼20以å
"
+
+#: data/missions/lessons/descr_lessons:11
+msgid "Subtraction: Two Digit Numbers"
+msgstr "åæ³ï¼ä¸¤ä½æ°"
+
+#: data/missions/lessons/descr_lessons:12
+msgid "Addition and Subtraction Review"
+msgstr "å åæ³å¤ä¹ "
+
+#: data/missions/lessons/descr_lessons:13
+msgid "Multiplication: 0 to 3"
+msgstr "ä¹æ³ï¼3以å
"
+
+#: data/missions/lessons/descr_lessons:14
+msgid "Multiples of 2"
+msgstr "2çåæ°"
+
+#: data/missions/lessons/descr_lessons:15
+msgid "Multiples of 3"
+msgstr "3çåæ°"
+
+#: data/missions/lessons/descr_lessons:16
+msgid "Multiples of 4"
+msgstr "4çåæ°"
+
+#: data/missions/lessons/descr_lessons:17
+msgid "Multiples of 5"
+msgstr "5çåæ°"
+
+#: data/missions/lessons/descr_lessons:18
+msgid "Multiplication: 0 to 5"
+msgstr "ä¹æ³ï¼5以å
"
+
+#: data/missions/lessons/descr_lessons:19
+msgid "Multiples of 6"
+msgstr "6çåæ°"
+
+#: data/missions/lessons/descr_lessons:20
+msgid "Multiples of 7"
+msgstr "7çåæ°"
+
+#: data/missions/lessons/descr_lessons:21
+msgid "Multiplication: 0 to 7"
+msgstr "ä¹æ³ï¼7以å
"
+
+#: data/missions/lessons/descr_lessons:22
+msgid "Multiples of 8"
+msgstr "8çåæ°"
+
+#: data/missions/lessons/descr_lessons:23
+msgid "Multiples of 9"
+msgstr "9çåæ°"
+
+#: data/missions/lessons/descr_lessons:24
+msgid "Multiples of 10"
+msgstr "10çåæ°"
+
+#: data/missions/lessons/descr_lessons:25
+msgid "Multiplication: 0 to 10"
+msgstr "ä¹æ³ï¼10以å
"
+
+#: data/missions/lessons/descr_lessons:26
+msgid "Multiples of 11 and 12"
+msgstr "11å12çåæ°"
+
+#: data/missions/lessons/descr_lessons:27
+msgid "Multiplication: 0 to 12"
+msgstr "ä¹æ³ï¼12以å
"
+
+#: data/missions/lessons/descr_lessons:28
+msgid "Multiples of 13, 14, and 15"
+msgstr "13ï¼14å15çåæ°"
+
+#: data/missions/lessons/descr_lessons:29
+msgid "Multiplication: 0 to 15"
+msgstr "ä¹æ³ï¼15以å
"
+
+#: data/missions/lessons/descr_lessons:30
+msgid "Multiplication: Missing Numbers"
+msgstr "ä¹æ³ï¼ç¼ºå°çæ°å"
+
+#: data/missions/lessons/descr_lessons:31
+msgid "Division by 2"
+msgstr "2çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:32
+msgid "Division by 3"
+msgstr "3çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:33
+msgid "Division by 4"
+msgstr "4çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:34
+msgid "Division by 5"
+msgstr "5çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:35
+msgid "Division: 1 to 5"
+msgstr "é¤æ³ï¼5以å
"
+
+#: data/missions/lessons/descr_lessons:36
+msgid "Division by 6"
+msgstr "6çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:37
+msgid "Division by 7"
+msgstr "7çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:38
+msgid "Division by 8"
+msgstr "8çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:39
+msgid "Division by 9"
+msgstr "9çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:40
+msgid "Division by 10"
+msgstr "10çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:41
+msgid "Division: 1 to 10"
+msgstr "é¤æ³ï¼10以å
"
+
+#: data/missions/lessons/descr_lessons:42
+msgid "Division by 11 and 12"
+msgstr "11å12çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:43
+msgid "Division: 1 to 12"
+msgstr "é¤æ³ï¼12以å
"
+
+#: data/missions/lessons/descr_lessons:44
+msgid "Division by 13, 14, and 15"
+msgstr "13ï¼14ï¼15çé¤æ³"
+
+#: data/missions/lessons/descr_lessons:45
+msgid "Division: 1 to 15"
+msgstr "é¤æ³ï¼15以å
"
+
+#: data/missions/lessons/descr_lessons:46
+msgid "Multiplication and Division Review"
+msgstr "ä¹é¤æ³å¤ä¹ "
+
+#: data/missions/lessons/descr_lessons:47
+msgid "Typing Negative Numbers"
+msgstr "è¾å
¥è´æ°"
+
+#: data/missions/lessons/descr_lessons:48
+msgid "Subtraction: Negative Answers"
+msgstr "åæ³ï¼è´æ°"
+
+#: data/missions/lessons/descr_lessons:49
+msgid "Adding Negatives to Positives"
+msgstr "æ£è´æ°å æ³"
+
+#: data/missions/lessons/descr_lessons:50
+#, fuzzy
+msgid "Adding Positives to Negatives"
+msgstr "è´æ°çå æ³"
+
+#: data/missions/lessons/descr_lessons:51
+msgid "Subtracting Negatives From Positives"
+msgstr "æ£è´æ°åæ³"
+
+#: data/missions/lessons/descr_lessons:52
+#, fuzzy
+msgid "Subtracting Positives From Negatives"
+msgstr "è´æ°çåæ³"
+
+#: data/missions/lessons/descr_lessons:53
+msgid "Adding Negatives to Negatives"
+msgstr "è´æ°çå æ³"
+
+#: data/missions/lessons/descr_lessons:54
+msgid "Subtracting Negatives From Negatives"
+msgstr "è´æ°çåæ³"
+
+#: data/missions/lessons/descr_lessons:55
+msgid "Negative and Positive Numbers Review"
+msgstr "æ£è´æ°è¿ç®å¤ä¹ "
+
+#: data/missions/lessons/descr_lessons:56
+msgid "Multiplication and Division of Negatives"
+msgstr "è´æ°çä¹é¤"
+
+#: data/missions/lessons/descr_lessons:57
+msgid "Multiplication of Positives and Negatives"
+msgstr "æ£è´æ°ä¹æ³"
+
+#: data/missions/lessons/descr_lessons:58
+msgid "Division of Positives and Negatives"
+msgstr "æ£è´æ°é¤æ³"
+
+#: data/menus/menu_strings:3
+msgid "Credits"
+msgstr "è´¡ç®è
"
+
+#: data/menus/menu_strings:4
+msgid "Demo"
+msgstr "æ¼ç¤º"
+
+#: data/menus/menu_strings:5
+msgid "Elimination"
+msgstr "æ¶å"
+
+#: data/menus/menu_strings:6
+msgid "Factoroids!"
+msgstr "å æ°å解ï¼"
+
+#: data/menus/menu_strings:11
+msgid "Join Game"
+msgstr ""
+
+#: data/menus/menu_strings:12
+msgid "Main Menu"
+msgstr "主èå"
+
+#: data/menus/menu_strings:13
+msgid "Math Command Fleet Missions"
+msgstr "æ°å¦å½ä»¤è°éä»»å¡"
+
+#: data/menus/menu_strings:14
+msgid "Math Command Training Academy"
+msgstr "æ°å¦è¿ç®ç»ä¹ "
+
+#: data/menus/menu_strings:15
+msgid "More Options"
+msgstr "æ´å¤é项"
+
+#: data/menus/menu_strings:16
+msgid "Network Game"
+msgstr ""
+
+#: data/menus/menu_strings:17
+msgid "Play Alone"
+msgstr "èªå·±ç©"
+
+#: data/menus/menu_strings:18
+msgid "Play Arcade Game"
+msgstr "è¡æºæ¸¸æ"
+
+#: data/menus/menu_strings:19
+msgid "Play Custom Game"
+msgstr "èªå®ä¹æ¸¸æ"
+
+#: data/menus/menu_strings:20
+msgid "Play With Friends"
+msgstr "åæåä¸èµ·ç©"
+
+#: data/menus/menu_strings:21
+msgid "Project Info"
+msgstr "å·¥ç¨ä¿¡æ¯"
+
+#: data/menus/menu_strings:22
+msgid "Quit"
+msgstr "éåº"
+
+#: data/menus/menu_strings:24
+msgid "Run Server"
+msgstr ""
+
+#: data/menus/menu_strings:25
+msgid "Score Sweep"
+msgstr "æ¶é¤å¾å"
+
+#~ msgid "suggesting improvements, or adding code."
+#~ msgstr "æåºæ¹è¿å»ºè®®æå¢å 代ç ã"
+
+#~ msgid "Main menu"
+#~ msgstr "主èå"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..03dee0e
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,172 @@
+#The following isn't necessary because of the SDL workaround
+#cmake_minimum_required(VERSION 2.4.7 FATAL_ERROR)
+
+## Libraries
+find_package(SDL REQUIRED)
+find_package(SDL_image REQUIRED)
+find_package(SDL_ttf REQUIRED)
+find_package(SDL_mixer REQUIRED)
+find_package(SDL_gfx)
+find_package(SDL_net)
+
+if (NOT SDLGFX_FOUND)
+ message("Adding rotozoom")
+ set(TUXMATH_EXTRA_SRC ${TUXMATH_EXTRA_SRC} SDL_rotozoom.c)
+endif (NOT SDLGFX_FOUND)
+
+
+## Define the source files used for each executable
+# tuxmath
+set(SOURCES_TUXMATH
+ audio.c
+ convert_utf.c
+ credits.c
+ factoroids.c
+ fileops.c
+ fileops_media.c
+ game.c
+ menu.c
+ highscore.c
+ lessons.c
+ loaders.c
+ mathcards.c
+ network.c
+ options.c
+ pixels.c
+ scandir.c
+ SDL_extras.c
+ setup.c
+ throttle.c
+ titlescreen.c
+ multiplayer.c
+ campaign.c
+ tuxmath.c
+ linewrap.c
+ ${TUXMATH_EXTRA_SRC}
+ )
+
+message("${SOURCES_TUXMATH}")
+
+# tuxmathadmin
+set(SOURCES_TUXMATHADMIN
+ tuxmathadmin.c
+ )
+
+if (NOT SDL_FOUND)
+ # Workaround for REQUIRED flag not working with cmake < 2.4.7.
+ # Should put other libraries in, too.
+ message(FATAL_ERROR "SDL not found!")
+endif (NOT SDL_FOUND)
+
+if (NOT APPLE)
+ link_libraries (SDLmain)
+endif (NOT APPLE)
+
+## Include files
+if (NOT BUILD_INTL)
+ # Generate the config.h file
+ configure_file(${TuxMath_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+endif (NOT BUILD_INTL)
+check_include_file(${CMAKE_CURRENT_BINARY_DIR}/config.h HAVE_CONFIG_H)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR} ${SDL_INCLUDE_DIR} ${SDLIMAGE_INCLUDE_DIR} ${SDLMIXER_INCLUDE_DIR} ${SDLTTF_INCLUDE_DIR} ${TUXMATH_EXTRA_INCLUDES} ${INTL_BINARY_DIR})
+if (SDLGFX_FOUND)
+ include_directories(${SDLGFX_INCLUDE_DIR})
+endif (SDLGFX_FOUND)
+
+if (TUXMATH_BUILD_INTL)
+ link_directories(${INTL_BINARY_DIR})
+endif(TUXMATH_BUILD_INTL)
+
+if (TUXMATH_BUILD_LINEBREAK)
+ link_directories(${LINEBREAK_BINARY_DIR})
+endif (TUXMATH_BUILD_LINEBREAK)
+
+## Define the executables
+add_executable (
+ tuxmath
+ MACOSX_BUNDLE
+ WIN32
+ ${SOURCES_TUXMATH}
+ )
+
+add_executable (
+ tuxmathadmin
+ ${SOURCES_TUXMATHADMIN}
+ )
+
+# getting rid of semicolons
+set(_rsvg_cflags "")
+foreach(f ${RSVG_CFLAGS})
+ set(_rsvg_cflags "${_rsvg_cflags} ${f}")
+endforeach(f)
+
+set(_cairo_cflags "")
+foreach(f ${CAIRO_CFLAGS})
+ set(_cairo_cflags "${_cairo_cflags} ${f}")
+endforeach(f)
+
+set(_rsvg_ldflags "")
+foreach(f ${RSVG_LDFLAGS})
+ set(_rsvg_ldflags "${_rsvg_ldflags} ${f}")
+endforeach(f)
+
+set(_cairo_ldflags "")
+foreach(f ${CAIRO_LDFLAGS})
+ set(_cairo_ldflags "${_cairo_ldflags} ${f}")
+endforeach(f)
+
+set_target_properties (
+ tuxmath
+ PROPERTIES COMPILE_FLAGS
+ "-DDATA_PREFIX=\\\"${TUXMATH_DATA_PREFIX}\\\" -DVERSION=\\\"${TUXMATH_VERSION}\\\" -DLOCALEDIR=\\\"${LOCALE_DIR}\\\" -DPACKAGE=\\\"tuxmath\\\" ${_rsvg_cflags} ${_cairo_cflags}"
+ LINK_FLAGS "${_rsvg_ldflags} ${_cairo_ldflags}"
+ )
+
+target_link_libraries (tuxmath
+ ${SDL_LIBRARY}
+ ${SDLIMAGE_LIBRARY}
+ ${SDLTTF_LIBRARY}
+ ${SDLMIXER_LIBRARY}
+ ${SDLNET_LIBRARY}
+ )
+
+if (SDLPANGO_FOUND)
+ target_link_libraries (tuxmath
+ ${SDLPANGO_LIBRARY}
+ )
+endif (SDLPANGO_FOUND)
+
+if (SDLGFX_FOUND)
+ target_link_libraries (tuxmath
+ ${SDLGFX_LIBRARY}
+ )
+endif (SDLGFX_FOUND)
+
+if (APPLE)
+ # The following seems to be needed to compile under 10.5
+ set_target_properties(tuxmath tuxmathadmin
+ PROPERTIES
+ LINK_FLAGS "-mmacosx-version-min=10.4")
+endif(APPLE)
+
+if (TUXMATH_BUILD_INTL)
+ message("Linking iconv: ${ICONV_LIBRARIES}")
+ target_link_libraries(tuxmath ${ICONV_LIBRARIES} libintl.a)
+endif(TUXMATH_BUILD_INTL)
+
+if (TUXMATH_BUILD_LINEBREAK)
+ target_link_libraries(tuxmath ${ICONV_LIBRARIES} liblinebreak.a)
+endif(TUXMATH_BUILD_LINEBREAK)
+
+set_target_properties (
+ tuxmathadmin
+ PROPERTIES COMPILE_FLAGS
+ "-DDATA_PREFIX=\\\"${TUXMATH_DATA_PREFIX}\\\" -DVERSION=\\\"${TUXMATHADMIN_VERSION}\\\" -DLOCALEDIR=\\\"${LOCALE_DIR}\\\" -DPACKAGE=\\\"tuxmathadmin\\\""
+ )
+
+## Installation specifications
+if (UNIX AND NOT APPLE)
+ install (TARGETS tuxmath tuxmathadmin
+ RUNTIME DESTINATION bin)
+endif(UNIX AND NOT APPLE)
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..b1c31b4
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,131 @@
+## Makefile.am for tuxmath src:
+## Process with Automake to create Makefile.in
+
+# Support for gettext:
+datadir = @datadir@
+localedir = $(datadir)/locale
+DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+
+AM_CFLAGS=-Wall -g -DDATA_PREFIX=\"${DATA_PREFIX}\" -DDEBUG \
+ -D$(SOUND)SOUND
+
+AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" \
+ -I../intl -I$(top_srcdir)/intl
+
+LDADD = @LIBINTL@ \
+ ../linebreak/liblinebreak.a
+
+if BUILD_MINGW32
+ bin_PROGRAMS = TuxMath tuxmathserver
+ DATA_PREFIX=@MINGW32_PACKAGE_DATA_DIR@
+else
+ TUXMATHRC =
+ bin_PROGRAMS = tuxmath \
+ tuxmathadmin \
+ generate_lesson \
+ tuxmathserver \
+ tuxmathtestclient
+
+ DATA_PREFIX=${pkgdatadir}
+endif
+
+
+tuxmath_SOURCES = tuxmath.c \
+ setup.c \
+ titlescreen.c \
+ menu.c \
+ game.c \
+ factoroids.c \
+ fileops_media.c \
+ options.c \
+ credits.c \
+ highscore.c \
+ linewrap.c \
+ loaders.c \
+ audio.c \
+ network.c \
+ mathcards.c \
+ campaign.c \
+ multiplayer.c \
+ fileops.c \
+ convert_utf.c \
+ SDL_extras.c \
+ SDL_rotozoom.c \
+ lessons.c \
+ scandir.c \
+ pixels.c \
+ server.c \
+ throttle.c
+
+
+# HACK "TuxMath" is the Windows program, whereas "tuxmath" is the Unix program
+TuxMath_SOURCES = $(tuxmath_SOURCES) tuxmathrc.rc
+
+
+# NOTE - the "extra" programs built here don't need the same linking,
+# so they have their own prog_LDADD statements to override the
+# global LDADD flag.
+
+tuxmathadmin_SOURCES = tuxmathadmin.c
+tuxmathadmin_LDADD = @LIBINTL@
+
+generate_lesson_SOURCES = generate_lesson.c \
+ mathcards.c \
+ options.c \
+ fileops.c \
+ lessons.c
+generate_lesson_LDADD =
+
+
+tuxmathserver_SOURCES = servermain.c \
+ server.c \
+ mathcards.c \
+ throttle.c \
+ options.c
+tuxmathserver_LDADD = @LIBINTL@
+
+tuxmathtestclient_SOURCES = testclient.c \
+ throttle.c \
+ network.c \
+ options.c \
+ mathcards.c
+tuxmathtestclient_LDADD =
+
+EXTRA_DIST = credits.h \
+ factoroids.h \
+ fileops.h \
+ game.h \
+ menu.h \
+ globals.h \
+ highscore.h \
+ linewrap.h \
+ loaders.h \
+ network.h \
+ titlescreen.h \
+ menu.h \
+ options.h \
+ setup.h \
+ mathcards.h \
+ campaign.h \
+ multiplayer.h \
+ tuxmath.h \
+ convert_utf.h \
+ SDL_extras.h \
+ SDL_rotozoom.h \
+ lessons.h \
+ gettext.h \
+ scandir.h \
+ pixels.h \
+ compiler.h \
+ server.h \
+ testclient.h \
+ transtruct.h \
+ throttle.h
+
+
+
+WINDRES=@WINDRES@
+
+# How to make an RC file
+tuxmathrc.o: tuxmathrc.rc
+ $(WINDRES) -i $< -o $@
diff --git a/src/SDL_extras.c b/src/SDL_extras.c
new file mode 100644
index 0000000..bb69b8f
--- /dev/null
+++ b/src/SDL_extras.c
@@ -0,0 +1,1103 @@
+/*
+* C Implementation: SDL_extras
+*
+* Description: a few handy functions for using SDL graphics.
+*
+*
+* Author: David Bruce,,, <davidstuartbruce at gmail.com> (C) 2007
+*
+* Copyright: GPL v3 or later
+*
+*/
+#include <math.h>
+
+#include "SDL_extras.h"
+#include "tuxmath.h"
+#include "loaders.h"
+#include "pixels.h"
+#include "options.h"
+
+
+
+/* DrawButton() creates a translucent button with rounded ends
+ and draws it on the screen.
+ All colors and alpha values are supported.*/
+void DrawButton(SDL_Rect* target_rect,
+ int radius,
+ Uint8 r, Uint8 g, Uint8 b, Uint8 a)
+{
+ SDL_Surface* tmp_surf = CreateButton(target_rect->w, target_rect->h,
+ radius, r, g, b, a);
+ SDL_BlitSurface(tmp_surf, NULL, screen, target_rect);
+ SDL_FreeSurface(tmp_surf);
+}
+
+/* CreateButton() creates a translucent button with rounded ends
+ All colors and alpha values are supported.*/
+SDL_Surface* CreateButton(int w, int h, int radius,
+ Uint8 r, Uint8 g, Uint8 b, Uint8 a)
+{
+ /* NOTE - we use a 32-bit temp surface even if we have a 16-bit */
+ /* screen - it gets converted during blitting. */
+ SDL_Surface* tmp_surf = SDL_CreateRGBSurface(SDL_SWSURFACE|SDL_SRCALPHA,
+ w,
+ h,
+ 32,
+ rmask, gmask, bmask, amask);
+
+ Uint32 color = SDL_MapRGBA(tmp_surf->format, r, g, b, a);
+ SDL_FillRect(tmp_surf, NULL, color);
+ RoundCorners(tmp_surf, radius);
+ return tmp_surf;
+}
+
+
+void RoundCorners(SDL_Surface* s, Uint16 radius)
+{
+ int y = 0;
+ int x_dist, y_dist;
+ Uint32* p = NULL;
+ Uint32 alpha_mask;
+ int bytes_per_pix;
+
+ if (!s)
+ return;
+ if (SDL_LockSurface(s) == -1)
+ return;
+
+ bytes_per_pix = s->format->BytesPerPixel;
+ if (bytes_per_pix != 4)
+ return;
+
+ /* radius cannot be more than half of width or height: */
+ if (radius > (s->w)/2)
+ radius = (s->w)/2;
+ if (radius > (s->h)/2)
+ radius = (s->h)/2;
+
+
+ alpha_mask = s->format->Amask;
+
+ /* Now round off corners: */
+ /* upper left: */
+ for (y = 0; y < radius; y++)
+ {
+ p = (Uint32*)(s->pixels + (y * s->pitch));
+ x_dist = radius;
+ y_dist = radius - y;
+
+ while (((x_dist * x_dist) + (y_dist * y_dist)) > (radius * radius))
+ {
+ /* (make pixel (x,y) transparent) */
+ *p = *p & ~alpha_mask;
+ p++;
+ x_dist--;
+ }
+ }
+
+ /* upper right: */
+ for (y = 0; y < radius; y++)
+ {
+ /* start at end of top row: */
+ p = (Uint32*)(s->pixels + ((y + 1) * s->pitch) - bytes_per_pix);
+
+ x_dist = radius;
+ y_dist = radius - y;
+
+ while (((x_dist * x_dist) + (y_dist * y_dist)) > (radius * radius))
+ {
+ /* (make pixel (x,y) transparent) */
+ *p = *p & ~alpha_mask;
+ p--;
+ x_dist--;
+ }
+ }
+
+ /* bottom left: */
+ for (y = (s->h - 1); y > (s->h - radius); y--)
+ {
+ /* start at beginning of bottom row */
+ p = (Uint32*)(s->pixels + (y * s->pitch));
+ x_dist = radius;
+ y_dist = y - (s->h - radius);
+
+ while (((x_dist * x_dist) + (y_dist * y_dist)) > (radius * radius))
+ {
+ /* (make pixel (x,y) transparent) */
+ *p = *p & ~alpha_mask;
+ p++;
+ x_dist--;
+ }
+ }
+
+ /* bottom right: */
+ for (y = (s->h - 1); y > (s->h - radius); y--)
+ {
+ /* start at end of bottom row */
+ p = (Uint32*)(s->pixels + ((y + 1) * s->pitch) - bytes_per_pix);
+ x_dist = radius;
+ y_dist = y - (s->h - radius);
+
+ while (((x_dist * x_dist) + (y_dist * y_dist)) > (radius * radius))
+ {
+ /* (make pixel (x,y) transparent) */
+ *p = *p & ~alpha_mask;
+ p--;
+ x_dist--;
+ }
+ }
+ SDL_UnlockSurface(s);
+}
+
+
+/**********************
+ Flip:
+ input: a SDL_Surface, x, y
+ output: a copy of the SDL_Surface flipped via rules:
+
+ if x is a nonzero value, then flip horizontally
+ if y is a nonzero value, then flip vertically
+
+ note: you can have it flip both
+**********************/
+SDL_Surface* Flip( SDL_Surface *in, int x, int y ) {
+ SDL_Surface *out, *tmp;
+ SDL_Rect from_rect, to_rect;
+ Uint32 flags;
+ Uint32 colorkey=0;
+
+ /* --- grab the settings for the incoming pixmap --- */
+
+ SDL_LockSurface(in);
+ flags = in->flags;
+
+ /* --- change in's flags so ignore colorkey & alpha --- */
+
+ if (flags & SDL_SRCCOLORKEY) {
+ in->flags &= ~SDL_SRCCOLORKEY;
+ colorkey = in->format->colorkey;
+ }
+ if (flags & SDL_SRCALPHA) {
+ in->flags &= ~SDL_SRCALPHA;
+ }
+
+ SDL_UnlockSurface(in);
+
+ /* --- create our new surface --- */
+
+ out = SDL_CreateRGBSurface(
+ SDL_SWSURFACE,
+ in->w, in->h, 32, rmask, gmask, bmask, amask);
+
+ /* --- flip horizontally if requested --- */
+
+ if (x) {
+ from_rect.h = to_rect.h = in->h;
+ from_rect.w = to_rect.w = 1;
+ from_rect.y = to_rect.y = 0;
+ from_rect.x = 0;
+ to_rect.x = in->w - 1;
+
+ do {
+ SDL_BlitSurface(in, &from_rect, out, &to_rect);
+ from_rect.x++;
+ to_rect.x--;
+ } while (to_rect.x >= 0);
+ }
+
+ /* --- flip vertically if requested --- */
+
+ if (y) {
+ from_rect.h = to_rect.h = 1;
+ from_rect.w = to_rect.w = in->w;
+ from_rect.x = to_rect.x = 0;
+ from_rect.y = 0;
+ to_rect.y = in->h - 1;
+
+ do {
+ SDL_BlitSurface(in, &from_rect, out, &to_rect);
+ from_rect.y++;
+ to_rect.y--;
+ } while (to_rect.y >= 0);
+ }
+
+ /* --- restore colorkey & alpha on in and setup out the same --- */
+
+ SDL_LockSurface(in);
+
+ if (flags & SDL_SRCCOLORKEY) {
+ in->flags |= SDL_SRCCOLORKEY;
+ in->format->colorkey = colorkey;
+ tmp = SDL_DisplayFormat(out);
+ SDL_FreeSurface(out);
+ out = tmp;
+ out->flags |= SDL_SRCCOLORKEY;
+ out->format->colorkey = colorkey;
+ } else if (flags & SDL_SRCALPHA) {
+ in->flags |= SDL_SRCALPHA;
+ tmp = SDL_DisplayFormatAlpha(out);
+ SDL_FreeSurface(out);
+ out = tmp;
+ } else {
+ tmp = SDL_DisplayFormat(out);
+ SDL_FreeSurface(out);
+ out = tmp;
+ }
+
+ SDL_UnlockSurface(in);
+
+ return out;
+}
+
+/* Blend two surfaces together. The third argument is between 0.0 and
+ 1.0, and represents the weight assigned to the first surface. If
+ the pointer to the second surface is NULL, this performs fading.
+
+ Currently this works only with RGBA images, but this is largely to
+ make the (fast) pointer arithmetic work out; it could be easily
+ generalized to other image types. */
+SDL_Surface* Blend(SDL_Surface *S1, SDL_Surface *S2, float gamma)
+{
+ SDL_PixelFormat *fmt1, *fmt2;
+ Uint8 r1, r2, g1, g2, b1, b2, a1, a2;
+ SDL_Surface *tmpS, *ret;
+ Uint32 *cpix1, *epix1, *cpix2, *epix2;
+ float gamflip;
+
+ if (!S1)
+ return NULL;
+
+ fmt1 = fmt2 = NULL;
+ tmpS = ret = NULL;
+
+ gamflip = 1.0 - gamma;
+ if (gamma < 0 || gamflip < 0)
+ {
+ perror("gamma must be between 0 and 1");
+ exit(0);
+ }
+
+ fmt1 = S1->format;
+
+ if (fmt1 && fmt1->BitsPerPixel != 32)
+ {
+ perror("This works only with RGBA images");
+ return S1;
+ }
+ if (S2 != NULL)
+ {
+ fmt2 = S2->format;
+ if (fmt2->BitsPerPixel != 32)
+ {
+ perror("This works only with RGBA images");
+ return S1;
+ }
+ // Check that both images have the same width dimension
+ if (S1->w != S2->w)
+ {
+ printf("S1->w %d, S2->w %d; S1->h %d, S2->h %d\n",
+ S1->w, S2->w, S1->h, S2->h);
+ printf("Both images must have the same width dimensions\n");
+ return S1;
+ }
+ }
+
+ tmpS = SDL_ConvertSurface(S1, fmt1, SDL_SWSURFACE);
+ if (tmpS == NULL)
+ {
+ perror("SDL_ConvertSurface() failed");
+ return S1;
+ }
+ if (-1 == SDL_LockSurface(tmpS))
+ {
+ perror("SDL_LockSurface() failed");
+ return S1;
+ }
+
+ // We're going to go through the pixels in reverse order, to start
+ // from the bottom of each image. That way, we can blend things that
+ // are not of the same height and have them align at the bottom.
+ // So the "ending pixel" (epix) will be before the first pixel, and
+ // the current pixel (cpix) will be the last pixel.
+ epix1 = (Uint32*) tmpS->pixels - 1;
+ cpix1 = epix1 + tmpS->w * tmpS->h;
+ if (S2 != NULL
+ && (SDL_LockSurface(S2) != -1))
+ {
+ epix2 = (Uint32*) S2->pixels - 1;
+ cpix2 = epix2 + S2->w * S2->h;
+ }
+ else
+ {
+ epix2 = epix1;
+ cpix2 = cpix1;
+ }
+
+ for (; cpix1 > epix1; cpix1--, cpix2--)
+ {
+ SDL_GetRGBA(*cpix1, fmt1, &r1, &g1, &b1, &a1);
+ a1 = gamma * a1;
+ if (S2 != NULL && cpix2 > epix2)
+ {
+ SDL_GetRGBA(*cpix2, fmt2, &r2, &g2, &b2, &a2);
+ r1 = gamma * r1 + gamflip * r2;
+ g1 = gamma * g1 + gamflip * g2;
+ b1 = gamma * b1 + gamflip * b2;
+ a1 += gamflip * a2;
+ }
+ *cpix1 = SDL_MapRGBA(fmt1,r1,g1,b1,a1);
+ }
+
+ SDL_UnlockSurface(tmpS);
+
+ if (S2 != NULL)
+ SDL_UnlockSurface(S2);
+
+ ret = SDL_DisplayFormatAlpha(tmpS);
+ SDL_FreeSurface(tmpS);
+
+ return ret;
+}
+
+
+/* free every surface in the array together with the array itself */
+void FreeSurfaceArray(SDL_Surface** surfs, int length)
+{
+ int i;
+
+ if(surfs == NULL)
+ return;
+
+ for(i = 0; i < length; i++)
+ if(surfs[i] != NULL)
+ SDL_FreeSurface(surfs[i]);
+ free(surfs);
+}
+
+int inRect( SDL_Rect r, int x, int y) {
+ if ((x < r.x) || (y < r.y) || (x > r.x + r.w) || (y > r.y + r.h))
+ return 0;
+ return 1;
+}
+
+void UpdateRect(SDL_Surface* surf, SDL_Rect* rect)
+{
+ SDL_UpdateRect(surf, rect->x, rect->y, rect->w, rect->h);
+}
+
+void SetRect(SDL_Rect* rect, const float* pos)
+{
+ rect->x = pos[0] * screen->w;
+ rect->y = pos[1] * screen->h;
+ rect->w = pos[2] * screen->w;
+ rect->h = pos[3] * screen->h;
+}
+
+/* Darkens the screen by a factor of 2^bits */
+void DarkenScreen(Uint8 bits)
+{
+#if PIXEL_BITS == 32
+ Uint32* p;
+#elif PIXEL_BITS == 16
+ Uint16* p;
+#else
+ return;
+#endif
+ Uint32 rm = screen->format->Rmask;
+ Uint32 gm = screen->format->Gmask;
+ Uint32 bm = screen->format->Bmask;
+
+
+ int x, y;
+
+ /* (realistically, 1 and 2 are the only useful values) */
+ if (bits > 8)
+ return;
+
+ p = screen->pixels;
+
+ for (y = 0; y < screen->h; y++)
+ {
+ for (x = 0; x < screen->w; x++)
+ {
+ *p = (((*p&rm)>>bits)&rm)
+ | (((*p&gm)>>bits)&gm)
+ | (((*p&bm)>>bits)&bm);
+ p++;
+ }
+ }
+}
+
+/* change window size (works only in windowed mode) */
+void ChangeWindowSize(int new_res_x, int new_res_y)
+{
+ SDL_Surface* oldscreen = screen;
+
+ if(!(screen->flags & SDL_FULLSCREEN))
+ {
+ screen = SDL_SetVideoMode(new_res_x,
+ new_res_y,
+ PIXEL_BITS,
+ SDL_SWSURFACE|SDL_HWPALETTE);
+
+ if(screen == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I could not change screen mode into %d x %d.\n",
+ new_res_x, new_res_y);
+ screen = oldscreen;
+ }
+ else
+ {
+ DEBUGMSG(debug_sdl, "ChangeWindowSize(): Changed window size to %d x %d\n", screen->w, screen->h);
+ oldscreen = NULL;
+ win_res_x = screen->w;
+ win_res_y = screen->h;
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+ }
+ }
+ else
+ DEBUGMSG(debug_sdl, "ChangeWindowSize() can be run only in windowed mode !");
+}
+
+/* switch between fullscreen and windowed mode */
+void SwitchScreenMode(void)
+{
+ int window = (screen->flags & SDL_FULLSCREEN);
+ SDL_Surface* oldscreen = screen;
+
+ screen = SDL_SetVideoMode(window ? win_res_x : fs_res_x,
+ window ? win_res_y : fs_res_y,
+ PIXEL_BITS,
+ screen->flags ^ SDL_FULLSCREEN);
+
+ if (screen == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I could not switch to %s mode.\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n",
+ window ? "windowed" : "fullscreen",
+ SDL_GetError());
+ screen = oldscreen;
+ }
+ else
+ {
+ //success, no need to free the old video surface
+ DEBUGMSG(debug_sdl, "Switched screen mode to %s\n", window ? "windowed" : "fullscreen");
+ oldscreen = NULL;
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+ }
+}
+
+/*
+Block application until SDL receives an appropriate event. Events can be
+a single or OR'd combination of event masks.
+e.g. e = WaitForEvent(SDL_KEYDOWNMASK | SDL_QUITMASK)
+*/
+SDL_EventType WaitForEvent(SDL_EventMask events)
+{
+ SDL_Event evt;
+ while (1)
+ {
+ while (SDL_PollEvent(&evt) )
+ {
+ if (SDL_EVENTMASK(evt.type) & events)
+ return evt.type;
+ else
+ SDL_Delay(50);
+ }
+ }
+}
+/* Swiped shamelessly from TuxPaint
+ Based on code from: http://www.codeproject.com/cs/media/imageprocessing4.asp
+ copyright 2002 Christian Graus */
+
+SDL_Surface* zoom(SDL_Surface* src, int new_w, int new_h)
+{
+ SDL_Surface* s;
+
+ /* These function pointers will point to the appropriate */
+ /* putpixel() and getpixel() variants to be used in the */
+ /* current colorspace: */
+ void (*putpixel) (SDL_Surface*, int, int, Uint32);
+ Uint32(*getpixel) (SDL_Surface*, int, int);
+
+ float xscale, yscale;
+ int x, y;
+ int floor_x, ceil_x,
+ floor_y, ceil_y;
+ float fraction_x, fraction_y,
+ one_minus_x, one_minus_y;
+ float n1, n2;
+ Uint8 r1, g1, b1, a1;
+ Uint8 r2, g2, b2, a2;
+ Uint8 r3, g3, b3, a3;
+ Uint8 r4, g4, b4, a4;
+ Uint8 r, g, b, a;
+
+ DEBUGMSG(debug_sdl, "Entering zoom():\n");
+
+ /* Create surface for zoom: */
+
+ s = SDL_CreateRGBSurface(src->flags, /* SDL_SWSURFACE, */
+ new_w, new_h, src->format->BitsPerPixel,
+ src->format->Rmask,
+ src->format->Gmask,
+ src->format->Bmask,
+ src->format->Amask);
+
+ if (s == NULL)
+ {
+ fprintf(stderr, "\nError: Can't build zoom surface\n"
+ "The Simple DirectMedia Layer error that occurred was:\n"
+ "%s\n\n", SDL_GetError());
+ return NULL;
+// cleanup();
+// exit(1);
+ }
+
+ DEBUGMSG(debug_sdl, "zoom(): orig surface %dx%d, %d bytes per pixel\n",
+ src->w, src->h, src->format->BytesPerPixel);
+ DEBUGMSG(debug_sdl, "zoom(): new surface %dx%d, %d bytes per pixel\n",
+ s->w, s->h, s->format->BytesPerPixel);
+
+ /* Now assign function pointers to correct functions based */
+ /* on data format of original and zoomed surfaces: */
+ getpixel = getpixels[src->format->BytesPerPixel];
+ putpixel = putpixels[s->format->BytesPerPixel];
+
+ SDL_LockSurface(src);
+ SDL_LockSurface(s);
+
+ xscale = (float) src->w / (float) new_w;
+ yscale = (float) src->h / (float) new_h;
+
+ for (x = 0; x < new_w; x++)
+ {
+ for (y = 0; y < new_h; y++)
+ {
+ /* Here we calculate the new RGBA values for each pixel */
+ /* using a "weighted average" of the four pixels in the */
+ /* corresponding location in the orginal surface: */
+
+ /* figure out which original pixels to use in the calc: */
+ floor_x = floor((float) x * xscale);
+ ceil_x = floor_x + 1;
+ if (ceil_x >= src->w)
+ ceil_x = floor_x;
+
+ floor_y = floor((float) y * yscale);
+ ceil_y = floor_y + 1;
+ if (ceil_y >= src->h)
+ ceil_y = floor_y;
+
+ fraction_x = x * xscale - floor_x;
+ fraction_y = y * yscale - floor_y;
+
+ one_minus_x = 1.0 - fraction_x;
+ one_minus_y = 1.0 - fraction_y;
+
+ /* Grab their values: */
+ SDL_GetRGBA(getpixel(src, floor_x, floor_y), src->format,
+ &r1, &g1, &b1, &a1);
+ SDL_GetRGBA(getpixel(src, ceil_x, floor_y), src->format,
+ &r2, &g2, &b2, &a2);
+ SDL_GetRGBA(getpixel(src, floor_x, ceil_y), src->format,
+ &r3, &g3, &b3, &a3);
+ SDL_GetRGBA(getpixel(src, ceil_x, ceil_y), src->format,
+ &r4, &g4, &b4, &a4);
+
+ /* Create the weighted averages: */
+ n1 = (one_minus_x * r1 + fraction_x * r2);
+ n2 = (one_minus_x * r3 + fraction_x * r4);
+ r = (one_minus_y * n1 + fraction_y * n2);
+
+ n1 = (one_minus_x * g1 + fraction_x * g2);
+ n2 = (one_minus_x * g3 + fraction_x * g4);
+ g = (one_minus_y * n1 + fraction_y * n2);
+
+ n1 = (one_minus_x * b1 + fraction_x * b2);
+ n2 = (one_minus_x * b3 + fraction_x * b4);
+ b = (one_minus_y * n1 + fraction_y * n2);
+
+ n1 = (one_minus_x * a1 + fraction_x * a2);
+ n2 = (one_minus_x * a3 + fraction_x * a4);
+ a = (one_minus_y * n1 + fraction_y * n2);
+
+ /* and put them into our new surface: */
+ putpixel(s, x, y, SDL_MapRGBA(s->format, r, g, b, a));
+
+ }
+ }
+
+ SDL_UnlockSurface(s);
+ SDL_UnlockSurface(src);
+
+ DEBUGMSG(debug_sdl, "Leaving zoom():\n");
+
+ return s;
+}
+
+/************************************************************************/
+/* */
+/* Begin text drawing functions */
+/* */
+/* These functions support text drawing using either SDL_Pango */
+/* or SDL_ttf. SDL_Pango is preferable but is not available on all */
+/* platforms. Code outside of this file does not have to worry about */
+/* which library is used to do the actual rendering. */
+/************************************************************************/
+
+#define MAX_FONT_SIZE 40
+
+//NOTE to test program with SDL_ttf, do "./configure --without-sdlpango"
+
+
+/*-- file-scope variables and local file prototypes for SDL_Pango-based code: */
+#ifdef HAVE_LIBSDL_PANGO
+#include "SDL_Pango.h"
+SDLPango_Context* context = NULL;
+static SDLPango_Matrix* SDL_Colour_to_SDLPango_Matrix(const SDL_Color* cl);
+static int Set_SDL_Pango_Font_Size(int size);
+
+/*-- file-scope variables and local file prototypes for SDL_ttf-based code: */
+#else
+#include "SDL_ttf.h"
+/* We cache fonts here once loaded to improve performance: */
+TTF_Font* font_list[MAX_FONT_SIZE + 1] = {NULL};
+static void free_font_list(void);
+static TTF_Font* get_font(int size);
+static TTF_Font* load_font(const char* font_name, int font_size);
+#endif
+
+
+/* "Public" functions called from other files that use either */
+/*SDL_Pango or SDL_ttf: */
+
+
+/* For setup, we either initialize SDL_Pango and set its context, */
+/* or we initialize SDL_ttf: */
+int Setup_SDL_Text(void)
+{
+#ifdef HAVE_LIBSDL_PANGO
+
+ DEBUGMSG(debug_sdl, "Setup_SDL_Text() - using SDL_Pango\n");
+
+ SDLPango_Init();
+ if (!Set_SDL_Pango_Font_Size(DEFAULT_MENU_FONT_SIZE))
+ {
+ fprintf(stderr, "\nError: I could not set SDL_Pango context\n");
+ return 0;
+ }
+ return 1;
+
+#else
+/* using SDL_ttf: */
+ DEBUGMSG(debug_sdl, "Setup_SDL_Text() - using SDL_ttf\n");
+
+ if (TTF_Init() < 0)
+ {
+ fprintf(stderr, "\nError: I could not initialize SDL_ttf\n");
+ return 0;
+ }
+ return 1;
+#endif
+}
+
+
+
+void Cleanup_SDL_Text(void)
+{
+#ifdef HAVE_LIBSDL_PANGO
+ if(context != NULL)
+ SDLPango_FreeContext(context);
+ context = NULL;
+#else
+ free_font_list();
+ TTF_Quit();
+#endif
+}
+
+
+/* BlackOutline() creates a surface containing text of the designated */
+/* foreground color, surrounded by a black shadow, on a transparent */
+/* background. The appearance can be tuned by adjusting the number of */
+/* background copies and the offset where the foreground text is */
+/* finally written (see below). */
+//SDL_Surface* BlackOutline(const char *t, TTF_Font *font, SDL_Color *c)
+SDL_Surface* BlackOutline(const char* t, int size, SDL_Color* c)
+{
+ SDL_Surface* out = NULL;
+ SDL_Surface* black_letters = NULL;
+ SDL_Surface* white_letters = NULL;
+ SDL_Surface* bg = NULL;
+ SDL_Rect dstrect;
+ Uint32 color_key;
+
+/* Make sure everything is sane before we proceed: */
+#ifdef HAVE_LIBSDL_PANGO
+ if (!context)
+ {
+ fprintf(stderr, "BlackOutline(): invalid SDL_Pango context - returning.\n");
+ return NULL;
+ }
+#else
+ TTF_Font* font = get_font(size);
+ if (!font)
+ {
+ fprintf(stderr, "BlackOutline(): could not load needed font - returning.\n");
+ return NULL;
+ }
+#endif
+
+ if (!t || !c)
+ {
+ fprintf(stderr, "BlackOutline(): invalid ptr parameter, returning.\n");
+ return NULL;
+ }
+
+ if (t[0] == '\0')
+ {
+ fprintf(stderr, "BlackOutline(): empty string, returning\n");
+ return NULL;
+ }
+
+ DEBUGMSG(debug_sdl, "Entering BlackOutline():\n");
+ DEBUGMSG(debug_sdl, "BlackOutline of \"%s\"\n", t );
+
+#ifdef HAVE_LIBSDL_PANGO
+ Set_SDL_Pango_Font_Size(size);
+ SDLPango_SetDefaultColor(context, MATRIX_TRANSPARENT_BACK_BLACK_LETTER);
+ SDLPango_SetText(context, t, -1);
+ black_letters = SDLPango_CreateSurfaceDraw(context);
+#else
+ black_letters = TTF_RenderUTF8_Blended(font, t, black);
+#endif
+
+ if (!black_letters)
+ {
+ fprintf (stderr, "Warning - BlackOutline() could not create image for %s\n", t);
+ return NULL;
+ }
+
+ bg = SDL_CreateRGBSurface(SDL_SWSURFACE,
+ (black_letters->w) + 5,
+ (black_letters->h) + 5,
+ 32,
+ rmask, gmask, bmask, amask);
+ /* Use color key for eventual transparency: */
+ color_key = SDL_MapRGB(bg->format, 01, 01, 01);
+ SDL_FillRect(bg, NULL, color_key);
+
+ /* Now draw black outline/shadow 2 pixels on each side: */
+ dstrect.w = black_letters->w;
+ dstrect.h = black_letters->h;
+
+ /* NOTE: can make the "shadow" more or less pronounced by */
+ /* changing the parameters of these loops. */
+ for (dstrect.x = 1; dstrect.x < 4; dstrect.x++)
+ for (dstrect.y = 1; dstrect.y < 3; dstrect.y++)
+ SDL_BlitSurface(black_letters , NULL, bg, &dstrect );
+
+ SDL_FreeSurface(black_letters);
+
+ /* --- Put the color version of the text on top! --- */
+#ifdef HAVE_LIBSDL_PANGO
+ /* convert color arg: */
+ SDLPango_Matrix* color_matrix = SDL_Colour_to_SDLPango_Matrix(c);
+
+ if (color_matrix)
+ {
+ SDLPango_SetDefaultColor(context, color_matrix);
+ free(color_matrix);
+ }
+ else /* fall back to just using white if conversion fails: */
+ SDLPango_SetDefaultColor(context, MATRIX_TRANSPARENT_BACK_WHITE_LETTER);
+
+ white_letters = SDLPango_CreateSurfaceDraw(context);
+
+#else
+ white_letters = TTF_RenderUTF8_Blended(font, t, *c);
+#endif
+
+ if (!white_letters)
+ {
+ fprintf (stderr, "Warning - BlackOutline() could not create image for %s\n", t);
+ return NULL;
+ }
+
+ dstrect.x = 1;
+ dstrect.y = 1;
+ SDL_BlitSurface(white_letters, NULL, bg, &dstrect);
+ SDL_FreeSurface(white_letters);
+
+ /* --- Convert to the screen format for quicker blits --- */
+ SDL_SetColorKey(bg, SDL_SRCCOLORKEY|SDL_RLEACCEL, color_key);
+ out = SDL_DisplayFormatAlpha(bg);
+ SDL_FreeSurface(bg);
+
+ DEBUGMSG(debug_sdl, "\nLeaving BlackOutline(): \n");
+
+ return out;
+}
+
+
+/* This (fast) function just returns a non-outlined surf */
+/* using either SDL_Pango or SDL_ttf */
+SDL_Surface* SimpleText(const char *t, int size, SDL_Color* col)
+{
+ SDL_Surface* surf = NULL;
+
+ if (!t||!col)
+ return NULL;
+
+#ifdef HAVE_LIBSDL_PANGO
+ if (!context)
+ {
+ fprintf(stderr, "SimpleText() - context not valid!\n");
+ return NULL;
+ }
+ else
+ {
+ SDLPango_Matrix colormatrix =
+ {{
+ {col->r, col->r, 0, 0},
+ {col->g, col->g, 0, 0},
+ {col->b, col->b, 0, 0},
+ {0, 255, 0, 0}
+ }};
+ Set_SDL_Pango_Font_Size(size);
+ SDLPango_SetDefaultColor(context, &colormatrix );
+ SDLPango_SetText(context, t, -1);
+ surf = SDLPango_CreateSurfaceDraw(context);
+ }
+
+#else
+ {
+ TTF_Font* font = get_font(size);
+ if (!font)
+ return NULL;
+ surf = TTF_RenderUTF8_Blended(font, t, *col);
+ }
+#endif
+
+ return surf;
+}
+
+/* This (fast) function just returns a non-outlined surf */
+/* using SDL_Pango if available, SDL_ttf as fallback */
+SDL_Surface* SimpleTextWithOffset(const char *t, int size, SDL_Color* col, int *glyph_offset)
+{
+ SDL_Surface* surf = NULL;
+
+ if (!t||!col)
+ return NULL;
+
+#ifdef HAVE_LIBSDL_PANGO
+ if (!context)
+ {
+ fprintf(stderr, "SimpleText() - context not valid!\n");
+ return NULL;
+ }
+ else
+ {
+ SDLPango_Matrix colormatrix =
+ {{
+ {col->r, col->r, 0, 0},
+ {col->g, col->g, 0, 0},
+ {col->b, col->b, 0, 0},
+ {0, 255, 0, 0}
+ }};
+ Set_SDL_Pango_Font_Size(size);
+ SDLPango_SetDefaultColor(context, &colormatrix );
+ SDLPango_SetText(context, t, -1);
+ surf = SDLPango_CreateSurfaceDraw(context);
+ *glyph_offset = 0; // fixme?
+ }
+
+#else
+ {
+ TTF_Font* font = get_font(size);
+ if (!font)
+ return NULL;
+ surf = TTF_RenderUTF8_Blended(font, t, *col);
+ {
+ int h;
+ int hmax = 0;
+ int len = strlen(t);
+ int i;
+ for (i = 0; i < len; i++)
+ {
+ TTF_GlyphMetrics(font, t[i], NULL, NULL, NULL, &h, NULL);
+ if (h > hmax)
+ hmax = h;
+ }
+ *glyph_offset = hmax - TTF_FontAscent(font);
+ }
+ }
+#endif
+
+ return surf;
+}
+
+
+
+/*-----------------------------------------------------------*/
+/* Local functions, callable only within SDL_extras, divided */
+/* according with which text lib we are using: */
+/*-----------------------------------------------------------*/
+
+
+
+#ifdef HAVE_LIBSDL_PANGO
+/* Local functions when using SDL_Pango: */
+
+
+/* NOTE the scaling by 3/4 a few lines down represents a conversion from */
+/* the usual text dpi of 72 to the typical screen dpi of 96. It gives */
+/* font sizes fairly similar to a SDL_ttf font with the same numerical value. */
+static int Set_SDL_Pango_Font_Size(int size)
+{
+ /* static so we can "remember" values from previous time through: */
+ static int prev_pango_font_size;
+ static char prev_font_name[FONT_NAME_LENGTH];
+ /* Do nothing unless we need to change size or font: */
+ if ((size == prev_pango_font_size)
+ &&
+ (0 == strncmp(prev_font_name, Opts_FontName(), sizeof(prev_font_name))))
+ return 1;
+ else
+ {
+ char buf[64];
+
+ DEBUGMSG(debug_sdl, "Setting font size to %d\n", size);
+
+ if(context != NULL)
+ SDLPango_FreeContext(context);
+ context = NULL;
+ snprintf(buf, sizeof(buf), "%s %d", Opts_FontName(), (int)((size * 3)/4));
+ context = SDLPango_CreateContext_GivenFontDesc(buf);
+ }
+
+ if (!context)
+ return 0;
+ else
+ {
+ prev_pango_font_size = size;
+ strncpy(prev_font_name, Opts_FontName(), sizeof(prev_font_name));
+ return 1;
+ }
+}
+
+
+SDLPango_Matrix* SDL_Colour_to_SDLPango_Matrix(const SDL_Color *cl)
+{
+ int k = 0;
+ SDLPango_Matrix* colour = NULL;
+
+ if (!cl)
+ {
+ fprintf(stderr, "Invalid SDL_Color* arg\n");
+ return NULL;
+ }
+
+ colour = (SDLPango_Matrix*)malloc(sizeof(SDLPango_Matrix));
+
+ for(k = 0; k < 4; k++)
+ {
+ (*colour).m[0][k] = (*cl).r;
+ (*colour).m[1][k] = (*cl).g;
+ (*colour).m[2][k] = (*cl).b;
+ }
+ (*colour).m[3][0] = 0;
+ (*colour).m[3][1] = 255;
+ (*colour).m[3][2] = 0;
+ (*colour).m[3][3] = 0;
+
+ return colour;
+}
+
+#else
+/* Local functions when using SDL_ttf: */
+
+static void free_font_list(void)
+{
+ int i;
+ for(i = 0; i < MAX_FONT_SIZE; i++)
+ {
+ if(font_list[i])
+ {
+ TTF_CloseFont(font_list[i]);
+ font_list[i] = NULL;
+ }
+ }
+}
+
+/* FIXME - could combine this with load_font() below: */
+/* Loads and caches fonts in each size as they are requested: */
+/* We use the font size as an array index, keeping each size */
+/* font in memory once loaded until cleanup. */
+static TTF_Font* get_font(int size)
+{
+ static char prev_font_name[FONT_NAME_LENGTH];
+ if (size < 0)
+ {
+ fprintf(stderr, "Error - requested font size %d is negative\n", size);
+ return NULL;
+ }
+
+ if (size > MAX_FONT_SIZE)
+ {
+ fprintf(stderr, "Error - requested font size %d exceeds max = %d, resetting.\n",
+ size, MAX_FONT_SIZE);
+ size = MAX_FONT_SIZE;
+ }
+
+ /* If the font has changed, we need to wipe out the old ones: */
+ if (0 != strncmp(prev_font_name, Opts_FontName(),sizeof(prev_font_name)))
+ {
+ free_font_list();
+ strncpy(prev_font_name, Opts_FontName(), sizeof(prev_font_name));
+ }
+
+ if(font_list[size] == NULL)
+ font_list[size] = load_font(DEFAULT_FONT_NAME, size);
+ return font_list[size];
+}
+
+
+/* FIXME: I think we need to provide a single default font with the program data, */
+/* then more flexible code to try to locate or load system fonts. DSB */
+/* Returns ptr to loaded font if successful, NULL otherwise. */
+static TTF_Font* load_font(const char* font_name, int font_size)
+{
+ TTF_Font* f;
+ char fontfile[PATH_MAX];
+ sprintf(fontfile, "%s/fonts/%s", DATA_PREFIX, font_name);
+
+ f = TTF_OpenFont(fontfile, font_size);
+
+ /* HACK - better font searching needed! */
+ /* This should mean that font wasn't bundled into data path, which for */
+ /* now means we are using Debian, so grab from Debian installation loc: */
+ if (!f)
+ {
+ sprintf(fontfile, "/usr/share/fonts/truetype/ttf-sil-andika/AndikaDesRevG.ttf");
+ f = TTF_OpenFont(fontfile, font_size);
+ }
+
+
+ if (f)
+ {
+ DEBUGMSG(debug_sdl, "LoadFont(): %s loaded successfully\n\n", fontfile);
+ return f;
+ }
+ else
+ {
+ fprintf(stderr, "LoadFont(): %s NOT loaded successfully.\n", fontfile);
+ return NULL;
+ }
+}
+#endif
+
diff --git a/src/SDL_extras.h b/src/SDL_extras.h
new file mode 100644
index 0000000..df303ab
--- /dev/null
+++ b/src/SDL_extras.h
@@ -0,0 +1,59 @@
+//
+// C Interface: SDL_extras
+//
+// Description: A few handy functions for using SDL graphics.
+//
+//
+// Author: David Bruce,,, <davidstuartbruce at gmail.com>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+// (briefly, GPL v3 or later).
+//
+
+#ifndef SDL_EXTRAS_H
+#define SDL_EXTRAS_H
+
+#include "SDL.h"
+
+#if SDL_BYTEORDER == SDL_BIG_ENDIAN
+#define rmask 0xff000000
+#define gmask 0x00ff0000
+#define bmask 0x0000ff00
+#define amask 0x000000ff
+#else
+#define rmask 0x000000ff
+#define gmask 0x0000ff00
+#define bmask 0x00ff0000
+#define amask 0xff000000
+#endif
+
+
+/* Non-text graphics functions: */
+void DrawButton(SDL_Rect* target_rect, int radius, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
+SDL_Surface* CreateButton(int w, int h, int radius, Uint8 r, Uint8 g, Uint8 b, Uint8 a);
+void RoundCorners(SDL_Surface* s, Uint16 radius);
+
+SDL_Surface* Flip(SDL_Surface *in, int x, int y);
+SDL_Surface* Blend(SDL_Surface *S1, SDL_Surface *S2, float gamma);
+
+void FreeSurfaceArray(SDL_Surface** surfs, int length);
+int inRect(SDL_Rect r, int x, int y);
+void SetRect(SDL_Rect* rect, const float* pos);
+void UpdateRect(SDL_Surface* surf, SDL_Rect* rect);
+
+void DarkenScreen(Uint8 bits);
+void ChangeWindowSize(int new_res_x, int new_res_y);
+void SwitchScreenMode(void);
+
+SDL_EventType WaitForEvent(SDL_EventMask events);
+SDL_Surface* zoom(SDL_Surface* src, int new_w, int new_h);
+
+/*Text rendering functions: */
+int Setup_SDL_Text(void);
+void Cleanup_SDL_Text(void);
+SDL_Surface* BlackOutline(const char* t, int size, SDL_Color* c);
+SDL_Surface* SimpleText(const char *t, int size, SDL_Color* col);
+SDL_Surface* SimpleTextWithOffset(const char *t, int size, SDL_Color* col, int *glyph_offset);
+
+
+#endif
diff --git a/src/SDL_rotozoom.c b/src/SDL_rotozoom.c
new file mode 100644
index 0000000..ecd83e0
--- /dev/null
+++ b/src/SDL_rotozoom.c
@@ -0,0 +1,1359 @@
+/*
+
+ The SDL_rotozoom sources were copied from the SDL_gfx library and
+ are relicensed, only for the purposes of TuxMath, to GPL. Thanks to
+ Andreas Schiffler.
+
+ SDL_rotozoom.c - rotozoomer for 32bit or 8bit surfaces
+
+ LGPL (c) A. Schiffler
+
+*/
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "SDL_rotozoom.h"
+
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+
+
+/*
+
+ 32bit integer-factor averaging Shrinker
+
+ Shrinks 32bit RGBA/ABGR 'src' surface to 'dst' surface.
+
+*/
+
+int shrinkSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory)
+{
+ int x, y, dx, dy, sgap, dgap, ra, ga, ba, aa;
+ int n_average;
+ tColorRGBA *sp, *osp, *oosp;
+ tColorRGBA *dp;
+
+ /*
+ * Averaging integer shrink
+ */
+
+ /* Precalculate division factor */
+ n_average = factorx*factory;
+
+ /*
+ * Scan destination
+ */
+ sp = (tColorRGBA *) src->pixels;
+ sgap = src->pitch - src->w * 4;
+
+ dp = (tColorRGBA *) dst->pixels;
+ dgap = dst->pitch - dst->w * 4;
+
+ for (y = 0; y < dst->h; y++) {
+
+ osp=sp;
+ for (x = 0; x < dst->w; x++) {
+
+ /* Trace out source box and accumulate */
+ oosp=sp;
+ ra=ga=ba=aa=0;
+ for (dy=0; dy < factory; dy++) {
+ for (dx=0; dx < factorx; dx++) {
+ ra += sp->r;
+ ga += sp->g;
+ ba += sp->b;
+ aa += sp->a;
+
+ sp++;
+ } // src dx loop
+ sp = (tColorRGBA *)((Uint8*)sp + (src->pitch - 4*factorx)); // next y
+ } // src dy loop
+
+ // next box-x
+ sp = (tColorRGBA *)((Uint8*)oosp + 4*factorx);
+
+ /* Store result in destination */
+ dp->r = ra/n_average;
+ dp->g = ga/n_average;
+ dp->b = ba/n_average;
+ dp->a = aa/n_average;
+
+ /*
+ * Advance destination pointer
+ */
+ dp++;
+ } // dst x loop
+
+ // next box-y
+ sp = (tColorRGBA *)((Uint8*)osp + src->pitch*factory);
+
+ /*
+ * Advance destination pointers
+ */
+ dp = (tColorRGBA *) ((Uint8 *) dp + dgap);
+ } // dst y loop
+
+ return (0);
+}
+
+/*
+
+ 8bit integer-factor averaging Shrinker
+
+ Shrinks 8bit Y 'src' surface to 'dst' surface.
+
+*/
+
+int shrinkSurfaceY(SDL_Surface * src, SDL_Surface * dst, int factorx, int factory)
+{
+ int x, y, dx, dy, sgap, dgap, a;
+ int n_average;
+ Uint8 *sp, *osp, *oosp;
+ Uint8 *dp;
+
+ /*
+ * Averaging integer shrink
+ */
+
+ /* Precalculate division factor */
+ n_average = factorx*factory;
+
+ /*
+ * Scan destination
+ */
+ sp = (Uint8 *) src->pixels;
+ sgap = src->pitch - src->w;
+
+ dp = (Uint8 *) dst->pixels;
+ dgap = dst->pitch - dst->w;
+
+ for (y = 0; y < dst->h; y++) {
+
+ osp=sp;
+ for (x = 0; x < dst->w; x++) {
+
+ /* Trace out source box and accumulate */
+ oosp=sp;
+ a=0;
+ for (dy=0; dy < factory; dy++) {
+ for (dx=0; dx < factorx; dx++) {
+ a += (*sp);
+ sp++; // next x
+ } // src dx loop
+ sp = (Uint8 *)((Uint8*)sp + (src->pitch - factorx)); // next y
+ } // src dy loop
+
+ // next box-x
+ sp = (Uint8 *)((Uint8*)oosp + factorx);
+
+ /* Store result in destination */
+ *dp = a/n_average;
+
+ /*
+ * Advance destination pointer
+ */
+ dp++;
+ } // dst x loop
+
+ // next box-y
+ sp = (Uint8 *)((Uint8*)osp + src->pitch*factory);
+
+ /*
+ * Advance destination pointers
+ */
+ dp = (Uint8 *)((Uint8 *)dp + dgap);
+ } // dst y loop
+
+ return (0);
+}
+
+/*
+
+ 32bit Zoomer with optional anti-aliasing by bilinear interpolation.
+
+ Zoomes 32bit RGBA/ABGR 'src' surface to 'dst' surface.
+
+*/
+
+int zoomSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy, int smooth)
+{
+ int x, y, sx, sy, *sax, *say, *csax, *csay, csx, csy, ex, ey, t1, t2, sstep;
+ tColorRGBA *c00, *c01, *c10, *c11;
+ tColorRGBA *sp, *csp, *dp;
+ int dgap;
+
+ /*
+ * Variable setup
+ */
+ if (smooth) {
+ /*
+ * For interpolation: assume source dimension is one pixel
+ */
+ /*
+ * smaller to avoid overflow on right and bottom edge.
+ */
+ sx = (int) (65536.0 * (float) (src->w - 1) / (float) dst->w);
+ sy = (int) (65536.0 * (float) (src->h - 1) / (float) dst->h);
+ } else {
+ sx = (int) (65536.0 * (float) src->w / (float) dst->w);
+ sy = (int) (65536.0 * (float) src->h / (float) dst->h);
+ }
+
+ /*
+ * Allocate memory for row increments
+ */
+ if ((sax = (int *) malloc((dst->w + 1) * sizeof(Uint32))) == NULL) {
+ return (-1);
+ }
+ if ((say = (int *) malloc((dst->h + 1) * sizeof(Uint32))) == NULL) {
+ free(sax);
+ return (-1);
+ }
+
+ /*
+ * Precalculate row increments
+ */
+ sp = csp = (tColorRGBA *) src->pixels;
+ dp = (tColorRGBA *) dst->pixels;
+
+ if (flipx) csp += (src->w-1);
+ if (flipy) csp = (tColorRGBA*)( (Uint8*)csp + src->pitch*(src->h-1) );
+
+ csx = 0;
+ csax = sax;
+ for (x = 0; x <= dst->w; x++) {
+ *csax = csx;
+ csax++;
+ csx &= 0xffff;
+ csx += sx;
+ }
+ csy = 0;
+ csay = say;
+ for (y = 0; y <= dst->h; y++) {
+ *csay = csy;
+ csay++;
+ csy &= 0xffff;
+ csy += sy;
+ }
+
+ dgap = dst->pitch - dst->w * 4;
+
+ /*
+ * Switch between interpolating and non-interpolating code
+ */
+ if (smooth) {
+
+ /*
+ * Interpolating Zoom
+ */
+
+ /*
+ * Scan destination
+ */
+ csay = say;
+ for (y = 0; y < dst->h; y++) {
+ /*
+ * Setup color source pointers
+ */
+ c00 = csp;
+ c01 = csp;
+ c01++;
+ c10 = (tColorRGBA *) ((Uint8 *) csp + src->pitch);
+ c11 = c10;
+ c11++;
+ csax = sax;
+ for (x = 0; x < dst->w; x++) {
+
+ /*
+ * Interpolate colors
+ */
+ ex = (*csax & 0xffff);
+ ey = (*csay & 0xffff);
+ t1 = ((((c01->r - c00->r) * ex) >> 16) + c00->r) & 0xff;
+ t2 = ((((c11->r - c10->r) * ex) >> 16) + c10->r) & 0xff;
+ dp->r = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01->g - c00->g) * ex) >> 16) + c00->g) & 0xff;
+ t2 = ((((c11->g - c10->g) * ex) >> 16) + c10->g) & 0xff;
+ dp->g = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01->b - c00->b) * ex) >> 16) + c00->b) & 0xff;
+ t2 = ((((c11->b - c10->b) * ex) >> 16) + c10->b) & 0xff;
+ dp->b = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01->a - c00->a) * ex) >> 16) + c00->a) & 0xff;
+ t2 = ((((c11->a - c10->a) * ex) >> 16) + c10->a) & 0xff;
+ dp->a = (((t2 - t1) * ey) >> 16) + t1;
+
+ /*
+ * Advance source pointers
+ */
+ csax++;
+ sstep = (*csax >> 16);
+ c00 += sstep;
+ c01 += sstep;
+ c10 += sstep;
+ c11 += sstep;
+ /*
+ * Advance destination pointer
+ */
+ dp++;
+ }
+ /*
+ * Advance source pointer
+ */
+ csay++;
+ csp = (tColorRGBA *) ((Uint8 *) csp + (*csay >> 16) * src->pitch);
+ /*
+ * Advance destination pointers
+ */
+ dp = (tColorRGBA *) ((Uint8 *) dp + dgap);
+ }
+
+ } else {
+
+ /*
+ * Non-Interpolating Zoom
+ */
+
+ csay = say;
+ for (y = 0; y < dst->h; y++) {
+ sp = csp;
+ csax = sax;
+ for (x = 0; x < dst->w; x++) {
+ /*
+ * Draw
+ */
+ *dp = *sp;
+ /*
+ * Advance source pointers
+ */
+ csax++;
+ sstep = (*csax >> 16);
+ if (flipx) sstep = -sstep;
+ sp += sstep;
+ /*
+ * Advance destination pointer
+ */
+ dp++;
+ }
+ /*
+ * Advance source pointer
+ */
+ csay++;
+ sstep = (*csay >> 16) * src->pitch;
+ if (flipy) sstep = -sstep;
+ csp = (tColorRGBA *) ((Uint8 *) csp + sstep);
+
+ /*
+ * Advance destination pointers
+ */
+ dp = (tColorRGBA *) ((Uint8 *) dp + dgap);
+ }
+
+ }
+
+ /*
+ * Remove temp arrays
+ */
+ free(sax);
+ free(say);
+
+ return (0);
+}
+
+/*
+
+ 8bit Zoomer without smoothing.
+
+ Zoomes 8bit palette/Y 'src' surface to 'dst' surface.
+
+*/
+
+int zoomSurfaceY(SDL_Surface * src, SDL_Surface * dst, int flipx, int flipy)
+{
+ Uint32 x, y, sx, sy, *sax, *say, *csax, *csay, csx, csy;
+ Uint8 *sp, *dp, *csp;
+ int dgap;
+
+ /*
+ * Variable setup
+ */
+ sx = (Uint32) (65536.0 * (float) src->w / (float) dst->w);
+ sy = (Uint32) (65536.0 * (float) src->h / (float) dst->h);
+
+ /*
+ * Allocate memory for row increments
+ */
+ if ((sax = (Uint32 *) malloc(dst->w * sizeof(Uint32))) == NULL) {
+ return (-1);
+ }
+ if ((say = (Uint32 *) malloc(dst->h * sizeof(Uint32))) == NULL) {
+ if (sax != NULL) {
+ free(sax);
+ }
+ return (-1);
+ }
+
+ /*
+ * Precalculate row increments
+ */
+ csx = 0;
+ csax = sax;
+ for (x = 0; x < dst->w; x++) {
+ csx += sx;
+ *csax = (csx >> 16);
+ csx &= 0xffff;
+ csax++;
+ }
+ csy = 0;
+ csay = say;
+ for (y = 0; y < dst->h; y++) {
+ csy += sy;
+ *csay = (csy >> 16);
+ csy &= 0xffff;
+ csay++;
+ }
+
+ csx = 0;
+ csax = sax;
+ for (x = 0; x < dst->w; x++) {
+ csx += (*csax);
+ csax++;
+ }
+ csy = 0;
+ csay = say;
+ for (y = 0; y < dst->h; y++) {
+ csy += (*csay);
+ csay++;
+ }
+
+ /*
+ * Pointer setup
+ */
+ sp = csp = (Uint8 *) src->pixels;
+ dp = (Uint8 *) dst->pixels;
+ dgap = dst->pitch - dst->w;
+
+ /*
+ * Draw
+ */
+ csay = say;
+ for (y = 0; y < dst->h; y++) {
+ csax = sax;
+ sp = csp;
+ for (x = 0; x < dst->w; x++) {
+ /*
+ * Draw
+ */
+ *dp = *sp;
+ /*
+ * Advance source pointers
+ */
+ sp += (*csax);
+ csax++;
+ /*
+ * Advance destination pointer
+ */
+ dp++;
+ }
+ /*
+ * Advance source pointer (for row)
+ */
+ csp += ((*csay) * src->pitch);
+ csay++;
+ /*
+ * Advance destination pointers
+ */
+ dp += dgap;
+ }
+
+ /*
+ * Remove temp arrays
+ */
+ free(sax);
+ free(say);
+
+ return (0);
+}
+
+/*
+
+ 32bit Rotozoomer with optional anti-aliasing by bilinear interpolation.
+
+ Rotates and zoomes 32bit RGBA/ABGR 'src' surface to 'dst' surface.
+
+*/
+
+void transformSurfaceRGBA(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos, int flipx, int flipy, int smooth)
+{
+ int x, y, t1, t2, dx, dy, xd, yd, sdx, sdy, ax, ay, ex, ey, sw, sh;
+ tColorRGBA c00, c01, c10, c11;
+ tColorRGBA *pc, *sp;
+ int gap;
+
+ c00.r = c00.g = c00.b = c00.a = 0;
+ c01.r = c01.g = c01.b = c01.a = 0;
+ c10.r = c10.g = c10.b = c10.a = 0;
+ c11.r = c11.g = c11.b = c11.a = 0;
+ /*
+ * Variable setup
+ */
+ xd = ((src->w - dst->w) << 15);
+ yd = ((src->h - dst->h) << 15);
+ ax = (cx << 16) - (icos * cx);
+ ay = (cy << 16) - (isin * cx);
+ sw = src->w - 1;
+ sh = src->h - 1;
+ pc = dst->pixels;
+ gap = dst->pitch - dst->w * 4;
+
+ /*
+ * Switch between interpolating and non-interpolating code
+ */
+ if (smooth) {
+ for (y = 0; y < dst->h; y++) {
+ dy = cy - y;
+ sdx = (ax + (isin * dy)) + xd;
+ sdy = (ay - (icos * dy)) + yd;
+ for (x = 0; x < dst->w; x++) {
+ dx = (sdx >> 16);
+ dy = (sdy >> 16);
+ if ((dx >= -1) && (dy >= -1) && (dx < src->w) && (dy < src->h)) {
+ if ((dx >= 0) && (dy >= 0) && (dx < sw) && (dy < sh)) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ sp += dx;
+ c00 = *sp;
+ sp += 1;
+ c01 = *sp;
+ sp = (tColorRGBA *) ((Uint8 *) sp + src->pitch);
+ sp -= 1;
+ c10 = *sp;
+ sp += 1;
+ c11 = *sp;
+ } else if ((dx == sw) && (dy == sh)) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ sp += dx;
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ c11 = *sp;
+ } else if ((dx == -1) && (dy == -1)) {
+ sp = (tColorRGBA *) (src->pixels);
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ c11 = *sp;
+ } else if ((dx == -1) && (dy == sh)) {
+ sp = (tColorRGBA *) (src->pixels);
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ c11 = *sp;
+ } else if ((dx == sw) && (dy == -1)) {
+ sp = (tColorRGBA *) (src->pixels);
+ sp += dx;
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ c11 = *sp;
+ } else if (dx == -1) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ sp = (tColorRGBA *) ((Uint8 *) sp + src->pitch);
+ c11 = *sp;
+ } else if (dy == -1) {
+ sp = (tColorRGBA *) (src->pixels);
+ sp += dx;
+ c00 = *sp;
+ c01 = *sp;
+ c10 = *sp;
+ sp += 1;
+ c11 = *sp;
+ } else if (dx == sw) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ sp += dx;
+ c00 = *sp;
+ c01 = *sp;
+ sp = (tColorRGBA *) ((Uint8 *) sp + src->pitch);
+ c10 = *sp;
+ c11 = *sp;
+ } else if (dy == sh) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ sp += dx;
+ c00 = *sp;
+ sp += 1;
+ c01 = *sp;
+ c10 = *sp;
+ c11 = *sp;
+ }
+ /*
+ * Interpolate colors
+ */
+ ex = (sdx & 0xffff);
+ ey = (sdy & 0xffff);
+ t1 = ((((c01.r - c00.r) * ex) >> 16) + c00.r) & 0xff;
+ t2 = ((((c11.r - c10.r) * ex) >> 16) + c10.r) & 0xff;
+ pc->r = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01.g - c00.g) * ex) >> 16) + c00.g) & 0xff;
+ t2 = ((((c11.g - c10.g) * ex) >> 16) + c10.g) & 0xff;
+ pc->g = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01.b - c00.b) * ex) >> 16) + c00.b) & 0xff;
+ t2 = ((((c11.b - c10.b) * ex) >> 16) + c10.b) & 0xff;
+ pc->b = (((t2 - t1) * ey) >> 16) + t1;
+ t1 = ((((c01.a - c00.a) * ex) >> 16) + c00.a) & 0xff;
+ t2 = ((((c11.a - c10.a) * ex) >> 16) + c10.a) & 0xff;
+ pc->a = (((t2 - t1) * ey) >> 16) + t1;
+ }
+ sdx += icos;
+ sdy += isin;
+ pc++;
+ }
+ pc = (tColorRGBA *) ((Uint8 *) pc + gap);
+ }
+ } else {
+ for (y = 0; y < dst->h; y++) {
+ dy = cy - y;
+ sdx = (ax + (isin * dy)) + xd;
+ sdy = (ay - (icos * dy)) + yd;
+ for (x = 0; x < dst->w; x++) {
+ dx = (short) (sdx >> 16);
+ dy = (short) (sdy >> 16);
+ if (flipx) dx = (src->w-1)-dx;
+ if (flipy) dy = (src->h-1)-dy;
+ if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) {
+ sp = (tColorRGBA *) ((Uint8 *) src->pixels + src->pitch * dy);
+ sp += dx;
+ *pc = *sp;
+ }
+ sdx += icos;
+ sdy += isin;
+ pc++;
+ }
+ pc = (tColorRGBA *) ((Uint8 *) pc + gap);
+ }
+ }
+}
+
+/*
+
+ 8bit Rotozoomer without smoothing
+
+ Rotates and zoomes 8bit palette/Y 'src' surface to 'dst' surface.
+
+*/
+
+void transformSurfaceY(SDL_Surface * src, SDL_Surface * dst, int cx, int cy, int isin, int icos)
+{
+ int x, y, dx, dy, xd, yd, sdx, sdy, ax, ay, sw, sh;
+ tColorY *pc, *sp;
+ int gap;
+
+ /*
+ * Variable setup
+ */
+ xd = ((src->w - dst->w) << 15);
+ yd = ((src->h - dst->h) << 15);
+ ax = (cx << 16) - (icos * cx);
+ ay = (cy << 16) - (isin * cx);
+ sw = src->w - 1;
+ sh = src->h - 1;
+ pc = dst->pixels;
+ gap = dst->pitch - dst->w;
+ /*
+ * Clear surface to colorkey
+ */
+ memset(pc, (unsigned char) (src->format->colorkey & 0xff), dst->pitch * dst->h);
+ /*
+ * Iterate through destination surface
+ */
+ for (y = 0; y < dst->h; y++) {
+ dy = cy - y;
+ sdx = (ax + (isin * dy)) + xd;
+ sdy = (ay - (icos * dy)) + yd;
+ for (x = 0; x < dst->w; x++) {
+ dx = (short) (sdx >> 16);
+ dy = (short) (sdy >> 16);
+ if ((dx >= 0) && (dy >= 0) && (dx < src->w) && (dy < src->h)) {
+ sp = (tColorY *) (src->pixels);
+ sp += (src->pitch * dy + dx);
+ *pc = *sp;
+ }
+ sdx += icos;
+ sdy += isin;
+ pc++;
+ }
+ pc += gap;
+ }
+}
+
+
+/*
+
+ 32bit specialized 90degree rotator
+
+ Rotates and zooms 'src' surface to 'dst' surface in 90degree increments.
+
+ (contributed by Jeff Schiller)
+
+*/
+SDL_Surface* rotateSurface90Degrees(SDL_Surface* pSurf, int numClockwiseTurns)
+{
+ int row, col;
+
+ // Has to be a valid surface pointer and only 32-bit surfaces (for now)
+ if (!pSurf || pSurf->format->BitsPerPixel != 32) { return NULL; }
+
+ // normalize numClockwiseTurns
+ while(numClockwiseTurns < 0) { numClockwiseTurns += 4; }
+ numClockwiseTurns = (numClockwiseTurns % 4);
+
+ // if it's even, our new width will be the same as the source surface
+ int newWidth = (numClockwiseTurns % 2) ? (pSurf->h) : (pSurf->w);
+ int newHeight = (numClockwiseTurns % 2) ? (pSurf->w) : (pSurf->h);
+ SDL_Surface* pSurfOut = SDL_CreateRGBSurface( pSurf->flags, newWidth, newHeight, pSurf->format->BitsPerPixel,
+ pSurf->format->Rmask,
+ pSurf->format->Gmask,
+ pSurf->format->Bmask,
+ pSurf->format->Amask);
+ if(!pSurfOut) {
+ return NULL;
+ }
+
+ if(numClockwiseTurns != 0) {
+ SDL_LockSurface(pSurf);
+ SDL_LockSurface(pSurfOut);
+ switch(numClockwiseTurns) {
+ // rotate clockwise
+ case 1: // rotated 90 degrees clockwise
+ {
+ Uint32* srcBuf = NULL;
+ Uint32* dstBuf = NULL;
+
+ for (row = 0; row < pSurf->h; ++row) {
+ srcBuf = (Uint32*)(pSurf->pixels) + (row*pSurf->pitch/4);
+ dstBuf = (Uint32*)(pSurfOut->pixels) + (pSurfOut->w - row - 1);
+ for (col = 0; col < pSurf->w; ++col) {
+ *dstBuf = *srcBuf;
+ ++srcBuf;
+ dstBuf += pSurfOut->pitch/4;
+ } // for(col)
+ } // for(row)
+ }
+ break;
+
+ case 2: // rotated 180 degrees clockwise
+ {
+ Uint32* srcBuf = NULL;
+ Uint32* dstBuf = NULL;
+
+ for(row = 0; row < pSurf->h; ++row) {
+ srcBuf = (Uint32*)(pSurf->pixels) + (row*pSurf->pitch/4);
+ dstBuf = (Uint32*)(pSurfOut->pixels) + ((pSurfOut->h - row - 1)*pSurfOut->pitch/4) + (pSurfOut->w - 1);
+ for(col = 0; col < pSurf->w; ++col) {
+ *dstBuf = *srcBuf;
+ ++srcBuf;
+ --dstBuf;
+ } // for(col)
+ } // for(row)
+ }
+ break;
+
+ case 3:
+ {
+ Uint32* srcBuf = NULL;
+ Uint32* dstBuf = NULL;
+
+ for(row = 0; row < pSurf->h; ++row) {
+ srcBuf = (Uint32*)(pSurf->pixels) + (row*pSurf->pitch/4);
+ dstBuf = (Uint32*)(pSurfOut->pixels) + row + ((pSurfOut->h - 1)*pSurfOut->pitch/4);
+ for(col = 0; col < pSurf->w; ++col) {
+ *dstBuf = *srcBuf;
+ ++srcBuf;
+ dstBuf -= pSurfOut->pitch/4;
+ } // for(col)
+ } // for(row)
+ }
+ break;
+ } // switch
+
+ SDL_UnlockSurface(pSurf);
+ SDL_UnlockSurface(pSurfOut);
+ } // if numClockwiseTurns > 0
+ else {
+ // simply copy surface to output
+ if(SDL_BlitSurface(pSurf, NULL, pSurfOut, NULL)) {
+ return NULL;
+ }
+ }
+ return pSurfOut;
+}
+
+/*
+
+ rotozoomSurface()
+
+ Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.
+ 'angle' is the rotation in degrees. 'zoom' a scaling factor. If 'smooth' is 1
+ then the destination 32bit surface is anti-aliased. If the surface is not 8bit
+ or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.
+
+*/
+
+#define VALUE_LIMIT 0.001
+
+
+/* Local rotozoom-size function with trig result return */
+
+void rotozoomSurfaceSizeTrig(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight,
+ double *canglezoom, double *sanglezoom)
+{
+ double x, y, cx, cy, sx, sy;
+ double radangle;
+ int dstwidthhalf, dstheighthalf;
+
+ /*
+ * Determine destination width and height by rotating a centered source box
+ */
+ radangle = angle * (M_PI / 180.0);
+ *sanglezoom = sin(radangle);
+ *canglezoom = cos(radangle);
+ *sanglezoom *= zoomx;
+ *canglezoom *= zoomx;
+ x = width / 2;
+ y = height / 2;
+ cx = *canglezoom * x;
+ cy = *canglezoom * y;
+ sx = *sanglezoom * x;
+ sy = *sanglezoom * y;
+
+ dstwidthhalf = MAX((int)
+ ceil(MAX(MAX(MAX(fabs(cx + sy), fabs(cx - sy)), fabs(-cx + sy)), fabs(-cx - sy))), 1);
+ dstheighthalf = MAX((int)
+ ceil(MAX(MAX(MAX(fabs(sx + cy), fabs(sx - cy)), fabs(-sx + cy)), fabs(-sx - cy))), 1);
+ *dstwidth = 2 * dstwidthhalf;
+ *dstheight = 2 * dstheighthalf;
+}
+
+
+/* Publically available rotozoom-size function */
+
+void rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, int *dstwidth, int *dstheight)
+{
+ double dummy_sanglezoom, dummy_canglezoom;
+
+ rotozoomSurfaceSizeTrig(width, height, angle, zoomx, zoomy, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom);
+}
+
+/* Publically available rotozoom-size function */
+
+void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth, int *dstheight)
+{
+ double dummy_sanglezoom, dummy_canglezoom;
+
+ rotozoomSurfaceSizeTrig(width, height, angle, zoom, zoom, dstwidth, dstheight, &dummy_sanglezoom, &dummy_canglezoom);
+}
+
+/* Publically available rotozoom function */
+
+SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth)
+{
+ return rotozoomSurfaceXY(src, angle, zoom, zoom, smooth);
+}
+
+/* Publically available rotozoom function */
+
+SDL_Surface *rotozoomSurfaceXY(SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth)
+{
+ SDL_Surface *rz_src;
+ SDL_Surface *rz_dst;
+ double zoominv;
+ double sanglezoom, canglezoom, sanglezoominv, canglezoominv;
+ int dstwidthhalf, dstwidth, dstheighthalf, dstheight;
+ int is32bit;
+ int i, src_converted;
+ int flipx,flipy;
+
+ /*
+ * Sanity check
+ */
+ if (src == NULL)
+ return (NULL);
+
+ /*
+ * Determine if source surface is 32bit or 8bit
+ */
+ is32bit = (src->format->BitsPerPixel == 32);
+ if ((is32bit) || (src->format->BitsPerPixel == 8)) {
+ /*
+ * Use source surface 'as is'
+ */
+ rz_src = src;
+ src_converted = 0;
+ } else {
+ /*
+ * New source surface is 32bit with a defined RGBA ordering
+ */
+ rz_src =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32,
+#if SDL_BYTEORDER == SDL_LIL_ENDIAN
+ 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000
+#else
+ 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff
+#endif
+ );
+ SDL_BlitSurface(src, NULL, rz_src, NULL);
+ src_converted = 1;
+ is32bit = 1;
+ }
+
+ /*
+ * Sanity check zoom factor
+ */
+ flipx = (zoomx<0);
+ if (flipx) zoomx=-zoomx;
+ flipy = (zoomy<0);
+ if (flipy) zoomy=-zoomy;
+ if (zoomx < VALUE_LIMIT) zoomx = VALUE_LIMIT;
+ if (zoomy < VALUE_LIMIT) zoomy = VALUE_LIMIT;
+ zoominv = 65536.0 / (zoomx * zoomx);
+
+ /*
+ * Check if we have a rotozoom or just a zoom
+ */
+ if (fabs(angle) > VALUE_LIMIT) {
+
+ /*
+ * Angle!=0: full rotozoom
+ */
+ /*
+ * -----------------------
+ */
+
+ /* Determine target size */
+ rotozoomSurfaceSizeTrig(rz_src->w, rz_src->h, angle, zoomx, zoomy, &dstwidth, &dstheight, &canglezoom, &sanglezoom);
+
+ /*
+ * Calculate target factors from sin/cos and zoom
+ */
+ sanglezoominv = sanglezoom;
+ canglezoominv = canglezoom;
+ sanglezoominv *= zoominv;
+ canglezoominv *= zoominv;
+
+ /* Calculate half size */
+ dstwidthhalf = dstwidth / 2;
+ dstheighthalf = dstheight / 2;
+
+ /*
+ * Alloc space to completely contain the rotated surface
+ */
+ rz_dst = NULL;
+ if (is32bit) {
+ /*
+ * Target surface is 32bit with source RGBA/ABGR ordering
+ */
+ rz_dst =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 32,
+ rz_src->format->Rmask, rz_src->format->Gmask,
+ rz_src->format->Bmask, rz_src->format->Amask);
+ } else {
+ /*
+ * Target surface is 8bit
+ */
+ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 8, 0, 0, 0, 0);
+ }
+
+ /*
+ * Lock source surface
+ */
+ SDL_LockSurface(rz_src);
+ /*
+ * Check which kind of surface we have
+ */
+ if (is32bit) {
+ /*
+ * Call the 32bit transformation routine to do the rotation (using alpha)
+ */
+ transformSurfaceRGBA(rz_src, rz_dst, dstwidthhalf, dstheighthalf,
+ (int) (sanglezoominv), (int) (canglezoominv),
+ flipx, flipy,
+ smooth);
+ /*
+ * Turn on source-alpha support
+ */
+ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255);
+ } else {
+ /*
+ * Copy palette and colorkey info
+ */
+ for (i = 0; i < rz_src->format->palette->ncolors; i++) {
+ rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];
+ }
+ rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;
+ /*
+ * Call the 8bit transformation routine to do the rotation
+ */
+ transformSurfaceY(rz_src, rz_dst, dstwidthhalf, dstheighthalf,
+ (int) (sanglezoominv), (int) (canglezoominv));
+ SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, rz_src->format->colorkey);
+ }
+ /*
+ * Unlock source surface
+ */
+ SDL_UnlockSurface(rz_src);
+
+ } else {
+
+ /*
+ * Angle=0: Just a zoom
+ */
+ /*
+ * --------------------
+ */
+
+ /*
+ * Calculate target size
+ */
+ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight);
+
+ /*
+ * Alloc space to completely contain the zoomed surface
+ */
+ rz_dst = NULL;
+ if (is32bit) {
+ /*
+ * Target surface is 32bit with source RGBA/ABGR ordering
+ */
+ rz_dst =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 32,
+ rz_src->format->Rmask, rz_src->format->Gmask,
+ rz_src->format->Bmask, rz_src->format->Amask);
+ } else {
+ /*
+ * Target surface is 8bit
+ */
+ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 8, 0, 0, 0, 0);
+ }
+
+ /*
+ * Lock source surface
+ */
+ SDL_LockSurface(rz_src);
+ /*
+ * Check which kind of surface we have
+ */
+ if (is32bit) {
+ /*
+ * Call the 32bit transformation routine to do the zooming (using alpha)
+ */
+ zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth);
+ /*
+ * Turn on source-alpha support
+ */
+ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255);
+ } else {
+ /*
+ * Copy palette and colorkey info
+ */
+ for (i = 0; i < rz_src->format->palette->ncolors; i++) {
+ rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];
+ }
+ rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;
+ /*
+ * Call the 8bit transformation routine to do the zooming
+ */
+ zoomSurfaceY(rz_src, rz_dst, flipx, flipy);
+ SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, rz_src->format->colorkey);
+ }
+ /*
+ * Unlock source surface
+ */
+ SDL_UnlockSurface(rz_src);
+ }
+
+ /*
+ * Cleanup temp surface
+ */
+ if (src_converted) {
+ SDL_FreeSurface(rz_src);
+ }
+
+ /*
+ * Return destination surface
+ */
+ return (rz_dst);
+}
+
+/*
+
+ zoomSurface()
+
+ Zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.
+ 'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is 1
+ then the destination 32bit surface is anti-aliased. If the surface is not 8bit
+ or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.
+
+*/
+
+#define VALUE_LIMIT 0.001
+
+void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight)
+{
+ /*
+ * Sanity check zoom factors
+ */
+ if (zoomx < VALUE_LIMIT) {
+ zoomx = VALUE_LIMIT;
+ }
+ if (zoomy < VALUE_LIMIT) {
+ zoomy = VALUE_LIMIT;
+ }
+
+ /*
+ * Calculate target size
+ */
+ *dstwidth = (int) ((double) width * zoomx);
+ *dstheight = (int) ((double) height * zoomy);
+ if (*dstwidth < 1) {
+ *dstwidth = 1;
+ }
+ if (*dstheight < 1) {
+ *dstheight = 1;
+ }
+}
+
+SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth)
+{
+ SDL_Surface *rz_src;
+ SDL_Surface *rz_dst;
+ int dstwidth, dstheight;
+ int is32bit;
+ int i, src_converted;
+ int flipx, flipy;
+
+ /*
+ * Sanity check
+ */
+ if (src == NULL)
+ return (NULL);
+
+ /*
+ * Determine if source surface is 32bit or 8bit
+ */
+ is32bit = (src->format->BitsPerPixel == 32);
+ if ((is32bit) || (src->format->BitsPerPixel == 8)) {
+ /*
+ * Use source surface 'as is'
+ */
+ rz_src = src;
+ src_converted = 0;
+ } else {
+ /*
+ * New source surface is 32bit with a defined RGBA ordering
+ */
+ rz_src =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32,
+#if SDL_BYTEORDER == SDL_LIL_ENDIAN
+ 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000
+#else
+ 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff
+#endif
+ );
+ SDL_BlitSurface(src, NULL, rz_src, NULL);
+ src_converted = 1;
+ is32bit = 1;
+ }
+
+ flipx = (zoomx<0);
+ if (flipx) zoomx = -zoomx;
+ flipy = (zoomy<0);
+ if (flipy) zoomy = -zoomy;
+
+ /* Get size if target */
+ zoomSurfaceSize(rz_src->w, rz_src->h, zoomx, zoomy, &dstwidth, &dstheight);
+
+ /*
+ * Alloc space to completely contain the zoomed surface
+ */
+ rz_dst = NULL;
+ if (is32bit) {
+ /*
+ * Target surface is 32bit with source RGBA/ABGR ordering
+ */
+ rz_dst =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 32,
+ rz_src->format->Rmask, rz_src->format->Gmask,
+ rz_src->format->Bmask, rz_src->format->Amask);
+ } else {
+ /*
+ * Target surface is 8bit
+ */
+ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 8, 0, 0, 0, 0);
+ }
+
+ /*
+ * Lock source surface
+ */
+ SDL_LockSurface(rz_src);
+ /*
+ * Check which kind of surface we have
+ */
+ if (is32bit) {
+ /*
+ * Call the 32bit transformation routine to do the zooming (using alpha)
+ */
+ zoomSurfaceRGBA(rz_src, rz_dst, flipx, flipy, smooth);
+ /*
+ * Turn on source-alpha support
+ */
+ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255);
+ } else {
+ /*
+ * Copy palette and colorkey info
+ */
+ for (i = 0; i < rz_src->format->palette->ncolors; i++) {
+ rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];
+ }
+ rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;
+ /*
+ * Call the 8bit transformation routine to do the zooming
+ */
+ zoomSurfaceY(rz_src, rz_dst, flipx, flipy);
+ SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, rz_src->format->colorkey);
+ }
+ /*
+ * Unlock source surface
+ */
+ SDL_UnlockSurface(rz_src);
+
+ /*
+ * Cleanup temp surface
+ */
+ if (src_converted) {
+ SDL_FreeSurface(rz_src);
+ }
+
+ /*
+ * Return destination surface
+ */
+ return (rz_dst);
+}
+
+SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory)
+{
+ SDL_Surface *rz_src;
+ SDL_Surface *rz_dst;
+ int dstwidth, dstheight;
+ int is32bit;
+ int i, src_converted;
+
+ /*
+ * Sanity check
+ */
+ if (src == NULL)
+ return (NULL);
+
+ /*
+ * Determine if source surface is 32bit or 8bit
+ */
+ is32bit = (src->format->BitsPerPixel == 32);
+ if ((is32bit) || (src->format->BitsPerPixel == 8)) {
+ /*
+ * Use source surface 'as is'
+ */
+ rz_src = src;
+ src_converted = 0;
+ } else {
+ /*
+ * New source surface is 32bit with a defined RGBA ordering
+ */
+ rz_src =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, src->w, src->h, 32,
+#if SDL_BYTEORDER == SDL_LIL_ENDIAN
+ 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000
+#else
+ 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff
+#endif
+ );
+ SDL_BlitSurface(src, NULL, rz_src, NULL);
+ src_converted = 1;
+ is32bit = 1;
+ }
+
+ /* Get size for target */
+ dstwidth=rz_src->w/factorx;
+ while (dstwidth*factorx>rz_src->w) { dstwidth--; }
+ dstheight=rz_src->h/factory;
+ while (dstheight*factory>rz_src->h) { dstheight--; }
+
+ /*
+ * Alloc space to completely contain the shrunken surface
+ */
+ rz_dst = NULL;
+ if (is32bit) {
+ /*
+ * Target surface is 32bit with source RGBA/ABGR ordering
+ */
+ rz_dst =
+ SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 32,
+ rz_src->format->Rmask, rz_src->format->Gmask,
+ rz_src->format->Bmask, rz_src->format->Amask);
+ } else {
+ /*
+ * Target surface is 8bit
+ */
+ rz_dst = SDL_CreateRGBSurface(SDL_SWSURFACE, dstwidth, dstheight, 8, 0, 0, 0, 0);
+ }
+
+ /*
+ * Lock source surface
+ */
+ SDL_LockSurface(rz_src);
+ /*
+ * Check which kind of surface we have
+ */
+ if (is32bit) {
+ /*
+ * Call the 32bit transformation routine to do the shrinking (using alpha)
+ */
+ shrinkSurfaceRGBA(rz_src, rz_dst, factorx, factory);
+ /*
+ * Turn on source-alpha support
+ */
+ SDL_SetAlpha(rz_dst, SDL_SRCALPHA, 255);
+ } else {
+ /*
+ * Copy palette and colorkey info
+ */
+ for (i = 0; i < rz_src->format->palette->ncolors; i++) {
+ rz_dst->format->palette->colors[i] = rz_src->format->palette->colors[i];
+ }
+ rz_dst->format->palette->ncolors = rz_src->format->palette->ncolors;
+ /*
+ * Call the 8bit transformation routine to do the shrinking
+ */
+ shrinkSurfaceY(rz_src, rz_dst, factorx, factory);
+ SDL_SetColorKey(rz_dst, SDL_SRCCOLORKEY | SDL_RLEACCEL, rz_src->format->colorkey);
+ }
+ /*
+ * Unlock source surface
+ */
+ SDL_UnlockSurface(rz_src);
+
+ /*
+ * Cleanup temp surface
+ */
+ if (src_converted) {
+ SDL_FreeSurface(rz_src);
+ }
+
+ /*
+ * Return destination surface
+ */
+ return (rz_dst);
+}
diff --git a/src/SDL_rotozoom.h b/src/SDL_rotozoom.h
new file mode 100644
index 0000000..6a0a2bc
--- /dev/null
+++ b/src/SDL_rotozoom.h
@@ -0,0 +1,132 @@
+
+/*
+
+ The SDL_rotozoom sources were copied from the SDL_gfx library and
+ are relicensed, only for the purposes of TuxMath, to GPL. Thanks to
+ Andreas Schiffler.
+
+ SDL_rotozoom - rotozoomer
+
+ LGPL (c) A. Schiffler
+
+*/
+
+#ifndef _SDL_rotozoom_h
+#define _SDL_rotozoom_h
+
+#include <math.h>
+
+/* Set up for C function definitions, even when using C++ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef M_PI
+#define M_PI 3.141592654
+#endif
+
+#include "SDL.h"
+
+/* ---- Defines */
+
+#define SMOOTHING_OFF 0
+#define SMOOTHING_ON 1
+
+/* ---- Structures */
+
+ typedef struct tColorRGBA {
+ Uint8 r;
+ Uint8 g;
+ Uint8 b;
+ Uint8 a;
+ } tColorRGBA;
+
+ typedef struct tColorY {
+ Uint8 y;
+ } tColorY;
+
+
+/* ---- Prototypes */
+
+// #ifdef WIN32
+// #ifdef BUILD_DLL
+// #define DLLINTERFACE __declspec(dllexport)
+// #else
+// #define DLLINTERFACE __declspec(dllimport)
+// #endif
+// #else
+// #define DLLINTERFACE
+// #endif
+
+/* NOTE inactivating above declspec stuff because we are building */
+/* for our own tree */
+#define DLLINTERFACE
+/*
+
+ rotozoomSurface()
+
+ Rotates and zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.
+ 'angle' is the rotation in degrees. 'zoom' a scaling factor. If 'smooth' is 1
+ then the destination 32bit surface is anti-aliased. If the surface is not 8bit
+ or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.
+
+*/
+
+ DLLINTERFACE SDL_Surface *rotozoomSurface(SDL_Surface * src, double angle, double zoom, int smooth);
+
+ DLLINTERFACE SDL_Surface *rotozoomSurfaceXY
+ (SDL_Surface * src, double angle, double zoomx, double zoomy, int smooth);
+
+/* Returns the size of the target surface for a rotozoomSurface() call */
+
+ DLLINTERFACE void rotozoomSurfaceSize(int width, int height, double angle, double zoom, int *dstwidth,
+ int *dstheight);
+
+ DLLINTERFACE void rotozoomSurfaceSizeXY
+ (int width, int height, double angle, double zoomx, double zoomy,
+ int *dstwidth, int *dstheight);
+
+/*
+
+ zoomSurface()
+
+ Zoomes a 32bit or 8bit 'src' surface to newly created 'dst' surface.
+ 'zoomx' and 'zoomy' are scaling factors for width and height. If 'smooth' is 1
+ then the destination 32bit surface is anti-aliased. If the surface is not 8bit
+ or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.
+
+*/
+
+ DLLINTERFACE SDL_Surface *zoomSurface(SDL_Surface * src, double zoomx, double zoomy, int smooth);
+
+/* Returns the size of the target surface for a zoomSurface() call */
+
+ DLLINTERFACE void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, int *dstwidth, int *dstheight);
+
+
+/*
+ shrinkSurface()
+
+ Shrinks a 32bit or 8bit 'src' surface ti a newly created 'dst' surface.
+ 'factorx' and 'factory' are the shrinking ratios (i.e. 2=1/2 the size,
+ 3=1/3 the size, etc.) The destination surface is antialiased by averaging
+ the source box RGBA or Y information. If the surface is not 8bit
+ or 32bit RGBA/ABGR it will be converted into a 32bit RGBA format on the fly.
+*/
+
+ DLLINTERFACE SDL_Surface *shrinkSurface(SDL_Surface * src, int factorx, int factory);
+
+/*
+
+ Other functions
+
+*/
+
+ DLLINTERFACE SDL_Surface* rotateSurface90Degrees(SDL_Surface* pSurf, int numClockwiseTurns);
+
+/* Ends C function definitions when using C++ */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SDL_rotozoom_h */
diff --git a/src/audio.c b/src/audio.c
new file mode 100644
index 0000000..b5f15d7
--- /dev/null
+++ b/src/audio.c
@@ -0,0 +1,80 @@
+/***************************************************************************
+ - file: audio.c
+ - description: this file contains audio related functions
+ -------------------
+ begin : Jan 22, 2003
+ copyright : Sam Hart, Jesse Andrews (C) 2003
+ email : tuxtype-dev at tux4kids.net
+
+ Modified for use in tuxmath by David Bruce - 2006.
+ email : <davidstuartbruce at gmail.com>
+ <tuxmath-devel at lists.sourceforge.net>
+***************************************************************************/
+
+/***************************************************************************
+* *
+* 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. *
+* *
+***************************************************************************/
+
+
+#include "tuxmath.h"
+#include "options.h" //Needed for Opts_UsingSound()
+#include "titlescreen.h"
+
+Mix_Music *music;
+
+void playsound(int snd)
+{
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ Mix_PlayChannel(-1, sounds[snd], 0);
+#endif
+}
+
+Mix_Music *defaultMusic = NULL; // holds music for audioMusicLoad/unload
+
+
+
+/* audioMusicLoad attempts to load and play the music file
+ * Note: loops == -1 means forever
+ */
+void audioMusicLoad(char *musicFilename, int loops)
+{
+ if (!Opts_UsingSound())
+ {
+ return;
+ }
+
+ audioMusicUnload(); // make sure defaultMusic is clear
+ defaultMusic = LoadMusic(musicFilename);
+ Mix_PlayMusic(defaultMusic, loops);
+}
+
+
+/* audioMusicUnload attempts to unload any music data that was
+ * loaded using the audioMusicLoad function
+ */
+void audioMusicUnload( void ) {
+ if (!Opts_UsingSound()) return;
+
+ if ( defaultMusic )
+ Mix_FreeMusic( defaultMusic );
+
+ defaultMusic=NULL;
+}
+
+/* audioMusicPlay attempts to play the passed music data.
+ * if a music file was loaded using the audioMusicLoad
+ * it will be stopped and unloaded
+ * Note: loops == -1 means forever
+ */
+void audioMusicPlay( Mix_Music *musicData, int loops ) {
+ if (!Opts_UsingSound()) return;
+
+ audioMusicUnload();
+ Mix_PlayMusic( musicData, loops );
+}
diff --git a/src/campaign.c b/src/campaign.c
new file mode 100644
index 0000000..2a8ad51
--- /dev/null
+++ b/src/campaign.c
@@ -0,0 +1,239 @@
+/*
+ * campaign.c - handle TuxMath's 'Mission mode'
+ *
+ * Author: B. Luchen
+ */
+
+#include "campaign.h"
+#include "tuxmath.h"
+#include "credits.h"
+#include "titlescreen.h"
+#include "game.h"
+#include "fileops.h"
+#include "mathcards.h"
+#include "options.h"
+
+
+void briefPlayer(int stage); //show text introducing the given stage
+void readStageSettings(int stage);
+void readRoundSettings(int stage, int round);
+void showGameOver();
+void showGameWon();
+
+char* stagenames[NUM_STAGES] = {"cadet", "scout", "ranger", "ace", "commando"};
+
+int start_campaign()
+{
+ int i, j;
+ int gameresult = 0, endcampaign = 0;
+ char roundmessage[10];
+ char endtext[2][MAX_LINEWIDTH] = {N_("Congratulations! You win!"), " "};
+ printf("Entering start_campaign()\n");
+
+
+ for (i = 0; i < NUM_STAGES; ++i)
+ {
+ printf("Stage %s\n", stagenames[i]);
+ briefPlayer(i);
+ for (j = 1; j <= NUM_ROUNDS; ++j)
+ {
+ printf("Round %d\n", j);
+
+ //read in settings
+ read_named_config_file("campaign/campaign");
+ readStageSettings(i);
+ readRoundSettings(i, j);
+ Opts_SetKeepScore(0);
+
+ snprintf(roundmessage, 10, "%s %d", N_("Round"), j);
+ game_set_start_message(roundmessage, "", "", "");
+
+ MC_PrintMathOptions(stdout, 0);
+
+ //play!
+ printf("Starting game...\n");
+ gameresult = game();
+
+ //move on if we've won, game over if not
+ if (gameresult == GAME_OVER_WON)
+ ;
+ else if (gameresult == GAME_OVER_LOST)
+ {
+ showGameOver();
+ endcampaign = 1;
+ }
+ else if (gameresult == GAME_OVER_ERROR)
+ {
+ DEBUGMSG(debug_game, "Error!\n");
+ endcampaign = 1;
+ }
+#ifndef TESTING_CAMPAIGN
+ else if (gameresult == GAME_OVER_ESCAPE)
+ {
+ DEBUGMSG(debug_game, "hit escape\n");
+ endcampaign = 1;
+ }
+#endif
+ else
+ {
+ printf("gameresult = %d\n", gameresult);
+ endcampaign = 0;
+ }
+
+ if (endcampaign)
+ return 0;
+ }
+
+ //if we've beaten the last stage, there is no bonus, skip to win sequence
+ if (i == NUM_STAGES - 1)
+ {
+ showGameWon();
+ break;
+ }
+/* //bonus round
+ readStageSettings(i);
+ readRoundSettings(i, -1);
+ game_set_start_message("Bonus", "", "", "");
+ game();
+*/
+ }
+ scroll_text(endtext, screen->clip_rect, 3);
+ return 0;
+}
+
+void briefPlayer(int stage)
+{
+/* NOTE: the convention has changed. Use " " for a blank line (note
+ the space), and use "" (rather than NULL) for the termination
+ string. This is a consequence of the linewrapping code. TEH Feb
+ 2009. */
+
+ const char briefings[NUM_STAGES][MAX_LINES][MAX_LINEWIDTH] =
+ {
+ //cadet
+ {
+ {N_("-[Esc] to skip")},
+ {N_("Mission One: Careful Cadet")},
+ {"--------------------------"},
+ {N_("I'm so glad you've come!")},
+ {" "},
+ {N_("The penguins need your help! Comets are falling from the sky, and are melting the penguins' igloos. To save their homes, we need you to find the secret code that will zap each comet.")},
+ {" "},
+ {N_("Do your best!")},
+ {""}
+ },
+ //scout
+ {
+ {N_("-[Esc] to skip")},
+ {N_("Mission Two: Smart Scout")},
+ {"------------------------"},
+ {N_("Great job! Since you saved the penguins' homes, we are promoting you to Scout. Scouts are good for keeping an eye out for trouble...")},
+ {" "},
+ {N_("...like what's happening right now! The TakeAways have come, and they're sending new, trickier comets against the penguins!")},
+ {N_("But you can save them!")},
+ {""}
+ },
+ //ranger
+ {
+ {"-[Esc] to skip"},
+ {N_("Mission Three: Royal Ranger")},
+ {"---------------------------"},
+ {N_("You've done it again! The Penguin Emperor has chosen you to join his team of Rangers that help protect the city. We're sending you there now...")},
+ {" "},
+ {N_("...oh no! Now the Emperor himself is under attack, from new types of comets: these problems are multiplying! To fight these, you need great skill. We think you can do it. Join the Rangers and help save the city!")},
+ {""}
+ },
+ //ace
+ {
+ {N_("-[Esc] to skip")},
+ {N_("Mission Four: Imperial Ace")},
+ {"--------------------------"},
+ {N_("You did it! The Emperor wants to thank you in person. We are taking you to his ice palace for a great honor: you will become the Imperial Ace!")},
+ {" "},
+ {N_("But right in the middle of the ceremony, a new attack from the land of Division starts!")},
+ {N_("Now is no time for resting; the city needs your help!")},
+ {""}
+ },
+ //commando
+ {
+ {N_("-[Esc] to skip")},
+ {N_("Final Mission: Computing Commando")},
+ {"---------------------------------"},
+ {N_("Penguin scientists have learned that all these attacks are coming from a secret base, and they need you to go fight the final battle. They also give you this clue: first do multiplication and division, and then do addition and subtraction.")},
+ {N_("I hope that hint helps!")},
+ {" "},
+ {N_("This is it! You can stop these attacks forever, Commando!")},
+ {""}
+ },
+ };
+
+
+ char* sprites[] = {
+ "sprites/tux_helmet_yellowd.png",
+ "sprites/tux_helmet_greend.png",
+ "sprites/tux_helmet_blued.png",
+ "sprites/tux_helmet_redd.png",
+ "sprites/tux_helmet_blackd.png"
+ };
+
+ SDL_Surface* icon = NULL;
+ SDL_Rect textarea = screen->clip_rect;
+ SDL_Surface* loadedsprite = LoadImage(sprites[stage], IMG_REGULAR|IMG_NOT_REQUIRED);
+
+
+
+ if (loadedsprite) //stretch the tiny sprite to 3x
+ {
+ icon = zoom(loadedsprite, loadedsprite->w*3, loadedsprite->h*3);
+ textarea.x = icon->w;
+ textarea.y = icon->h;
+ textarea.w = screen->w - icon->w;
+ textarea.h = screen->h - icon->h;
+ }
+
+ SDL_FillRect(screen, NULL, 0);
+ //TransWipe(black, RANDOM_WIPE, 10, 20);
+ //show this stage's text
+ DEBUGMSG(debug_game, "Briefing\n");
+
+ SDL_BlitSurface(icon, NULL, screen, NULL);
+
+ linewrap_list(briefings[stage], wrapped_lines, 40, MAX_LINES, MAX_LINEWIDTH);
+ scroll_text(wrapped_lines, textarea, 1);
+
+ DEBUGMSG(debug_game, "Finished briefing\n");
+
+ SDL_FreeSurface(loadedsprite);
+ SDL_FreeSurface(icon);
+}
+
+void readStageSettings(int stage)
+{
+ char fn[PATH_MAX];
+ snprintf(fn,PATH_MAX, "campaign/%s/%s", stagenames[stage], stagenames[stage]);
+ read_named_config_file(fn);
+}
+
+void readRoundSettings(int stage, int round)
+{
+ char fn[PATH_MAX];
+ if (round == -1)
+ snprintf(fn, PATH_MAX, "campaign/%s/bonus", stagenames[stage]);
+ else
+ snprintf(fn,PATH_MAX, "campaign/%s/round%d", stagenames[stage], round);
+ read_named_config_file(fn);
+}
+
+void showGameOver()
+{
+ const char text[2][MAX_LINEWIDTH] = {N_("Sorry, try again!"), ""};
+ linewrap_list(text, wrapped_lines, 40, MAX_LINES, MAX_LINEWIDTH);
+ scroll_text(wrapped_lines, screen->clip_rect, 3);
+}
+
+void showGameWon()
+{
+ const char text[2][MAX_LINEWIDTH] = {N_("Mission accomplished. The galaxy is safe!"), ""};
+ linewrap_list(text, wrapped_lines, 40, MAX_LINES, MAX_LINEWIDTH);
+ scroll_text(wrapped_lines, screen->clip_rect, 3);
+}
diff --git a/src/campaign.h b/src/campaign.h
new file mode 100644
index 0000000..d463100
--- /dev/null
+++ b/src/campaign.h
@@ -0,0 +1,25 @@
+#ifndef CAMPAIGN_H
+#define CAMPAIGN_H
+
+/*
+ * campaign.h - prose and function declarations for TuxMath's 'Mission mode'
+ *
+ * Author: B. Luchen
+ */
+
+#include "SDL_extras.h"
+#include "tuxmath.h"
+#include "linewrap.h"
+
+
+//#define TESTING_CAMPAIGN //allow ESC to skip missions instead of exiting
+
+#define NUM_STAGES 5
+#define NUM_ROUNDS 3
+
+/* NOTE - moved 'briefings' into campaign.c' as data local to briefPlayer() */
+/* because that was the only place it was used - just occupying memory. */
+
+int start_campaign();
+
+#endif // CAMPAIGN_H
diff --git a/src/compiler.h b/src/compiler.h
new file mode 100644
index 0000000..6cd20ef
--- /dev/null
+++ b/src/compiler.h
@@ -0,0 +1,157 @@
+/*
+ compiler.h
+
+ Compiler-specific #defines and such
+ for Tux Paint
+
+ Mostly by Albert Cahalan <albert at users.sf.net>
+ Copyright (c) 2002-2006
+
+ http://www.newbreedsoftware.com/tuxpaint/
+
+ 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
+ (See COPYING.txt)
+
+ June 14, 2002 - February 18, 2006
+ $Id: compiler.h,v 1.5 2006/08/27 21:00:55 wkendrick Exp $
+
+ June 09, 2008:
+ Brought into TuxMath by Brendan Luchen as part of pixel-manipulation
+ code, with blessings of Bill Kendrick.
+
+*/
+
+#ifdef WIN32
+/* Horrible, dangerous macros. */
+/*
+ The SDL stderr redirection trick doesn't seem to work for perror().
+ This does pretty much the same thing.
+*/
+#define perror(str) ({ \
+ if ( (str) && *(str) ) \
+ fprintf(stderr,"%s : ",(str)); \
+ fprintf(stderr, \
+ "%s [%d]\n", \
+ (errno<_sys_nerr)?_sys_errlist[errno]:"unknown",errno ); \
+})
+
+/*
+ MinGW implementation of isspace() crashes on some Win98 boxes
+ if c is 'out-of-range'.
+*/
+#define isspace(c) (((c) == 0x20) || ((c) >= 0x09 && (c) <= 0x0D))
+
+/*
+ WIN32 and MINGW don't have strcasestr().
+*/
+#define NOMINMAX
+#include "shlwapi.h"
+#define strcasestr StrStrI
+#endif /* WIN32 */
+
+
+
+
+#ifdef __GNUC__
+// This version has strict type checking for safety.
+// See the "unnecessary" pointer comparison. (from Linux)
+#define min(x,y) ({ \
+ typeof(x) _x = (x); \
+ typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x < _y ? _x : _y; })
+#define max(x,y) ({ \
+ typeof(x) _x = (x); \
+ typeof(y) _y = (y); \
+ (void) (&_x == &_y); \
+ _x > _y ? _x : _y; })
+#else
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+#endif
+
+#define clamp(lo,value,hi) (min(max(value,lo),hi))
+
+
+// since gcc-2.5
+#ifdef __GNUC__
+#define NORETURN __attribute__((__noreturn__))
+#define FUNCTION __attribute__((__const__)) // no access to global mem, even via ptr, and no side effect
+#else
+#define NORETURN
+#define FUNCTION
+#endif
+
+#if !defined(restrict) && __STDC_VERSION__ < 199901
+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 92
+#define restrict __restrict__
+#else
+#warning No restrict keyword?
+#define restrict
+#endif
+#endif
+
+
+#if __GNUC__ > 2 || __GNUC_MINOR__ >= 96
+// won't alias anything, and aligned enough for anything
+#define MALLOC __attribute__ ((__malloc__))
+// no side effect, may read globals
+#ifndef WIN32
+#define PURE __attribute__ ((__pure__))
+#endif
+// tell gcc what to expect: if(unlikely(err)) die(err);
+#define likely(x) __builtin_expect(!!(x),1)
+#define unlikely(x) __builtin_expect(!!(x),0)
+#define expected(x,y) __builtin_expect((x),(y))
+#else
+#define MALLOC
+#define PURE
+#define likely(x) (x)
+#define unlikely(x) (x)
+#define expected(x,y) (x)
+#endif
+
+
+#ifdef __powerpc__
+// Ticks at 1/4 the memory bus clock (24.907667 MHz on Albert's Mac Cube)
+// This is good for 80-second diff or 160-second total.
+#define CLOCK_ASM(tbl) asm volatile("mftb %0" : "=r" (tbl))
+#define CLOCK_TYPE unsigned long
+#ifndef CLOCK_SPEED
+// #warning Benchmark times are based on a 99.63 MHz memory bus.
+#define CLOCK_SPEED 24907667.0
+#endif
+#endif
+
+#ifdef __i386__
+#define CLOCK_ASM(tbl) asm volatile("rdtsc" : "=A" (tbl))
+#define CLOCK_TYPE unsigned long long
+#ifndef CLOCK_SPEED
+// #warning Benchmark times are based on a 450 MHz CPU.
+#define CLOCK_SPEED 450000000.0
+#endif
+#endif
+
+#ifndef CLOCK_ASM
+// #warning No idea how to read CPU cycles for you, sorry.
+#define CLOCK_ASM(tbl)
+#define CLOCK_TYPE unsigned long
+#define CLOCK_SPEED 1000000000.0
+#endif
+
+#ifdef NO_ASM
+#undef CLOCK_ASM
+#define CLOCK_ASM(x) x=42
+#endif
diff --git a/src/convert_utf.c b/src/convert_utf.c
new file mode 100644
index 0000000..fafea7f
--- /dev/null
+++ b/src/convert_utf.c
@@ -0,0 +1,122 @@
+/***************************************************************************
+ convert_utf.c
+
+ -------------------
+ begin : Feb 08 2009
+ copyright : (C) 2009 by David Bruce
+ email : davidstuartbruce at gmail.com
+
+ This file contains simple wrapper functions for converting wchar_t and
+ UTF-8 strings using the GNU iconv library.
+
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+#include "convert_utf.h"
+#include "globals.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <SDL.h>
+
+#define UTF_BUF_LENGTH 1024
+
+/* GNU iconv()-based implementation: */
+
+int ConvertFromUTF8(wchar_t* wide_word, const char* UTF8_word, int max_length)
+{
+ wchar_t temp_wchar[UTF_BUF_LENGTH];
+ wchar_t* wchar_start = temp_wchar;
+
+ SDL_iconv_t conv_descr;
+ size_t bytes_converted;
+ size_t in_length = (size_t)UTF_BUF_LENGTH;
+ size_t out_length = (size_t)UTF_BUF_LENGTH;
+
+ if(max_length > UTF_BUF_LENGTH)
+ {
+ fprintf(stderr, "ConvertFromUTF8() - error - requested string length %d exceeds buffer length %d\n",
+ max_length, UTF_BUF_LENGTH);
+ return 0;
+ }
+
+ DEBUGMSG(debug_convert_utf, "ConvertFromUTF8(): UTF8_word = %s\n", UTF8_word);
+
+ /* NOTE although we *should* be just able to pass "wchar_t" as the out_type, */
+ /* iconv_open() segfaults on Windows if this is done - grrr.... */
+#ifdef WIN32
+ conv_descr = SDL_iconv_open("UTF-16LE", "UTF-8");
+#else
+ conv_descr = SDL_iconv_open("wchar_t", "UTF-8");
+#endif
+
+ /* NOTE casts to prevent compiler warnings */
+ bytes_converted = SDL_iconv(conv_descr,
+ (char**)&UTF8_word, &in_length,
+ (char**)&wchar_start, &out_length);
+ SDL_iconv_close(conv_descr);
+ wcsncpy(wide_word, temp_wchar, max_length);
+
+ DEBUGMSG(debug_convert_utf, "ConvertToUTF8(): wide_word = %S\n", wide_word);
+
+ return wcslen(wide_word);
+}
+
+
+/* Now this uses GNU iconv and works correctly! */
+/* This probably could be simplified - not certain */
+/* we have to copy into and out of the buffers */
+
+/******************To be used for savekeyboard*************/
+/***Converts wchar_t string to char string*****************/
+int ConvertToUTF8(const wchar_t* wide_word, char* UTF8_word, int max_length)
+{
+ char temp_UTF8[UTF_BUF_LENGTH];
+ /* NOTE we need this because iconv_open() needs a char**. We can't */
+ /* just pass "&temp_UTF8" because "temp_UTF8" is really a shorthand */
+ /* for "&temp_UTF8[0]", not its own memory location, so it doesn't */
+ /* have its own address. We ought to be able to do this directly into */
+ /* into the argument UTF8_word string, but so far have had errors. */
+ char* UTF8_Start = temp_UTF8;
+
+ SDL_iconv_t conv_descr;
+ size_t bytes_converted;
+ size_t in_length = (size_t)UTF_BUF_LENGTH;
+ size_t out_length = (size_t)UTF_BUF_LENGTH;
+
+ DEBUGMSG(debug_convert_utf, "ConvertToUTF8(): wide_word = %S\n", wide_word);
+
+ if(max_length > UTF_BUF_LENGTH)
+ {
+ fprintf(stderr, "ConvertToUTF8() - error - requested string length %d exceeds buffer length %d\n",
+ max_length, UTF_BUF_LENGTH);
+ return 0;
+ }
+
+ /* NOTE although we *should* be just able to pass "wchar_t" as the in_type, */
+ /* iconv_open() segfaults on Windows if this is done - grrr.... */
+#ifdef WIN32
+ conv_descr = SDL_iconv_open("UTF-8", "UTF-16LE");
+#else
+ conv_descr = SDL_iconv_open("UTF-8", "wchar_t");
+#endif
+
+ /* NOTE casts to prevent compiler warnings. While the documentation for iconv() */
+ /* says arg 2 is a "const char**", it is "char**" in the iconv.h header itself. */
+ bytes_converted = SDL_iconv(conv_descr,
+ (char**)&wide_word, &in_length,
+ (char**)&UTF8_Start, &out_length);
+ SDL_iconv_close(conv_descr);
+ strncpy(UTF8_word, temp_UTF8, max_length);
+
+ DEBUGMSG(debug_convert_utf, "ConvertToUTF8(): UTF8_word = %s\n", UTF8_word);
+
+ return strlen(UTF8_word);
+}
diff --git a/src/convert_utf.h b/src/convert_utf.h
new file mode 100644
index 0000000..da2f4a5
--- /dev/null
+++ b/src/convert_utf.h
@@ -0,0 +1,27 @@
+//
+// C Interface: convert_utf
+//
+// Description: header file for simple wrapper functions to convert
+// wchar_t and utf8 strings using GNU iconv().
+//
+//
+// Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef CONVERT_UTF_H
+#define CONVERT_UTF_H
+
+#include <wchar.h>
+
+/* NOTE the "max_length" parameter should generally be the size of the output */
+/* buffer. It must be at least one greater than the length of the return string */
+/* so that the string can be null-terminated. */
+/* Also, "max_length" must be no greater than the buffer length used internally */
+/* in these functions (i.e. UTF_BUF_LENGTH, currently 1024) */
+
+int ConvertFromUTF8(wchar_t* wide_word, const char* UTF8_word, int max_length);
+int ConvertToUTF8(const wchar_t* wide_word, char* UTF8_word, int max_length);
+
+#endif
diff --git a/src/credits.c b/src/credits.c
new file mode 100644
index 0000000..73401aa
--- /dev/null
+++ b/src/credits.c
@@ -0,0 +1,616 @@
+/*
+ credits.c
+
+ For TuxMath
+ Contains the text of the credits display, as well
+ as the function which displays the credits in the game window.
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - March 7, 2005
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "SDL.h"
+
+#include "tuxmath.h"
+#include "options.h"
+#include "fileops.h"
+#include "setup.h"
+#include "credits.h"
+#include "SDL_extras.h"
+
+
+const char credit_text[MAX_LINES][MAX_LINEWIDTH] = {
+ {"-"N_("TUX, OF MATH COMMAND")}, /* '-' at beginning makes highlighted: */
+ {N_("COPYRIGHT 2001-2010")},
+ {" "},
+ {N_("PART OF THE 'TUX4KIDS' PROJECT")},
+ {"http://tux4kids.alioth.debian.org"},
+ {" "},
+ {"-"N_("DESIGNED BY")},
+ {"SAM 'CRISWELL' HART"},
+ {" "},
+ {"-"N_("LEAD PROGRAMMERS")},
+ {"BILL KENDRICK,"},
+ {"NEW BREED SOFTWARE"},
+ {"DAVID BRUCE"},
+ {"TIM HOLY"},
+ {" "},
+ {"-"N_("ADDITIONAL CODE")},
+ {"GLEN DITCHFIELD"},
+ {"MICHAEL BEHRISCH"},
+ {"DONNY VISZNEKI"},
+ {"YVES COMBE"},
+ {"DAVID YODER"},
+ {"KARL OVE HUFTHAMMER"},
+ {"AHMED SAYED"},
+ {"BRENDAN LUCHEN"},
+ {"JESUS M. MAGER H."},
+ {"AKASH GANGIL"},
+ {"BOLESLAW KULBABINSKI"},
+ {" "},
+ {"-"N_("LEAD ARTIST")},
+ {"SAM HART"},
+ {" "},
+ {"-"N_("ADDITIONAL ART")},
+ {"BILL KENDRICK"},
+ {"KENDRA SWANSON & LINNEA HOLY"},
+ {" "},
+ {"-"N_("SOUND EFFECTS")},
+ {"TBA"},
+ {" "},
+ {"-"N_("MUSIC")},
+ {"BEYOND THE HORIZON"},
+ {"BY MYSTRA OF STONE ARTS, 1994"},
+ {" "},
+ {"CCCP MAIN"},
+ {"BY GROO OF CNCD, 1994"},
+ {" "},
+ {"SOFT BRILLIANCE"},
+ {"TJOPPBASS, 1994"},
+ {" "},
+ {"-"N_("PACKAGERS")},
+ {"JESSE ANDREWS"},
+ {"HOLGER LEVSEN"},
+ {"DAVID BRUCE"},
+ {" "},
+ {"-"N_("'TUX' THE PENGUIN CREATED BY")},
+ {"LARRY EWING"},
+ {" "},
+ {"-"N_("TESTERS")},
+ {"PETE SALZMAN"},
+ {"ST. CATHERINE ELEM., CINCINNATI, OH"},
+ {"WESTWOOD ELEMENTARY, CINCINNATI, OH"},
+ {"LAURA BRUCE"},
+ {"ROOSEVELT ELEMENTARY, TAMPA, FL"},
+ {"KENDRA SWANSON AND LINNEA HOLY"},
+ {"OLD BONHOMME ELEMENTARY,"},
+ {"ST. LOUIS, MO"},
+ {"STEPHANIE CHAPIE & HOWARD NATHANSON"},
+ {" "},
+ {" "},
+ {"-"N_("USER WEBSITE")},
+ {"http://tux4kids.alioth.debian.org"},
+ {" "},
+ {"-"N_("TUX4KIDS DEVELOPMENT HOSTED AT ALIOTH:")},
+ {"http://alioth.debian.org"},
+ {" "},
+ {N_("TuxMath is Free Software licensed under the GNU General Public License (GPL). As such, you are specifically granted the rights that are usually denied to users of proprietary software.")},
+ {" "},
+ {N_("These rights include the freedom to study, copy, modify, and redistribute the program.")},
+ {" "},
+ {N_("A full copy of the GPL is included with the documentation for this program.")},
+ {" "},
+ {N_("For more information about Free Software and the GNU GPL, visit:")},
+ {"http://www.fsf.org"},
+ {" "}
+};
+
+
+/* Some simple pixel-based characters we can blit quickly: */
+
+char chars[39][5][5] = {
+ {".###.",
+ "#..##",
+ "#.#.#",
+ "##..#",
+ ".###."},
+
+ {"..#..",
+ ".##..",
+ "..#..",
+ "..#..",
+ ".###."},
+
+ {".###.",
+ "....#",
+ "..##.",
+ ".#...",
+ "#####"},
+
+ {".###.",
+ "....#",
+ "..##.",
+ "....#",
+ ".###."},
+
+ {"...#.",
+ "..##.",
+ ".#.#.",
+ "#####",
+ "...#."},
+
+ {"#####",
+ "#....",
+ "####.",
+ "....#",
+ "####."},
+
+ {".###.",
+ "#....",
+ "####.",
+ "#...#",
+ ".###."},
+
+ {"#####",
+ "....#",
+ "...#.",
+ "..#..",
+ ".#..."},
+
+ {".###.",
+ "#...#",
+ ".###.",
+ "#...#",
+ ".###."},
+
+ {".###.",
+ "#...#",
+ ".####",
+ "....#",
+ ".###."},
+
+ {".###.",
+ "#...#",
+ "#####",
+ "#...#",
+ "#...#"},
+
+ {"####.",
+ "#...#",
+ "####.",
+ "#...#",
+ "####."},
+
+ {".###.",
+ "#....",
+ "#....",
+ "#....",
+ ".###."},
+
+ {"####.",
+ "#...#",
+ "#...#",
+ "#...#",
+ "####."},
+
+ {"#####",
+ "#....",
+ "###..",
+ "#....",
+ "#####"},
+
+ {"#####",
+ "#....",
+ "###..",
+ "#....",
+ "#...."},
+
+ {".###.",
+ "#....",
+ "#.###",
+ "#...#",
+ ".###."},
+
+ {"#...#",
+ "#...#",
+ "#####",
+ "#...#",
+ "#...#"},
+
+ {".###.",
+ "..#..",
+ "..#..",
+ "..#..",
+ ".###."},
+
+ {"....#",
+ "....#",
+ "....#",
+ "#...#",
+ ".###."},
+
+ {"#..#.",
+ "#.#..",
+ "##...",
+ "#.#..",
+ "#..#."},
+
+ {"#....",
+ "#....",
+ "#....",
+ "#....",
+ "#####"},
+
+ {"#...#",
+ "##.##",
+ "#.#.#",
+ "#...#",
+ "#...#"},
+
+ {"#...#",
+ "##..#",
+ "#.#.#",
+ "#..##",
+ "#...#"},
+
+ {".###.",
+ "#...#",
+ "#...#",
+ "#...#",
+ ".###."},
+
+ {"####.",
+ "#...#",
+ "####.",
+ "#....",
+ "#...."},
+
+ {".###.",
+ "#...#",
+ "#.#.#",
+ "#..#.",
+ ".##.#"},
+
+ {"####.",
+ "#...#",
+ "####.",
+ "#...#",
+ "#...#"},
+
+ {".###.",
+ "#....",
+ ".###.",
+ "....#",
+ ".###."},
+
+ {"#####",
+ "..#..",
+ "..#..",
+ "..#..",
+ "..#.."},
+
+ {"#...#",
+ "#...#",
+ "#...#",
+ "#...#",
+ ".###."},
+
+ {"#...#",
+ "#...#",
+ ".#.#.",
+ ".#.#.",
+ "..#.."},
+
+ {"#...#",
+ "#...#",
+ "#.#.#",
+ "##.##",
+ "#...#"},
+
+ {"#...#",
+ ".#.#.",
+ "..#..",
+ ".#.#.",
+ "#...#"},
+
+ {"#...#",
+ ".#.#.",
+ "..#..",
+ "..#..",
+ "..#.."},
+
+ {"#####",
+ "...#.",
+ "..#..",
+ ".#...",
+ "#####"},
+
+ {".....",
+ ".....",
+ ".....",
+ "..#..",
+ ".#..."},
+
+ {".....",
+ ".....",
+ ".....",
+ "..#..",
+ "..#.."},
+
+ {"..#..",
+ "..#..",
+ ".....",
+ ".....",
+ "....."}
+};
+
+
+//void draw_text(char * str, SDL_Rect dest);
+
+
+int line;
+
+
+int credits(void)
+{
+ int done, quit, scroll;
+ SDL_Rect subscreen, dest;
+
+
+ /* Clear window: */
+
+ SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
+
+
+ /* Draw title: */
+
+ dest.x = (screen->w - images[IMG_TITLE]->w) / 2;
+ dest.y = 0;
+ dest.w = images[IMG_TITLE]->w;
+ dest.h = images[IMG_TITLE]->h;
+
+ SDL_BlitSurface(images[IMG_TITLE], NULL, screen, &dest);
+
+
+ /* --- MAIN OPTIONS SCREEN LOOP: --- */
+
+ done = 0;
+ quit = 0;
+ scroll = 0;
+ line = 0;
+
+ subscreen.x = 0;
+ subscreen.y = images[IMG_TITLE]->h;
+ subscreen.w = screen->w;
+ subscreen.h = screen->h - images[IMG_TITLE]->h;
+
+ /*convert the text array to one wrapped at 40 columns: */
+ linewrap_list(credit_text, wrapped_lines, 40, MAX_LINES, MAX_LINEWIDTH);
+ quit = scroll_text(wrapped_lines, subscreen, 2);
+
+ /* Return the chosen command: */
+
+ return quit;
+}
+
+int scroll_text(char text[MAX_LINES][MAX_LINEWIDTH], SDL_Rect subscreen, int speed)
+{
+ int done = 0, quit = 0, scroll = 0, clearing = 0;
+ SDL_Event event;
+ SDL_Rect src, dest;
+ Uint32 last_time = SDL_GetTicks(), now_time;
+
+ line = 0;
+
+ do
+ {
+ /* Handle any incoming events: */
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT)
+ {
+ /* Window close event - quit! */
+ quit = 1;
+ done = 1;
+ }
+ else if (event.type == SDL_KEYDOWN)
+ {
+ if (event.key.keysym.sym == SDLK_ESCAPE)
+ {
+ /* Escape key - quit! */
+ done = 1;
+ }
+ }
+ else if (event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ done = 1;
+ }
+ }
+
+ /* Scroll: */
+ src = dest = subscreen;
+ src.y += speed; //amount to scroll by
+
+ SDL_BlitSurface(screen, &src, screen, &dest);
+
+ dest.x = subscreen.x;
+ dest.y = subscreen.y + subscreen.h - speed;
+ dest.w = subscreen.w;
+ dest.h = speed;
+
+ SDL_FillRect(screen, &dest, SDL_MapRGB(screen->format, 0, 0, 0));
+
+ ++scroll;
+
+ if (clearing) //scroll/check, but don't display any more text
+ {
+ if (scroll > subscreen.h/speed)
+ done = 1;
+ }
+ else
+ {
+ dest.x = subscreen.x + subscreen.w / 2;
+ dest.y = subscreen.y + (subscreen.h - scroll * speed);
+ dest.w = 1;
+ dest.h = 1;
+ draw_text(text[line], dest); // translation should have already occurred
+
+ if (scroll * speed >= DEFAULT_MENU_FONT_SIZE)
+ {
+ scroll = 0;
+ line++;
+
+ if (text[line][0] == '\0') //end of text
+ {
+ clearing = 1; //scroll to blank
+ }
+ else
+ DEBUGMSG(debug_titlescreen, "text[line]: %s\n", text[line]);
+ }
+ }
+
+ SDL_Flip(screen);
+
+ /* Pause (keep frame-rate event) */
+ now_time = SDL_GetTicks();
+ if (now_time < last_time + (1000 / 20))
+ {
+ SDL_Delay(last_time + (1000 / 20) - now_time);
+ }
+ last_time = SDL_GetTicks();
+
+ }
+ while (!done);
+
+ return quit;
+}
+#if 0 //really cool effect, but not translatable. I'll leave it in in case we
+ //decide to use it e.g. only for English
+void draw_text(char * str, int offset)
+{
+ int i, c, x, y, cur_x, start, hilite;
+ SDL_Rect dest;
+ Uint8 r, g, b;
+
+
+ if (str[0] == '-')
+ {
+ start = 1;
+ hilite = 1;
+ }
+ else
+ {
+ start = 0;
+ hilite = 0;
+ }
+
+
+ cur_x = (screen->w - ((strlen(str) - start) * 18)) / 2;
+
+ for (i = start; i < strlen(str); i++)
+ {
+ c = -1;
+
+ if (str[i] >= '0' && str[i] <= '9')
+ c = str[i] - '0';
+ else if (str[i] >= 'A' && str[i] <= 'Z')
+ c = str[i] - 'A' + 10;
+ else if (str[i] == ',')
+ c = 36;
+ else if (str[i] == '.')
+ c = 37;
+ else if (str[i] == '\'')
+ c = 38;
+
+
+ if (c != -1)
+ {
+ for (y = 0; y < 5; y++)
+ {
+ if (hilite == 0)
+ {
+ r = 255 - ((line * y) % 256);
+ g = 255 / (y + 2);
+ b = (line * line * 2) % 256;
+ }
+ else
+ {
+ r = 128;
+ g = 192;
+ b = 255 - (y * 40);
+ }
+
+ for (x = 0; x < 5; x++)
+ {
+ if (chars[c][y][x] == '#')
+ {
+ dest.x = cur_x + (x * 3);
+ dest.y = ((screen->h - (5 * 3)) + (y * 3) +
+ (18 - offset * 2));
+ dest.w = 3;
+ dest.h = 3;
+
+ SDL_FillRect(screen, &dest,
+ SDL_MapRGB(screen->format, r, g, b));
+ }
+ }
+ }
+ }
+
+
+ /* Move virtual cursor: */
+
+ cur_x = cur_x + 18;
+ }
+}
+
+#else
+
+//FIXME it's possible that generating the surface every frame taxes
+//slower machines. If so consider returning the surface to be used
+//as long as it's needed.
+void draw_text(char* str, SDL_Rect dest)
+{
+ SDL_Color col;
+ SDL_Surface* surf = NULL;
+ if (!str || *str == '\0')
+ return;
+
+ DEBUGMSG(debug_titlescreen, "Entering draw_text(%s)\n", str);
+
+ if (str[0] == '-') //highlight text
+ {
+ str++;
+ col.r = 128;
+ col.g = 192;
+ col.b = 255 - (40);
+ }
+ else //normal color
+ {
+ col.r = 255 - (line % 256);
+ col.g = 255 / 2;
+ col.b = (line * line * 2) % 256;
+ }
+
+ /* This func from SDL_extras draws with SDL_Pango if avail, */
+ /* with SDL_ttf as fallback: */
+ surf = SimpleText(str, DEFAULT_MENU_FONT_SIZE, &col);
+
+ dest.x -= surf->w / 2; //center text
+ SDL_BlitSurface(surf, NULL, screen, &dest);
+ SDL_FreeSurface(surf);
+ DEBUGMSG(debug_titlescreen, "done\n");
+}
+#endif
diff --git a/src/credits.h b/src/credits.h
new file mode 100644
index 0000000..d059504
--- /dev/null
+++ b/src/credits.h
@@ -0,0 +1,29 @@
+/*
+ credits.h
+
+ For TuxMath
+ Contains the text of the credits display, as well
+ as the function which displays the credits in the game window.
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - August 28, 2001
+*/
+
+
+#ifndef CREDITS_H
+#define CREDITS_H
+
+//needed for MAX_LINES and MAX_LINEWIDTH
+#include "linewrap.h"
+
+int credits(void);
+int scroll_text(char text[MAX_LINES][MAX_LINEWIDTH], SDL_Rect subscreen, int speed);
+void draw_text(char* str, SDL_Rect dest);
+#endif
diff --git a/src/exercise_mathcards.c b/src/exercise_mathcards.c
new file mode 100644
index 0000000..ee70135
--- /dev/null
+++ b/src/exercise_mathcards.c
@@ -0,0 +1,54 @@
+/*
+* C Implementation: exercise_mathcards
+*
+* Description:
+*
+*
+* Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2007
+*
+* Copyright: See COPYING file that comes with this distribution
+*
+*/
+
+#include <stdio.h>
+#include "mathcards.h"
+
+int main()
+{
+ int i, iter, op;
+ MC_FlashCard c;
+
+ MC_Initialize();
+
+ for (i = 0; i < 100; i++)
+ {
+
+ fprintf(stderr, "\n\nGame: i = %d\n", i);
+ op = rand() % 2;
+ MC_SetAddAllowed(op);
+ op = rand() % 2;
+ MC_SetSubAllowed(op);
+ op = rand() % 2;
+ MC_SetMultAllowed(op);
+ op = rand() % 2;
+ MC_SetDivAllowed(op);
+
+ if (!MC_StartGame())
+ continue;
+
+ iter = 0;
+
+ while(!MC_MissionAccomplished())
+ {
+ MC_NextQuestion(&c);
+ op = rand() % 2;
+ if (op)
+ MC_AnsweredCorrectly(&c);
+ else
+ MC_NotAnsweredCorrectly(&c);
+ iter++;
+ }
+// MC_EndGame();
+ }
+ return 1;
+}
diff --git a/src/factoroids.c b/src/factoroids.c
new file mode 100644
index 0000000..243a245
--- /dev/null
+++ b/src/factoroids.c
@@ -0,0 +1,2222 @@
+/************************************************************
+ * factoroids.c *
+ * *
+ * Description: Code for the factor and fraction activity *
+ * *
+ * Author: Jesus M. Mager H. (fongog at gmail.com) 2008 *
+ * Copyright: GPL v3 or later *
+ * *
+ * Also significantly enhanced by Tim Holy - 2008 *
+ * *
+ * Code based on the work made by: *
+ * Bill Kendrick (vectoroids 1.1.0) *
+ * and Bill Kendrick, David Bruce, Tim Holy *
+ * and others (Tuxmath 1.6.3) *
+ * *
+ * TuxMath *
+ * Part of "Tux4Kids" Project *
+ * http://tux4kids.alioth.debian.org/ *
+ ************************************************************/
+
+#include "tuxmath.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "SDL.h"
+#ifndef NOSOUND
+#include "SDL_mixer.h"
+#endif
+#include "SDL_image.h"
+#include "SDL_rotozoom.h"
+#include "SDL_extras.h"
+
+#include "game.h"
+#include "fileops.h"
+#include "setup.h"
+#include "mathcards.h"
+#include "loaders.h"
+#include "titlescreen.h"
+#include "options.h"
+
+#define FPS 15 /* 15 frames per second */
+#define MS_PER_FRAME (1000 / FPS)
+#define BASE_RES_X 1280
+
+#define MAX_LASER 5
+#define MAX_ASTEROIDS 50
+#define NUM_TUXSHIPS 2
+#define NUM_SPRITES 11
+#define TUXSHIP_LIVES 3
+#define DEG_PER_ROTATION 2
+#define NUM_OF_ROTO_IMGS 360/DEG_PER_ROTATION
+/* TUXSHIP_DECEL controls "friction" - 1 means ship glides infinitely, 0 stops it instantly */
+#define TUXSHIP_DECEL 0.8
+#define DEG_TO_RAD 0.0174532925
+#define MAX(a,b) (((a) > (b)) ? (a) : (b))
+
+/********* Enumerations ***********/
+
+enum{
+ FACTOROIDS_GAME,
+ FRACTIONS_GAME
+};
+
+/********* Structures *********/
+
+typedef struct colorRGBA_type {
+ Uint8 r;
+ Uint8 g;
+ Uint8 b;
+ Uint8 a;
+} ColorRGBA_type;
+
+typedef struct asteroid_type {
+ int alive, size;
+ int angle, angle_speed;
+ int xspeed, yspeed;
+ int x, y;
+ int rx, ry;
+ int centerx, centery;
+ int radius;
+ int fact_number;
+ int isprime;
+ int a, b; /* a / b */
+ int count;
+} asteroid_type;
+
+
+typedef struct tuxship_type {
+ int lives, size;
+ int xspeed, yspeed;
+ int x, y;
+ int rx, ry;
+ int x1,y1,x2,y2,x3,y3;
+ int radius;
+ int centerx, centery;
+ int angle;
+ int hurt, hurt_count;
+ int count;
+} tuxship_type;
+
+
+typedef struct FF_laser_type{
+ int alive;
+ int x, y;
+ int destx,desty;
+ int r, g, b;
+ int count;
+ int angle;
+ int m;
+} FF_laser_type;
+
+
+typedef struct {
+ int x_is_blinking;
+ int extra_life_is_blinking;
+ int laser_enabled;
+} help_controls_type;
+
+/********* Global vars ************/
+
+/* Trig junk: (thanks to Atari BASIC for this) */
+
+static int trig[12] = {
+ 1024,
+ 1014,
+ 984,
+ 935,
+ 868,
+ 784,
+ 685,
+ 572,
+ 448,
+ 316,
+ 117,
+ 0
+};
+
+// ControlKeys
+static int left_pressed;
+static int right_pressed;
+static int up_pressed;
+static int shift_pressed;
+static int shoot_pressed;
+
+// GameControl
+static int game_status;
+//static int gameover_counter;
+static int escape_received;
+
+//SDL_Surfaces:
+static SDL_Surface* IMG_tuxship[NUM_OF_ROTO_IMGS];
+static SDL_Surface* IMG_asteroids1[NUM_OF_ROTO_IMGS];
+static SDL_Surface* IMG_asteroids2[NUM_OF_ROTO_IMGS];
+static SDL_Surface* bkgd = NULL; //640x480 background (windowed)
+static SDL_Surface* scaled_bkgd = NULL; //native resolution (fullscreen)
+
+
+// Game type
+static int FF_game;
+
+// Game vars
+static int score;
+static int wave;
+static int paused;
+static int escape_received;
+static int game_status;
+static int SDL_quit_received;
+static int quit;
+static int digits[3];
+static int num;
+
+static int neg_answer_picked;
+static int tux_pressing;
+static int doing_answer;
+static int level_start_wait;
+static int tux_img;
+//static int FF_level;
+
+static asteroid_type* asteroid = NULL;
+static tuxship_type tuxship;
+static FF_laser_type laser[MAX_LASER];
+
+static int NUM_ASTEROIDS;
+static int counter;
+static int xdead, ydead, isdead, countdead;
+static int roto_speed;
+
+/*************** The Factor and Fraction Activity Game Functions ***************/
+
+/* Local function prototypes: */
+
+static int FF_init(void);
+static void FF_intro(void);
+
+static void FF_handle_ship(void);
+static void FF_handle_asteroids(void);
+static void FF_handle_answer(void);
+static int check_exit_conditions(void);
+static void FF_draw(void);
+static void FF_draw_bkgr(void);
+static void FF_draw_led_console(void);
+static void draw_console_image(int i);
+
+static SDL_Surface* current_bkgd()
+ { return screen->flags & SDL_FULLSCREEN ? scaled_bkgd : bkgd; }
+
+static void FF_add_level(void);
+static int FF_over(int game_status);
+static void FF_exit_free(void);
+
+static int FF_add_laser(void);
+static int FF_add_asteroid(int x, int y, int xspeed, int yspeed, int size, int angle, int angle_speed, int fact_num, int a, int b, int new_wave);
+static int FF_destroy_asteroid(int i, float xspeed, float yspeed);
+
+static void FF_ShowMessage(char* str1, char* str2, char* str3, char* str4);
+
+static SDL_Surface* get_asteroid_image(int size,int angle);
+static int AsteroidColl(int astW,int astH,int astX,int astY,
+ int x, int y);
+static int is_prime(int num);
+static int fast_cos(int angle);
+static int fast_sin(int angle);
+static void game_handle_user_events(void);
+static int game_mouse_event(SDL_Event event);
+
+/************** factors(): The factor main function ********************/
+void factors(void)
+{
+ Uint32 last_time, now_time;
+
+ quit = 0;
+ counter = 0;
+ tux_img = IMG_TUX_CONSOLE1;
+
+ DEBUGMSG(debug_factoroids, "Entering factors():\n");
+
+ FF_game = FACTOROIDS_GAME;
+
+ if (!FF_init())
+ {
+ fprintf(stderr, "FF_init() failed!\n");
+ FF_exit_free();
+ return;
+ }
+
+ while (game_status == GAME_IN_PROGRESS)
+ {
+ last_time = SDL_GetTicks();
+ counter++;
+
+ if(counter%15 == 0)
+ {
+ if(tux_img<IMG_TUX_CONSOLE4)
+ tux_img++;
+ else
+ tux_img=IMG_TUX_CONSOLE1;
+ }
+
+ game_handle_user_events();
+
+ FF_handle_ship();
+ FF_handle_asteroids();
+ FF_handle_answer();
+ FF_draw();
+ SDL_Flip(screen);
+
+ game_status = check_exit_conditions();
+
+ if (paused)
+ {
+ pause_game();
+ paused = 0;
+ }
+
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ {
+ //...when the music's over, turn out the lights!
+ //...oops, wrong song! Actually, we just pick next music at random:
+ if (!Mix_PlayingMusic())
+ {
+ Mix_PlayMusic(musics[MUS_GAME + (rand() % 3)], 0);
+ }
+ }
+#endif
+
+ /* Pause (keep frame-rate event) */
+ now_time = SDL_GetTicks();
+ if (now_time < last_time + MS_PER_FRAME)
+ {
+ //Prevent any possibility of a time wrap-around
+ // (this is a very unlikely problem unless there is an SDL bug
+ // or you leave tuxmath running for 49 days...)
+ now_time = (last_time+MS_PER_FRAME) - now_time; // this holds the delay
+ if (now_time > MS_PER_FRAME)
+ now_time = MS_PER_FRAME;
+ SDL_Delay(now_time);
+ }
+ }
+ FF_over(game_status);
+}
+
+
+/************** fractions(): The fractions main function ********************/
+void fractions(void)
+{
+
+ Uint32 last_time, now_time;
+
+ quit = 0;
+ counter = 0;
+ tux_img = IMG_TUX_CONSOLE1;
+
+ DEBUGMSG(debug_factoroids, "Entering factors():\n");
+ /*****Initalizing the Factor activiy *****/
+ FF_game = FRACTIONS_GAME;
+
+ if (!FF_init())
+ {
+ fprintf(stderr, "FF_init() failed!\n");
+ FF_exit_free();
+ return;
+ }
+
+ /************ Main Loop **************/
+ while (game_status == GAME_IN_PROGRESS)
+ {
+ last_time = SDL_GetTicks();
+ counter++;
+
+ if(counter%15 == 0)
+ {
+ if(tux_img < IMG_TUX_CONSOLE4)
+ tux_img++;
+ else
+ tux_img = IMG_TUX_CONSOLE1;
+ }
+
+ game_handle_user_events();
+
+ FF_handle_ship();
+ FF_handle_asteroids();
+ FF_handle_answer();
+ FF_draw();
+ SDL_Flip(screen);
+
+ game_status = check_exit_conditions();
+
+ if (paused)
+ {
+ pause_game();
+ paused = 0;
+ }
+
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ {
+ if (!Mix_PlayingMusic())
+ {
+ Mix_PlayMusic(musics[MUS_GAME + (rand() % 3)], 0);
+ }
+ }
+#endif
+
+ /* Pause (keep frame-rate event) */
+ now_time = SDL_GetTicks();
+ if (now_time < last_time + MS_PER_FRAME)
+ {
+ //Prevent any possibility of a time wrap-around
+ // (this is a very unlikely problem unless there is an SDL bug
+ // or you leave tuxmath running for 49 days...)
+ now_time = (last_time + MS_PER_FRAME) - now_time; // this holds the delay
+ if (now_time > MS_PER_FRAME)
+ now_time = MS_PER_FRAME;
+ SDL_Delay(now_time);
+ }
+ }
+ FF_over(game_status);
+}
+
+
+/************ Initialize all vars... ****************/
+static int FF_init(void)
+{
+ int i;
+ float zoom;
+
+ SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
+ SDL_Flip(screen);
+
+ FF_intro();
+
+ if(screen->h < 600 && screen->w < 800)
+ zoom = 0.65;
+ else
+ zoom = (float)screen->w/(float)BASE_RES_X;
+
+ DEBUGCODE(debug_factoroids)
+ printf("The zoom factor is: %f\n", zoom);
+
+ /*************** Precalculating software rotation ***************/
+
+ for(i = 0; i < NUM_OF_ROTO_IMGS; i++)
+ {
+ //rotozoomSurface (SDL_Surface *src, double angle, double zoom, int smooth);
+ IMG_tuxship[i] = rotozoomSurface(images[IMG_SHIP01], i * DEG_PER_ROTATION, zoom, 1);
+
+ if (IMG_tuxship[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: rotozoomSurface() of images[IMG_SHIP01] for i = %d returned NULL\n", i);
+ return 0;
+ }
+
+ IMG_asteroids1[i] = rotozoomSurface(images[IMG_ASTEROID1], i * DEG_PER_ROTATION, zoom, 1);
+
+ if (IMG_asteroids1[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: rotozoomSurface() of images[IMG_ASTEROID1] for i = %d returned NULL\n", i);
+ return 0;
+ }
+
+ IMG_asteroids2[i] = rotozoomSurface(images[IMG_ASTEROID2], i*DEG_PER_ROTATION, zoom, 1);
+
+ if (IMG_asteroids2[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: rotozoomSurface() of images[IMG_ASTEROID2] for i = %d returned NULL\n", i);
+ return 0;
+ }
+ }
+
+
+ /******** Set up properly scaled and optimized background surfaces: *********/
+ /* NOTE - optimization code moved into LoadBothBkgds() so rest of program */
+ /* can take advantage of it - DSB */
+
+ LoadBothBkgds("factoroids/gbstars.png", &scaled_bkgd, &bkgd);
+
+ if (bkgd == NULL || scaled_bkgd == NULL)
+ {
+ fprintf(stderr,
+ "\nError: could not scale background\n");
+ return 0;
+ }
+
+
+ // Allocate memory
+ asteroid = NULL; // set in case allocation fails partway through
+ asteroid = (asteroid_type *) malloc(MAX_ASTEROIDS * sizeof(asteroid_type));
+
+ if (asteroid == NULL)
+ {
+ printf("Allocation of asteroids failed");
+ return 0;
+ }
+
+ NUM_ASTEROIDS = 4;
+
+ /**************Setting up the ship values! **************/
+ tuxship.x = ((screen->w)/2) - 20;
+ tuxship.y = ((screen->h)/2) - 20;
+ tuxship.lives = TUXSHIP_LIVES;
+ tuxship.hurt = 0;
+ tuxship.hurt_count = 0;
+ tuxship.angle = 90;
+ tuxship.xspeed = 0;
+ tuxship.yspeed = 0;
+ tuxship.radius = (images[IMG_SHIP01]->h)/2;
+
+ tuxship.x1 = images[IMG_SHIP01]->w-(images[IMG_SHIP01]->w/8);
+ tuxship.y1 = images[IMG_SHIP01]->h/2;
+ tuxship.x2 = images[IMG_SHIP01]->w/8;
+ tuxship.y2 = images[IMG_SHIP01]->h/8;
+ tuxship.x3 = images[IMG_SHIP01]->w/8;
+ tuxship.y3 = images[IMG_SHIP01]->h-(images[IMG_SHIP01]->h/8);
+
+ /* --- reset all controls: --- */
+ left_pressed = 0;
+ right_pressed = 0;
+ up_pressed = 0;
+ shift_pressed = 0;
+ shoot_pressed = 0;
+
+ score = 0;
+ wave = 0;
+ xdead = 0;
+ ydead = 0;
+ isdead = 0;
+ countdead = 0;
+ escape_received = 0;
+ game_status = GAME_IN_PROGRESS;
+
+ FF_add_level();
+
+ for (i = 0; i < MAX_LASER; i++)
+ laser[i].alive = 0;
+
+ // Wait for click or keypress to start (get out if user presses Esc) :
+ while(1)
+ {
+ SDL_PollEvent(&event);
+ if (event.type == SDL_QUIT)
+ {
+ SDL_quit_received = 1;
+ quit = 1;
+ return 1;
+ }
+ else if (event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ return 1;
+ }
+ else if (event.type == SDL_KEYDOWN)
+ {
+ if (event.key.keysym.sym == SDLK_ESCAPE)
+ escape_received = 1;
+ return 1;
+ }
+ }
+}
+
+
+static void FF_intro(void)
+{
+ static SDL_Surface* IMG_factors;
+ static SDL_Surface* IMG_fractions;
+
+// SDL_Event event;
+ SDL_Rect rect;
+
+ float zoom;
+
+ if(screen->h < 600 && screen->w < 800)
+ zoom = 0.65;
+ else
+ zoom=(float)screen->w/(float)BASE_RES_X;
+
+ IMG_factors = rotozoomSurface(images[IMG_FACTOROIDS], 0, zoom, 1);
+ IMG_fractions = rotozoomSurface(images[IMG_FACTORS], 0, zoom, 1);
+
+ FF_draw_bkgr();
+ if(FF_game == FACTOROIDS_GAME)
+ {
+
+ rect.x = (screen->w/2) - (IMG_factors->w/2);
+ rect.y = (screen->h)/7;
+ SDL_BlitSurface(IMG_factors, NULL, screen, &rect);
+ FF_ShowMessage(_("FACTOROIDS: to win, you need destroy all the asteroids."),
+ _("Use the arrow keys to turn or go forward. Aim at an asteroid,"),
+ _("type one of its factors, and press space or return"),
+ _("to split it into its factors. Rocks with prime numbers are destroyed!"));
+ SDL_BlitSurface(IMG_asteroids1[3],NULL,screen,&rect);
+ }
+ else if (FF_game == FRACTIONS_GAME)
+ {
+ rect.x = (screen->w/2)-(IMG_fractions->w/2);
+ rect.y = (screen->h)/7;
+ SDL_BlitSurface(IMG_fractions,NULL,screen,&rect);
+ FF_ShowMessage(_("FRACTIONS: to win, you need destroy all the asteroids"),
+ _("Use the arrow keys to turn or go forward. Aim at an asteroid,"),
+ _("type a number that can simplify the fraction, and press space or return"),
+ _("to split it. Destroy fractions that can not be further simplified in a single shot!"));
+ }
+
+ SDL_FreeSurface(IMG_factors);
+ SDL_FreeSurface(IMG_fractions);
+}
+
+static void FF_handle_ship(void)
+{
+//FIXME - am I missing something -- doesn't this just reduce to
+//"tuxship.centerx = tuxship.x" and likewise for y???
+/****************** Ship center... ******************/
+
+ tuxship.centerx = ((IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->w)/2) +
+ (tuxship.x - (IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->w/2));
+ tuxship.centery = ((IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->h)/2) +
+ (tuxship.y - (IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->h/2));
+
+/******************* Ship live *********************/
+
+ if(tuxship.hurt)
+ {
+ tuxship.hurt_count--;
+ if(tuxship.hurt_count <= 0)
+ tuxship.hurt = 0;
+ }
+/****************** Rotate Ship *********************/
+
+ if(right_pressed || left_pressed)
+ {
+ if(roto_speed < 10)
+ {
+ roto_speed = roto_speed + 2;
+ }
+ }
+ else
+ {
+ roto_speed = 1;
+ }
+
+ if (right_pressed)
+ {
+ tuxship.angle = tuxship.angle - DEG_PER_ROTATION * roto_speed;
+ if (tuxship.angle < 0)
+ tuxship.angle = tuxship.angle + 360;
+
+ tuxship.x1= fast_cos(DEG_PER_ROTATION*-roto_speed) * tuxship.centerx
+ -fast_sin(DEG_PER_ROTATION*-roto_speed) * tuxship.centery;
+ tuxship.y1= fast_sin(DEG_PER_ROTATION*-roto_speed) * tuxship.centerx
+ +fast_cos(DEG_PER_ROTATION*-roto_speed) * tuxship.centery;
+
+ }
+ else if (left_pressed)
+ {
+ tuxship.angle=tuxship.angle + DEG_PER_ROTATION * roto_speed;
+ if (tuxship.angle >= 360)
+ tuxship.angle = tuxship.angle - 360;
+
+ tuxship.x1= fast_cos(DEG_PER_ROTATION*roto_speed) * tuxship.centerx
+ -fast_sin(DEG_PER_ROTATION*roto_speed) * tuxship.centery;
+ tuxship.y1= fast_sin(DEG_PER_ROTATION*roto_speed * tuxship.centerx
+ +fast_cos(DEG_PER_ROTATION*roto_speed)) * tuxship.centery;
+
+ }
+
+/**************** Move, and increse speed ***************/
+
+
+ if (up_pressed && (tuxship.lives > 0))
+ {
+ tuxship.xspeed = tuxship.xspeed + ((fast_cos(tuxship.angle >> 3) * 3) >> 10);
+ tuxship.yspeed = tuxship.yspeed - ((fast_sin(tuxship.angle >> 3) * 3) >> 10);
+ }
+ else
+ {
+ if ((counter % 2) == 0)
+ {
+ tuxship.xspeed = tuxship.xspeed * TUXSHIP_DECEL;
+ tuxship.yspeed = tuxship.yspeed * TUXSHIP_DECEL;
+ }
+ }
+
+ tuxship.x = tuxship.x + tuxship.xspeed;
+ tuxship.y = tuxship.y + tuxship.yspeed;
+
+/*************** Wrap ship around edges of screen ****************/
+
+ if(tuxship.x >= (screen->w))
+ tuxship.x = tuxship.x - (screen->w);
+ else if (tuxship.x < -60)
+ tuxship.x = tuxship.x + (screen->w);
+
+ if(tuxship.y >= (screen->h))
+ tuxship.y = tuxship.y - (screen->h);
+ else if (tuxship.y < -60)
+ tuxship.y = tuxship.y + (screen->h);
+
+/**************** Shoot ***************/
+ if(shoot_pressed)
+ {
+ FF_add_laser();
+ shoot_pressed=0;
+ }
+}
+
+
+static void FF_handle_asteroids(void){
+
+ SDL_Surface* surf;
+ int i, found=0;
+ for (i = 0; i < MAX_ASTEROIDS; i++){
+ if (asteroid[i].alive)
+ {
+
+ found=1;
+
+ /*************** Rotate asteroid ****************/
+
+ asteroid[i].angle = (asteroid[i].angle + asteroid[i].angle_speed);
+
+ // Wrap rotation angle...
+
+ if (asteroid[i].angle < 0)
+ asteroid[i].angle = asteroid[i].angle + 360;
+ else if (asteroid[i].angle >= 360)
+ asteroid[i].angle = asteroid[i].angle - 360;
+
+ /**************Move the astroids ****************/
+ surf=get_asteroid_image(asteroid[i].size,asteroid[i].angle);
+
+ asteroid[i].rx = asteroid[i].rx + asteroid[i].xspeed;
+ asteroid[i].ry = asteroid[i].ry + asteroid[i].yspeed;
+
+ asteroid[i].x = (asteroid[i].rx - (surf->w/2));
+ asteroid[i].y = (asteroid[i].ry - (surf->h/2));
+
+ // Wrap asteroid around edges of screen:
+
+ if (asteroid[i].x >= (screen->w))
+ asteroid[i].rx = asteroid[i].rx - (screen->w);
+ else if (asteroid[i].x < 0)
+ asteroid[i].rx = asteroid[i].rx + (screen->w);
+
+ if (asteroid[i].y >= (screen->h))
+ asteroid[i].ry = asteroid[i].ry - (screen->h);
+ else if (asteroid[i].ry < 0)
+ asteroid[i].ry = asteroid[i].ry + (screen->h);
+ /**************Center Asteroids**************/
+
+ asteroid[i].centerx=((surf->w)/2)+(asteroid[i].x-5);
+ asteroid[i].centery=((surf->h)/2)+(asteroid[i].y-5);
+
+ /*************** Collisions! ****************/
+
+ if(AsteroidColl(surf->w, surf->h, asteroid[i].x, asteroid[i].y, tuxship.centerx, tuxship.centery))
+ {
+ if(!tuxship.hurt)
+ {
+ xdead=asteroid[i].centerx;
+ ydead=asteroid[i].centery;
+
+ tuxship.lives--;
+ tuxship.hurt=1;
+ tuxship.hurt_count=50;
+ FF_destroy_asteroid(i, tuxship.xspeed, tuxship.yspeed);
+ playsound(SND_EXPLOSION);
+
+ }
+ }
+ }
+ }
+ if(!found)
+ FF_add_level();
+}
+
+static void FF_handle_answer(void)
+{
+
+ num = (digits[0] * 100 +
+ digits[1] * 10 +
+ digits[2]);
+ /* negative answer support DSB */
+ if (neg_answer_picked)
+ {
+ num = -num;
+ }
+
+ if (!doing_answer)
+ {
+ return;
+ }
+
+ doing_answer = 0;
+
+ /* Clear digits: */
+ digits[0] = 0;
+ digits[1] = 0;
+ digits[2] = 0;
+ neg_answer_picked = 0;
+
+}
+
+static SDL_Surface* get_asteroid_image(int size,int angle)
+{
+ if (size == 0)
+ return IMG_asteroids1[angle/DEG_PER_ROTATION];
+ else
+ return IMG_asteroids2[angle/DEG_PER_ROTATION];
+}
+
+static void FF_draw(void){
+
+ int i, offset;
+ int xnum, ynum;
+ char str[64];
+ SDL_Surface* surf;
+ SDL_Rect dest;
+
+ SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
+
+ /************ Draw Background ***************/
+
+ FF_draw_bkgr();
+
+/******************* Draw laser *************************/
+ for (i=0;i<MAX_LASER;i++){
+ if(laser[i].alive)
+ {
+ if(laser[i].count>0)
+ {
+ laser[i].count--;
+ laser[i].x=laser[i].x+tuxship.xspeed;
+ laser[i].y=laser[i].y+tuxship.yspeed;
+ laser[i].destx=laser[i].destx+tuxship.xspeed;
+ laser[i].desty=laser[i].desty+tuxship.yspeed;
+ draw_line(laser[i].x, laser[i].y, laser[i].destx, laser[i].desty,
+ laser[i].count*18, 0, 0);
+ } else if (laser[i].count <= 0)
+ {
+ laser[i].alive=0;
+ }
+ }
+ }
+ /*************** Draw Ship ******************/
+
+ if(!tuxship.hurt || (tuxship.hurt && tuxship.hurt_count%2==0)){
+ dest.x = (tuxship.x - (IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->w/2));
+ dest.y = (tuxship.y - (IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->h/2));
+ dest.w = IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->w;
+ dest.h = IMG_tuxship[tuxship.angle/DEG_PER_ROTATION]->h;
+
+ SDL_BlitSurface(IMG_tuxship[tuxship.angle/DEG_PER_ROTATION], NULL, screen, &dest);
+ }
+ /************* Draw Asteroids ***************/
+ for(i=0; i<MAX_ASTEROIDS; i++){
+ if(asteroid[i].alive>0){
+
+ xnum=0;
+ ynum=0;
+
+ dest.x = asteroid[i].x;
+ dest.y = asteroid[i].y;
+
+ surf=get_asteroid_image(asteroid[i].size,asteroid[i].angle);
+
+ dest.w = surf->w;
+ dest.h = surf->h;
+
+ SDL_BlitSurface(surf, NULL, screen, &dest);
+
+ // Wrap the numbers of the asteroids
+ if((asteroid[i].centery)>23 && (asteroid[i].centery)<screen->h)
+ {
+ if((asteroid[i].centerx)>0 && (asteroid[i].centerx)<screen->w)
+ {
+ xnum=asteroid[i].centerx-3;
+ ynum=asteroid[i].centery;
+ }
+ else if((asteroid[i].centerx)<=0){
+ xnum=20;
+ ynum=asteroid[i].centery;
+ }
+ else if((asteroid[i].centerx)<=screen->w){
+ xnum=screen->w-20;
+ ynum=asteroid[i].centery;
+ }
+ }
+ else if((asteroid[i].centery)<=23)
+ {
+ xnum=asteroid[i].centerx;
+ ynum=23;
+ }
+ else if((asteroid[i].centery)>=screen->h)
+ {
+ xnum=asteroid[i].centerx;
+ ynum=screen->h-7;
+ }
+
+ //Draw Numbers
+ if(FF_game==FACTOROIDS_GAME)
+ {
+ sprintf(str, "%.1d", asteroid[i].fact_number);
+ draw_nums(str, xnum, ynum);
+ }
+ else if (FF_game==FRACTIONS_GAME)
+ {
+ sprintf(str, "%d", asteroid[i].a);
+ draw_nums(str, xnum, ynum);
+ draw_line(xnum, ynum + 4, xnum + 30, ynum + 4,
+ 255, 255, 255);
+ sprintf(str, "%d", asteroid[i].b);
+ draw_nums(str, xnum, ynum + 35);
+ }
+ }
+ }
+ /*************** Draw Steam ***************/
+
+ if(isdead)
+ {
+ dest.x = xdead;
+ dest.y = ydead;
+ SDL_BlitSurface(images[IMG_STEAM1+countdead], NULL, screen, &dest);
+ countdead++;
+ if(countdead > 5)
+ {
+ isdead = 0;
+ countdead = 0;
+ }
+ }
+
+ /* Draw wave: */
+ if (1)//Opts_BonusCometInterval())
+ offset = images[IMG_EXTRA_LIFE]->w + 5;
+ else
+ offset = 0;
+
+ dest.x = offset;
+
+ dest.y = 0;
+ dest.w = images[IMG_WAVE]->w;
+ dest.h = images[IMG_WAVE]->h;
+
+ SDL_BlitSurface(images[IMG_WAVE], NULL, screen, &dest);
+
+ sprintf(str, "%d", wave);
+ draw_numbers(str, offset+images[IMG_WAVE]->w + (images[IMG_NUMBERS]->w / 10), 0);
+
+ /* Draw "score" label: */
+ dest.x = (screen->w - ((images[IMG_NUMBERS]->w/10) * 7) -
+ images[IMG_SCORE]->w -
+ images[IMG_STOP]->w - 5);
+ dest.y = 0;
+ dest.w = images[IMG_SCORE]->w;
+ dest.h = images[IMG_SCORE]->h;
+
+ SDL_BlitSurface(images[IMG_SCORE], NULL, screen, &dest);
+
+ sprintf(str, "%.6d", score);
+ draw_numbers(str,
+ screen->w - ((images[IMG_NUMBERS]->w / 10) * 6) - images[IMG_STOP]->w - 5,
+ 0);
+
+ /* Draw stop button: */
+// if (!help_controls.x_is_blinking || (frame % 10 < 5)) {
+ dest.x = (screen->w - images[IMG_STOP]->w);
+ dest.y = 0;
+ dest.w = images[IMG_STOP]->w;
+ dest.h = images[IMG_STOP]->h;
+
+ SDL_BlitSurface(images[IMG_STOP], NULL, screen, &dest);
+ // }
+
+ /************* Draw pre answer ************/
+
+
+ if(screen->w < 800 && screen->h < 600)
+ {
+ sprintf(str, "%.3d", num);
+ draw_numbers(str, ((screen->w)/2) - 50, (screen->h) - 30);
+ }
+ else
+ {
+ FF_draw_led_console();
+ draw_console_image(tux_img);
+ }
+
+ /************** Draw lives ***************/
+ dest.y = screen->h;
+ dest.x = 0;
+
+ for(i = 1; i <= tuxship.lives; i++)
+ {
+ if(tuxship.lives <= 5)
+ {
+ dest.y = dest.y - (images[IMG_TUX_LITTLE]->h);
+ SDL_BlitSurface(images[IMG_TUX_LITTLE], NULL, screen, &dest);
+ }
+ else if(tuxship.lives > 4)
+ {
+ dest.y = screen->h - (images[IMG_TUX_LITTLE]->h);
+ SDL_BlitSurface(images[IMG_TUX_LITTLE], NULL, screen, &dest);
+ sprintf(str, "%d", tuxship.lives);
+ draw_numbers(str, 10, (screen->h) - 30);
+ }
+ }
+}
+
+/*Modified from game.c*/
+void FF_draw_led_console(void)
+{
+ int i;
+ SDL_Rect src, dest;
+ int y;
+
+ /* draw new console image with "monitor" for LED numbers: */
+ draw_console_image(IMG_CONSOLE_LED);
+ /* set y to draw LED numbers into Tux's "monitor": */
+ y = (screen->h
+ - images[IMG_CONSOLE_LED]->h
+ + 4); /* "monitor" has 4 pixel margin */
+
+ /* begin drawing so as to center display depending on whether minus */
+ /* sign needed (4 digit slots) or not (3 digit slots) DSB */
+ if (MC_GetOpt(ALLOW_NEGATIVES) )
+ dest.x = ((screen->w - ((images[IMG_LEDNUMS]->w) / 10) * 4) / 2);
+ else
+ dest.x = ((screen->w - ((images[IMG_LEDNUMS]->w) / 10) * 3) / 2);
+
+ for (i = -1; i < MC_MAX_DIGITS; i++) /* -1 is special case to allow minus sign */
+ /* with minimal modification of existing code DSB */
+ {
+ if (-1 == i)
+ {
+ if (MC_GetOpt(ALLOW_NEGATIVES))
+ {
+ if (neg_answer_picked)
+ src.x = (images[IMG_LED_NEG_SIGN]->w) / 2;
+ else
+ src.x = 0;
+
+ src.y = 0;
+ src.w = (images[IMG_LED_NEG_SIGN]->w) / 2;
+ src.h = images[IMG_LED_NEG_SIGN]->h;
+
+ dest.y = y;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_LED_NEG_SIGN], &src, screen, &dest);
+ /* move "cursor" */
+ dest.x += src.w;
+ }
+ }
+ else
+ {
+ src.x = digits[i] * ((images[IMG_LEDNUMS]->w) / 10);
+ src.y = 0;
+ src.w = (images[IMG_LEDNUMS]->w) / 10;
+ src.h = images[IMG_LEDNUMS]->h;
+
+ /* dest.x already set */
+ dest.y = y;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_LEDNUMS], &src, screen, &dest);
+ /* move "cursor" */
+ dest.x += src.w;
+ }
+ }
+}
+
+/* Draw image at lower center of screen: */
+void draw_console_image(int i)
+{
+ SDL_Rect dest;
+
+ dest.x = (screen->w - images[i]->w) / 2;
+ dest.y = (screen->h - images[i]->h);
+ dest.w = images[i]->w;
+ dest.h = images[i]->h;
+
+ SDL_BlitSurface(images[i], NULL, screen, &dest);
+}
+
+static void FF_draw_bkgr(void)
+{
+
+ SDL_BlitSurface(current_bkgd(), NULL, screen, NULL);
+ //if(bgSrc.y>bkg_h)
+ // SDL_BlitSurface(images[BG_STARS], NULL, screen, &bgScreen);
+
+}
+
+/*Tree rectangle vs a point collitions
+ returns 1 if the collitions is detected
+ and 0 if not*/
+
+int AsteroidColl(int astW,int astH,int astX,int astY,
+ int x, int y)
+{
+ int astWq=astW/8;
+ int astHq=astH/8;
+ int x1, y1, x2, y2;
+
+ x1=astX+astWq*3;
+ y1=astY;
+
+ x2=astX+astWq*6;
+ y2=astY+astH;
+
+ if(x>x1 && x<x2 && y>y1 && y<y2)
+ return 1;
+
+ x1=astX;
+ y1=astY+astHq*3;
+
+ x2=astW;
+ y2=astY+astHq*6;
+
+ if(x>x1 && x<x2 && y>y1 && y<y2)
+ return 1;
+
+ x1=astX+astWq;
+ y1=astY+astHq;
+
+ x2=astX+astWq*7;
+ y2=astY+astHq*7;
+
+ if(x>x1 && x<x2 && y>y1 && y<y2)
+ return 1;
+
+ return 0;
+}
+
+// Returns x % w but in the range [-w/2, w/2]
+static int modwrap(int x,int w)
+{
+ x = x % w;
+ if (x > (w/2))
+ x -= w;
+ else if (x < -(w/2))
+ x += w;
+ return x;
+}
+
+static void FF_add_level(void)
+{
+ int i = 0;
+ int x, y, xvel, yvel, dx, dy;
+ int ok;
+ int width;
+ int safety_radius2, speed2;
+ int max_speed;
+ Uint32 now_time, last_time;
+ SDL_Rect rect;
+
+ last_time = now_time = SDL_GetTicks();
+
+ wave++;
+
+ // New lives per wave!
+ if (wave%5==0)
+ {
+ tuxship.lives++;
+ }
+
+ //Limit the new asteroids
+ if(NUM_ASTEROIDS<MAX_ASTEROIDS)
+ NUM_ASTEROIDS=NUM_ASTEROIDS+wave;
+ else
+ NUM_ASTEROIDS=MAX_ASTEROIDS;
+
+ width = screen->w;
+ if (screen->h < width)
+ width = screen->h;
+
+ // Define the "safety radius" as one third of the screen width
+ safety_radius2 = width/3;
+ safety_radius2 = safety_radius2*safety_radius2; // the square distance
+
+ // Define the max speed in terms of the screen width
+ max_speed = width/100;
+ if (max_speed == 0)
+ max_speed = 1;
+
+ for (i=0; i<MAX_ASTEROIDS; i++)
+ asteroid[i].alive=0;
+ for (i=0; i<NUM_ASTEROIDS && NUM_ASTEROIDS<MAX_ASTEROIDS; i++){
+ // Generate the new position, avoiding the location of the ship
+ ok = 0;
+ while (!ok) {
+ x = rand()%(screen->w);
+ y = rand()%(screen->h);
+ dx = modwrap(x - tuxship.x,screen->w);
+ dy = modwrap(y - tuxship.y,screen->h);
+ if (dx*dx + dy*dy > safety_radius2)
+ ok = 1;
+ }
+ // Generate the new speed, making none of them stationary but none
+ // of them too fast
+ ok = 0;
+ while (!ok) {
+ xvel = rand()%(2*max_speed+1) - max_speed;
+ yvel = rand()%(2*max_speed+1) - max_speed;
+ speed2 = xvel*xvel + yvel*yvel;
+ if (speed2 != 0 && speed2 < max_speed*max_speed)
+ ok = 1;
+ }
+ //int FF_add_asteroid(int x, int y, int xspeed, int yspeed, int size, int angle, int angle_speed, int fact_number, int a, int b, int new_wave)
+ if(FF_game == FACTOROIDS_GAME){
+ FF_add_asteroid(x,y,
+ xvel,yvel,
+ rand()%2,
+ rand()%360, rand()%3,
+ (rand()%(31+(wave*wave))),
+ 0, 0,
+ 1);
+ }
+ else if(FF_game==FRACTIONS_GAME){
+ FF_add_asteroid(x,y,
+ xvel,yvel,
+ rand()%2,
+ rand()%360, rand()%3,
+ 0,
+ (rand()%(31+(wave*2))), (rand()%(80+(wave*wave))),
+ 1);
+ }
+ }
+
+ if(wave != 1)
+ {
+ while(i < 35)
+ {
+ i++;
+ rect.x=(screen->w/2)-(images[IMG_GOOD]->w/2);
+ rect.y=(screen->h/2)-(images[IMG_GOOD]->h/2);
+ FF_draw();
+ SDL_BlitSurface(images[IMG_GOOD],NULL,screen,&rect);
+ SDL_Flip(screen);
+
+ last_time = now_time;
+ now_time = SDL_GetTicks();
+
+ if (now_time < last_time + MS_PER_FRAME)
+ {
+ now_time = (last_time + MS_PER_FRAME) - now_time; // this holds the delay
+ if (now_time > MS_PER_FRAME)
+ now_time = MS_PER_FRAME;
+ SDL_Delay(now_time);
+ }
+ }
+ }
+}
+
+static int FF_over(int game_status)
+{
+ Uint32 last_time, now_time;
+ SDL_Rect dest_message;
+ SDL_Event event;
+
+
+ /* TODO: need better "victory" screen with animation, special music, etc., */
+ /* as well as options to review missed questions, play again using missed */
+ /* questions as question list, etc. */
+ switch (game_status)
+ {
+ case GAME_OVER_WON:
+ {
+ int looping = 1;
+// int frame;
+ /* set up victory message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER_WON]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER_WON]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER_WON]->w;
+ dest_message.h = images[IMG_GAMEOVER_WON]->h;
+
+ do
+ {
+ //frame++;
+ last_time = SDL_GetTicks();
+
+ /* draw flashing victory message: */
+ //if (((frame / 2) % 4))
+ //{
+ SDL_BlitSurface(images[IMG_GAMEOVER_WON], NULL, screen, &dest_message);
+ //}
+
+
+ SDL_Flip(screen);
+
+ while (1)
+ {
+ SDL_PollEvent(&event);
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ break;
+ }
+ }
+
+ now_time = SDL_GetTicks();
+
+ if (now_time < last_time + MS_PER_FRAME)
+ SDL_Delay(last_time + MS_PER_FRAME - now_time);
+ }
+ while (looping);
+ break;
+ }
+
+ case GAME_OVER_ERROR:
+ {
+ DEBUGMSG(debug_factoroids, "game() exiting with error");
+ }
+ case GAME_OVER_LOST:
+ case GAME_OVER_OTHER:
+ {
+ int looping = 1;
+
+ /* set up GAMEOVER message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER]->w;
+ dest_message.h = images[IMG_GAMEOVER]->h;
+
+ do
+ {
+ //frame++;
+ last_time = SDL_GetTicks();
+
+ SDL_BlitSurface(images[IMG_GAMEOVER], NULL, screen, &dest_message);
+ SDL_Flip(screen);
+
+ while (1)
+ {
+ SDL_PollEvent(&event);
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ break;
+ }
+ }
+
+ now_time = SDL_GetTicks();
+
+ if (now_time < last_time + MS_PER_FRAME)
+ SDL_Delay(last_time + MS_PER_FRAME - now_time);
+ }
+ while (looping);
+
+ break;
+ }
+
+ case GAME_OVER_ESCAPE:
+ {
+ break;
+ }
+
+ case GAME_OVER_WINDOW_CLOSE:
+ {
+ break;
+ }
+
+ }
+
+ FF_exit_free();
+
+ /* Save score in case needed for high score table: */
+ Opts_SetLastScore(score);
+
+ /* Return the chosen command: */
+ if (GAME_OVER_WINDOW_CLOSE == game_status)
+ {
+ /* program exits: */
+ FF_exit_free();;
+ return 1;
+ }
+ else
+ {
+ /* return to title() screen: */
+ return 0;
+ }
+}
+
+
+static void FF_exit_free()
+{
+ int i = 0;
+
+ free(asteroid);
+
+ for(i = 0; i < NUM_OF_ROTO_IMGS; i++)
+ {
+ if (IMG_tuxship[i])
+ {
+ SDL_FreeSurface(IMG_tuxship[i]);
+ IMG_tuxship[i] = NULL;
+ }
+ if (IMG_asteroids1[i])
+ {
+ SDL_FreeSurface(IMG_asteroids1[i]);
+ IMG_asteroids1[i] = NULL;
+ }
+ if (IMG_asteroids2[i])
+ {
+ SDL_FreeSurface(IMG_asteroids2[i]);
+ IMG_asteroids2[i] = NULL;
+ }
+ }
+
+// SDL_FreeSurface(*IMG_asteroids1);
+// SDL_FreeSurface(*IMG_asteroids2);
+// SDL_FreeSurface(*IMG_tuxship);
+
+ if (bkgd)
+ {
+ SDL_FreeSurface(bkgd);
+ bkgd = NULL;
+ }
+ if (scaled_bkgd)
+ {
+ SDL_FreeSurface(scaled_bkgd);
+ scaled_bkgd = NULL;
+ }
+}
+
+/******************* Math Funcs ***********************/
+
+/* Return 1 if the number is prime and 0 if its not */
+int is_prime(int num)
+{
+ int i;
+ if (num==0 || num==1 || num==-1) return 1;
+ else if (num > 0)
+ {
+
+ for(i = 2; i < num; i++)
+ {
+ if(num%i == 0) return 0;
+ }
+ }
+ else if (num < 0)
+ {
+ for(i = 2; i > num; i--)
+ {
+ if(num%i == 0) return 0;
+ }
+ }
+ return 1;
+}
+
+int is_simplified(int a, int b)
+{
+ int i;
+ for(i=2; i<1000; i++)
+ if(((a%i)==0)&&((b%i)==0))
+ return 0;
+ return 1;
+}
+/*** Fast cos by Bill***/
+
+int fast_cos(int angle)
+{
+ angle = (angle % 45);
+
+ if (angle < 12)
+ return(trig[angle]);
+ else if (angle < 23)
+ return(-trig[10 - (angle - 12)]);
+ else if (angle < 34)
+ return(-trig[angle - 22]);
+ else
+ return(trig[45 - angle]);
+}
+
+
+/*** Sine based on fast cosine..., by Bill ***/
+
+int fast_sin(int angle)
+{
+ return(- fast_cos((angle + 11) % 45));
+}
+
+/******************* LASER FUNCTIONS *********************/
+
+/*Return -1 if no laser is available*/
+int FF_add_laser(void)
+{
+ int i, k, zapIndex, zapScore;
+ float ux, uy, s, smin,dx,dy,dx2, dy2, d2, thresh;
+ int screensize;
+ SDL_Surface *asteroid_image;
+
+ const float inside_factor = 0.9*0.9;
+
+ screensize = screen->w;
+ if (screensize < screen->h)
+ screensize = screen->h;
+
+ for(i=0; i<=MAX_LASER; i++)
+ {
+ if(laser[i].alive==0)
+ {
+ // Fire the laser
+ laser[i].alive=1;
+ laser[i].x=tuxship.centerx;
+ laser[i].y=tuxship.centery;
+ laser[i].angle=tuxship.angle;
+ laser[i].count=15;
+
+ ux = cos((float)laser[i].angle * DEG_TO_RAD);
+ uy = -sin((float)laser[i].angle * DEG_TO_RAD);
+ laser[i].destx = laser[i].x + (int)(ux * screensize);
+ laser[i].desty = laser[i].y + (int)(uy * screensize);
+
+ // Check to see if it hits asteroids---we only check when it
+ // just starts firing, "drift" later doesn't count!
+ // We describe the laser path as p = p0 + s*u, where
+ // p0 = (x0,y0) is the initial position vector (i.e., the ship)
+ // u = (ux,uy) is the unit vector of the laser's direction
+ // s (a scalar) is the distance along the laser (s >= 0)
+ // With this parametrization, it's easy to calculate the
+ // closest approach to the asteroid center, etc.
+ zapIndex = -1; // keep track of the closest "hit" asteroid
+ zapScore = 0;
+ smin = 10*screensize;
+
+
+ for (k=0; k<MAX_ASTEROIDS; k++)
+ {
+ if (!asteroid[k].alive)
+ continue;
+ asteroid_image = get_asteroid_image(asteroid[k].size,asteroid[k].angle);
+ dx = asteroid[k].x + asteroid_image->w/2 - laser[i].x;
+ dy = asteroid[k].y + asteroid_image->h/2 - laser[i].y;
+ // Find distance along laser of closest approach to asteroid center
+ s = dx*ux + dy*uy;
+ if (s >= 0) // don't worry about it if it's in the opposite direction! (i.e., behind the ship)
+ {
+ // Find the distance to the asteroid center at closest approach
+ dx2 = dx - s*ux;
+ dy2 = dy - s*uy;
+ d2 = dx2*dx2 + dy2*dy2;
+ thresh = (asteroid_image->h)/2;
+ thresh = thresh*thresh*inside_factor;
+ if (d2 < thresh)
+ {
+ // The laser intersects the asteroid. Check to see if
+ // the answer works
+
+ if( (FF_game==FACTOROIDS_GAME && (asteroid[k].isprime && ((num==asteroid[k].fact_number)||(num==0)))) ||
+ (FF_game==FRACTIONS_GAME && (asteroid[k].isprime && num==0))
+ )
+ {
+ // It's valid, check to see if it's closest
+ if (s < smin)
+ {
+ // It's the closest yet examined but has not score
+ smin = s;
+ zapIndex = k;
+ zapScore = 0;
+ }
+ }
+ else if((FF_game==FACTOROIDS_GAME && num > 1 && ((asteroid[k].fact_number%num)==0) && (num!=asteroid[k].fact_number)) ||
+ (FF_game==FRACTIONS_GAME && num > 1 && ((asteroid[k].a%num)==0) && ((asteroid[k].b%num)==0) && (num!=asteroid[k].fact_number)))
+ {
+ // It's valid, check to see if it's closest
+ if (s < smin)
+ {
+ // It's the closest yet examined and has socre
+ smin = s;
+ zapIndex = k;
+ zapScore = 1;
+ }
+ }
+ }
+ }
+ }
+
+ // Handle the destruction, score, and extra lives
+ if (zapIndex >= 0) // did we zap one?
+ {
+ isdead = 1;
+ laser[i].destx = laser[i].x + (int)(ux * smin);
+ laser[i].desty = laser[i].y + (int)(uy * smin);
+ FF_destroy_asteroid(zapIndex,2*ux,2*uy);
+ playsound(SND_SIZZLE);
+
+ if (floor((float)score/100) < floor((float)(score+num)/100))
+ tuxship.lives++;
+ if(zapScore)
+ {
+ score += num;
+ }
+ }
+ return 1;
+ }
+ }
+ fprintf(stderr, "Laser could't be created!\n");
+ return -1;
+}
+
+/******************* ASTEROIDS FUNCTIONS *******************/
+
+
+
+static int FF_add_asteroid(int x, int y, int xspeed, int yspeed, int size, int angle, int angle_speed, int fact_number, int a, int b, int new_wave)
+{
+ int i;
+ for(i=0; i<MAX_ASTEROIDS; i++){
+ if(asteroid[i].alive==0)
+ {
+ asteroid[i].alive=1;
+ asteroid[i].rx=x;
+ asteroid[i].ry=y;
+ asteroid[i].angle=angle;
+ asteroid[i].angle_speed=angle_speed;
+ asteroid[i].y=(asteroid[i].ry - (IMG_tuxship[asteroid[i].angle/DEG_PER_ROTATION]->h/2));
+ asteroid[i].x=(asteroid[i].rx - (IMG_tuxship[asteroid[i].angle/DEG_PER_ROTATION]->w/2));
+ asteroid[i].yspeed=yspeed;
+ asteroid[i].xspeed=xspeed;
+
+ if(FF_game==FACTOROIDS_GAME){
+
+ asteroid[i].fact_number=fact_number;
+
+ while(!asteroid[i].fact_number)
+ asteroid[i].fact_number=rand()%80;
+
+ asteroid[i].isprime=is_prime(asteroid[i].fact_number);
+
+ }else if(FF_game==FRACTIONS_GAME){
+
+ asteroid[i].a=a;
+ asteroid[i].b=b;
+
+ while(!asteroid[i].a)
+ asteroid[i].a=rand()%80;
+ while(!asteroid[i].b)
+ asteroid[i].b=rand()%80;
+
+ asteroid[i].isprime=is_simplified(asteroid[i].a,asteroid[i].b);
+ }
+
+ if(new_wave){
+ if(tuxship.x-50<asteroid[i].x+80 &&
+ tuxship.x+50>asteroid[i].x &&
+ tuxship.y-50<asteroid[i].y+80 &&
+ tuxship.y+50>asteroid[i].y &&
+ tuxship.lives>0 &&
+ asteroid[i].alive){
+ asteroid[i].rx=asteroid[i].rx+300;
+ asteroid[i].ry=asteroid[i].ry+300;
+ }
+ }
+
+ if(asteroid[i].isprime)
+ {
+ asteroid[i].size=0;
+ asteroid[i].centerx=(images[IMG_ASTEROID1]->w/2)+asteroid[i].x;
+ asteroid[i].centery=(images[IMG_ASTEROID1]->h/2)+asteroid[i].y;
+ asteroid[i].radius=(images[IMG_ASTEROID1]->h/2);
+
+ }
+ else if(!asteroid[i].isprime)
+ {
+ asteroid[i].size=1;
+ asteroid[i].centerx=(images[IMG_ASTEROID2]->w/2)+asteroid[i].x;
+ asteroid[i].centery=(images[IMG_ASTEROID2]->h/2)+asteroid[i].y;
+ asteroid[i].radius=(images[IMG_ASTEROID1]->h/2);
+ }
+
+ while (asteroid[i].xspeed==0)
+ {
+ asteroid[i].xspeed = ((rand() % 3) - 1)*2;
+ }
+ return 1;
+ }
+ }
+ fprintf(stderr, "Asteroid could't be created!\n");
+ return -1;
+}
+
+int FF_destroy_asteroid(int i, float xspeed, float yspeed)
+{
+ if(asteroid[i].alive==1){
+ isdead=1;
+ xdead=asteroid[i].x;
+ ydead=asteroid[i].y;
+ if(asteroid[i].size>0){
+ /* Break the rock into two smaller ones! */
+ if(num!=0){
+
+
+//static int FF_add_asteroid(int x, int y, int xspeed, int yspeed, int size, int angle, int
+// angle_speed, int fact_number, int a, int b, int new_wave
+
+ if(FF_game==FACTOROIDS_GAME){
+ FF_add_asteroid(asteroid[i].rx,
+ asteroid[i].ry,
+ asteroid[i].xspeed + (xspeed - yspeed)/2,
+ asteroid[i].yspeed + (yspeed + xspeed)/2,
+ 0,
+ rand()%360, rand()%3, (int)(asteroid[i].fact_number/num),
+ 0, 0,
+ 0);
+
+ FF_add_asteroid(asteroid[i].rx,
+ asteroid[i].ry,
+ asteroid[i].xspeed + (xspeed + yspeed)/2,
+ asteroid[i].yspeed + (yspeed - xspeed)/2,
+ 0,
+ rand()%360, rand()%3, num,
+ 0, 0,
+ 0);
+ }
+ else if(FF_game==FRACTIONS_GAME){
+ FF_add_asteroid(asteroid[i].rx,
+ asteroid[i].ry,
+ ((asteroid[i].xspeed + xspeed) / 2),
+ (asteroid[i].yspeed + yspeed),
+ 0,
+ rand()%360, rand()%3, 0,
+ (int)(asteroid[i].a/num), (int)(asteroid[i].b/num),
+ 0);
+
+ FF_add_asteroid(asteroid[i].rx,
+ asteroid[i].ry,
+ (asteroid[i].xspeed + xspeed),
+ ((asteroid[i].yspeed + yspeed) / 2),
+ 0,
+ rand()%360, rand()%3, 0,
+ (int)(asteroid[i].b/num), (int)(asteroid[i].a/num),
+ 0);
+ }
+ }
+ }
+
+ /* Destroy the old asteroid */
+
+ asteroid[i].alive=0;
+ return 1;
+ }
+ return 0;
+}
+
+/************** MODIFIED FUNCS FROM game.c and titlescreen.c ******************/
+
+void FF_ShowMessage(char* str1, char* str2, char* str3, char* str4)
+{
+ SDL_Surface *s1, *s2, *s3, *s4;
+ SDL_Rect loc;
+
+ s1 = s2 = s3 = s4 = NULL;
+
+ DEBUGMSG(debug_factoroids, "ShowMessage() - creating text\n" );
+
+ if (str1)
+ s1 = BlackOutline(str1, DEFAULT_MENU_FONT_SIZE, &white);
+ if (str2)
+ s2 = BlackOutline(str2, DEFAULT_MENU_FONT_SIZE, &white);
+ if (str3)
+ s3 = BlackOutline(str3, DEFAULT_MENU_FONT_SIZE, &white);
+ /* When we get going with i18n may need to modify following - see below: */
+ if (str4)
+ s4 = BlackOutline(str4, DEFAULT_MENU_FONT_SIZE, &white);
+
+ DEBUGMSG(debug_factoroids, "ShowMessage() - drawing screen\n" );
+
+ /* Draw lines of text (do after drawing Tux so text is in front): */
+ if (s1)
+ {
+ loc.x = (screen->w / 2) - (s1->w/2);
+ loc.y = (screen->h / 2) + 10;
+ SDL_BlitSurface( s1, NULL, screen, &loc);
+ }
+ if (s2)
+ {
+ loc.x = (screen->w / 2) - (s2->w/2);
+ loc.y = (screen->h / 2) + 80;
+ SDL_BlitSurface( s2, NULL, screen, &loc);
+ }
+ if (s3)
+ {
+ loc.x = (screen->w / 2) - (s3->w/2);
+ loc.y = (screen->h / 2) + 130;
+ SDL_BlitSurface( s3, NULL, screen, &loc);
+ }
+ if (s4)
+ {
+ loc.x = (screen->w / 2) - (s4->w/2);
+ loc.y = (screen->h / 2) + 180;
+ SDL_BlitSurface( s4, NULL, screen, &loc);
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+ SDL_FreeSurface(s1);
+ SDL_FreeSurface(s2);
+ SDL_FreeSurface(s3);
+ SDL_FreeSurface(s4);
+}
+
+
+void game_handle_user_events(void)
+{
+ SDL_Event event;
+ SDLKey key;
+
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT)
+ {
+ SDL_quit_received = 1;
+ quit = 1;
+ }
+ if (event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ key = game_mouse_event(event);
+ }
+ if (event.type == SDL_KEYDOWN ||
+ event.type == SDL_KEYUP)
+ {
+ key = event.key.keysym.sym;
+
+ if (event.type == SDL_KEYDOWN)
+ {
+ if (key == SDLK_ESCAPE)
+ {
+ // Return to menu!
+ escape_received = 1;
+
+ }
+
+ // Key press...
+
+ if (key == SDLK_RIGHT)
+ {
+ // Rotate CW
+
+ left_pressed = 0;
+ right_pressed = 1;
+ }
+ else if (key == SDLK_LEFT)
+ {
+ // Rotate CCW
+
+ left_pressed = 1;
+ right_pressed = 0;
+ }
+ else if (key == SDLK_UP)
+ {
+ // Thrust!
+
+ up_pressed = 1;
+ }
+
+ if (key == SDLK_LSHIFT || key == SDLK_RSHIFT)
+ {
+ // Respawn now (if applicable)
+ shift_pressed = 1;
+ }
+
+ if (key == SDLK_TAB || key == SDLK_p)
+ {
+ /* [TAB] or [P]: Pause! (if settings allow) */
+ if (Opts_AllowPause())
+ {
+ paused = 1;
+ }
+ }
+ /* The rest of the keys control the numeric answer console: */
+
+ if (key >= SDLK_0 && key <= SDLK_9)
+ {
+ /* [0]-[9]: Add a new digit: */
+ digits[0] = digits[1];
+ digits[1] = digits[2];
+ digits[2] = key - SDLK_0;
+ tux_pressing = 1;
+ playsound(SND_SHIELDSDOWN);
+ }
+ else if (key >= SDLK_KP0 && key <= SDLK_KP9)
+ {
+ /* Keypad [0]-[9]: Add a new digit: */
+ digits[0] = digits[1];
+ digits[1] = digits[2];
+ digits[2] = key - SDLK_KP0;
+ tux_pressing = 1;
+ playsound(SND_SHIELDSDOWN);
+ }
+ /* support for negative answer input DSB */
+ else if ((key == SDLK_MINUS || key == SDLK_KP_MINUS))
+ //&& MC_AllowNegatives()) /* do nothing unless neg answers allowed */
+ {
+ /* allow player to make answer negative: */
+ neg_answer_picked = 1;
+ tux_pressing = 1;
+ playsound(SND_SHIELDSDOWN);
+ }
+ else if ((key == SDLK_PLUS || key == SDLK_KP_PLUS))
+ //&& MC_AllowNegatives()) /* do nothing unless neg answers allowed */
+ {
+ /* allow player to make answer positive: */
+ neg_answer_picked = 0;
+ tux_pressing = 1;
+ playsound(SND_SHIELDSDOWN);
+ }
+ else if (key == SDLK_BACKSPACE ||
+ key == SDLK_CLEAR ||
+ key == SDLK_DELETE)
+ {
+ /* [BKSP]: Clear digits! */
+ digits[0] = 0;
+ digits[1] = 0;
+ digits[2] = 0;
+ tux_pressing = 1;
+ playsound(SND_SHIELDSDOWN);
+ }
+ else if (key == SDLK_RETURN ||
+ key == SDLK_KP_ENTER ||
+ key == SDLK_SPACE)
+ {
+ shoot_pressed = 1;
+ doing_answer = 1;
+ playsound(SND_LASER);
+ }
+
+
+ }
+ else if (event.type == SDL_KEYUP)
+ {
+ // Key release...
+
+ if (key == SDLK_RIGHT)
+ {
+ right_pressed = 0;
+ }
+ else if (key == SDLK_LEFT)
+ {
+ left_pressed = 0;
+ }
+ else if (key == SDLK_UP)
+ {
+ up_pressed = 0;
+ }
+ if (key == SDLK_LSHIFT ||
+ key == SDLK_RSHIFT)
+ {
+ // Respawn now (if applicable)
+ shift_pressed = 0;
+ }
+ }
+ }
+
+#ifdef JOY_YES
+ else if (event.type == SDL_JOYBUTTONDOWN &&
+ player_alive)
+ {
+ if (event.jbutton.button == JOY_B)
+ {
+ shoot_pressed = 1;
+ }
+ else if (event.jbutton.button == JOY_A)
+ {
+ // Thrust:
+
+ up_pressed = 1;
+ }
+ else
+ {
+ shift_pressed = 1;
+ }
+ }
+ else if (event.type == SDL_JOYBUTTONUP)
+ {
+ if (event.jbutton.button == JOY_A)
+ {
+ // Stop thrust:
+
+ up_pressed = 0;
+ }
+ else if (event.jbutton.button != JOY_B)
+ {
+ shift_pressed = 0;
+ }
+ }
+ else if (event.type == SDL_JOYAXISMOTION)
+ {
+ if (event.jaxis.axis == JOY_X)
+ {
+ if (event.jaxis.value < -256)
+ {
+ left_pressed = 1;
+ right_pressed = 0;
+ }
+ else if (event.jaxis.value > 256)
+ {
+ left_pressed = 0;
+ right_pressed = 1;
+ }
+ else
+ {
+ left_pressed = 0;
+ right_pressed = 0;
+ }
+ }
+ }
+#endif
+
+ }
+
+}
+
+static int game_mouse_event(SDL_Event event)
+{
+ int keypad_w, keypad_h, x, y, row, column;
+ SDLKey key = SDLK_UNKNOWN;
+
+ keypad_w = 0;
+ keypad_h = 0;
+
+ /* Check to see if user clicked exit button: */
+ /* The exit button is in the upper right corner of the screen: */
+ if ((event.button.x >= (screen->w - images[IMG_STOP]->w))
+ &&(event.button.y <= images[IMG_STOP]->h))
+ {
+ key = SDLK_ESCAPE;
+ //game_key_event(key);
+ escape_received = 1;
+ quit = 1;
+ return -1;
+ }
+
+ /* get out unless we really are using keypad */
+ if ( level_start_wait
+ || Opts_DemoMode()
+ || !Opts_GetGlobalOpt(USE_KEYPAD))
+ {
+ return -1;
+ }
+
+
+ /* make sure keypad image is valid and has non-zero dimensions: */
+ /* FIXME maybe this checking should be done once at the start */
+ /* of game() rather than with every mouse click */
+ if (1)//MC_AllowNegatives())
+ {
+ if (!images[IMG_KEYPAD])
+ return -1;
+ else
+ {
+ keypad_w = images[IMG_KEYPAD]->w;
+ keypad_h = images[IMG_KEYPAD]->h;
+ }
+ }
+ else
+ {
+ if (!images[IMG_KEYPAD_NO_NEG])
+ return -1;
+ else
+ {
+ keypad_w = images[IMG_KEYPAD]->w;
+ keypad_h = images[IMG_KEYPAD]->h;
+ }
+ }
+
+ if (!keypad_w || !keypad_h)
+ {
+ return -1;
+ }
+
+
+ /* only proceed if click falls within keypad: */
+ if (!((event.button.x >=
+ (screen->w / 2) - (keypad_w / 2) &&
+ event.button.x <=
+ (screen->w / 2) + (keypad_w / 2) &&
+ event.button.y >=
+ (screen->h / 2) - (keypad_h / 2) &&
+ event.button.y <=
+ (screen->h / 2) + (keypad_h / 2))))
+ /* click outside of keypad - do nothing */
+ {
+ return -1;
+ }
+
+ else /* click was within keypad */
+ {
+ x = (event.button.x - ((screen->w / 2) - (keypad_w / 2)));
+ y = (event.button.y - ((screen->h / 2) - (keypad_h / 2)));
+
+ /* Now determine what onscreen key was pressed */
+ /* */
+ /* The on-screen keypad has a 4 x 4 layout: */
+ /* */
+ /* ********************************* */
+ /* * * * * * */
+ /* * 7 * 8 * 9 * - * */
+ /* * * * * * */
+ /* ********************************* */
+ /* * * * * * */
+ /* * 4 * 5 * 6 * * */
+ /* * * * * * */
+ /* ************************* + * */
+ /* * * * * * */
+ /* * 1 * 2 * 3 * * */
+ /* * * * * * */
+ /* ********************************* */
+ /* * * * */
+ /* * 0 * Enter * */
+ /* * * * */
+ /* ********************************* */
+ /* */
+ /* The following code simply figures out the */
+ /* row and column based on x and y and looks */
+ /* up the SDlKey accordingly. */
+
+ column = x/((keypad_w)/4);
+ row = y/((keypad_h)/4);
+
+ /* make sure row and column are sane */
+ if (column < 0
+ || column > 3
+ || row < 0
+ || row > 3)
+ {
+ printf("\nIllegal row or column value!\n");
+ return -1;
+ }
+
+ /* simple but tedious - I am sure this could be done more elegantly */
+
+ if (0 == row)
+ {
+ if (0 == column)
+ key = SDLK_7;
+ if (1 == column)
+ key = SDLK_8;
+ if (2 == column)
+ key = SDLK_9;
+ if (3 == column)
+ key = SDLK_MINUS;
+ }
+ if (1 == row)
+ {
+ if (0 == column)
+ key = SDLK_4;
+ if (1 == column)
+ key = SDLK_5;
+ if (2 == column)
+ key = SDLK_6;
+ if (3 == column)
+ key = SDLK_PLUS;
+ }
+ if (2 == row)
+ {
+ if (0 == column)
+ key = SDLK_1;
+ if (1 == column)
+ key = SDLK_2;
+ if (2 == column)
+ key = SDLK_3;
+ if (3 == column)
+ key = SDLK_PLUS;
+ }
+ if (3 == row)
+ {
+ if (0 == column)
+ key = SDLK_0;
+ if (1 == column)
+ key = SDLK_RETURN;
+ if (2 == column)
+ key = SDLK_RETURN;
+ if (3 == column)
+ key = SDLK_RETURN;
+ }
+
+ if (key == SDLK_UNKNOWN)
+ {
+ return -1;
+ }
+
+ /* now can proceed as if keyboard was used */
+ //game_key_event(key);
+ return key;
+ }
+}
+
+
+static int check_exit_conditions(void)
+{
+ if(SDL_quit_received)
+ {
+ return GAME_OVER_WINDOW_CLOSE;
+ }
+
+ if(escape_received)
+ {
+ return GAME_OVER_ESCAPE;
+ }
+ if(tuxship.lives<=0)
+ {
+ return GAME_OVER_LOST;
+ }
+ if(score>=19999 || wave >= 20 )
+ {
+ return GAME_OVER_WON;
+ }
+ /* determine if game lost (i.e. all cities blown up): */
+ /*if (!num_cities_alive)
+ {
+ if (gameover_counter < 0)
+ gameover_counter = GAMEOVER_COUNTER_START;
+ gameover_counter--;
+ if (gameover_counter == 0)
+ return GAME_OVER_LOST;
+ }*/
+
+ /* determine if game won (i.e. all questions in mission answered correctly): */
+ /*if (MC_MissionAccomplished())
+ {
+ return GAME_OVER_WON;
+ }*/
+
+ /* Could have situation where mathcards doesn't have more questions */
+ /* even though not all questions answered correctly: */
+ /*if (!MC_TotalQuestionsLeft())
+ {
+ return GAME_OVER_OTHER;
+ }*/
+
+ /* Need to get out if no comets alive and MathCards has no questions left in list, */
+ /* even though MathCards thinks there are still questions "in play". */
+ /* This SHOULD NOT HAPPEN and means we have a bug somewhere. */
+ /* if (!MC_ListQuestionsLeft() && !num_comets_alive)
+ {
+ return GAME_OVER_ERROR;
+ }
+ */
+ /* If using demo mode, see if counter has run out: */
+ /*if (Opts_DemoMode())
+ {
+ if (demo_countdown <= 0 )
+ return GAME_OVER_OTHER;
+ }*/
+
+ /* if we made it to here, the game goes on! */
+ return GAME_IN_PROGRESS;
+}
diff --git a/src/factoroids.h b/src/factoroids.h
new file mode 100644
index 0000000..aa5c76d
--- /dev/null
+++ b/src/factoroids.h
@@ -0,0 +1,23 @@
+/************************************************************
+ * factoroids.h *
+ * *
+ * Description: Contains headers for the fractor and *
+ * fraction activities. *
+ * *
+ * Autor: Jesus M. Mager H. (fongog at gmail.com) 2008 *
+ * Copyright: GPL v3 or later *
+ * *
+ * TuxMath *
+ * Part of "Tux4Kids" Project *
+ * http://tux4kids.alioth.debian.org/ *
+ ************************************************************/
+
+#ifndef FACTOROIDS_H
+#define FACTOROIDS_H
+
+// Used in titleecreen.c
+
+int factors(void);
+int fractions(void);
+
+#endif
diff --git a/src/fileops.c b/src/fileops.c
new file mode 100644
index 0000000..b62428c
--- /dev/null
+++ b/src/fileops.c
@@ -0,0 +1,2302 @@
+/*
+* C Implementation: fileops.c
+*
+* (Note: read_config_file() was made possible by studying the file prefs.c in gtkpod:
+* URL: http://www.gtkpod.org/
+* URL: http://gtkpod.sourceforge.net/
+* Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>.
+* Licensed under GNU GPL v2.
+* This code is a nearly complete rewrite but I would like to express my thanks.)
+*
+*
+* Description: File operations - together, fileops.h and fileops.c contain
+* all code involving disk operations. The intention is to make it easier to
+* port tuxmath to other operating systems, as code to read and write as
+* well as paths and file locations may be more OS-dependent.
+*
+* This file contains functions to read and write config files.
+* The config file contains name-value pairs, one pair per line, to control
+* settings for the behavior of Tuxmath.
+*
+* Code for loading program data from disk is now also found here.
+*
+* Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2006
+*
+* Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL)
+*
+*/
+
+#include <stdio.h>
+
+//#include "config.h"
+
+/* Tuxmath includes: */
+#include "globals.h"
+#include "fileops.h"
+#include "setup.h"
+#include "mathcards.h"
+#include "options.h"
+#include "highscore.h"
+#include "lessons.h"
+#include "scandir.h"
+
+/* OS includes - NOTE: these may not be very portable */
+#include <dirent.h> /* for opendir() */
+#include <sys/stat.h>/* for mkdir() */
+#include <unistd.h> /* for getcwd() */
+#include <sys/types.h> /* for umask() */
+
+/* Standard C includes: */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <time.h>
+
+
+/* Used by both write_pregame_summary() and */
+/* write_postgame_summary() so defined with */
+/* file scope: */
+#ifdef BUILD_MINGW32
+#define SUMMARY_EXTENSION ".txt"
+#else
+#define SUMMARY_EXTENSION ""
+#endif
+
+static char* summary_filenames[NUM_SUMMARIES] = {
+ "summary1" SUMMARY_EXTENSION,
+ "summary2" SUMMARY_EXTENSION,
+ "summary3" SUMMARY_EXTENSION,
+ "summary4" SUMMARY_EXTENSION,
+ "summary5" SUMMARY_EXTENSION,
+ "summary6" SUMMARY_EXTENSION,
+ "summary7" SUMMARY_EXTENSION,
+ "summary8" SUMMARY_EXTENSION,
+ "summary9" SUMMARY_EXTENSION,
+ "summary10" SUMMARY_EXTENSION
+};
+
+/* local function prototypes: */
+static int find_tuxmath_dir(void);
+static int str_to_bool(const char* val);
+static int read_config_file(FILE* fp, int file_type);
+static int write_config_file(FILE* fp, int verbose);
+static int is_lesson_file(const struct dirent *lfdirent);
+static int read_goldstars(void);
+static int read_lines_from_file(FILE *fp,char ***lines);
+static int parse_option(const char* name, int val, int file_type);
+static void dirname_up(char *dirname);
+static char* get_user_name(void);
+static char* get_file_name(char *fullpath);
+
+
+/* Mingw does not have localtime_r(): */
+/* (this replacement is Windows-specific, so also check for Win32) */
+#ifndef HAVE_LOCALTIME_R
+#ifdef WIN32
+#define localtime_r( _clock, _result ) \
+ ( *(_result) = *localtime( (_clock) ), \
+ (_result) )
+#endif
+#endif
+
+
+/*************************************************************************
+Using Autoconf's "config.h", we include our portability replacements
+for scandir() and alphasort() if necessary:
+*************************************************************************/
+
+#ifndef HAVE_SCANDIR
+#include "scandir.h"
+#endif /* end of scandir() replacements */
+
+/* fix HOME on windows */
+#ifdef BUILD_MINGW32
+#include <windows.h>
+
+
+
+
+
+
+/* STOLEN from tuxpaint */
+
+/*
+ Removes a single '\' or '/' from end of path
+*/
+static char *remove_slash(char *path)
+{
+ int len = strlen(path);
+
+ if (!len)
+ return path;
+
+ if (path[len-1] == '/' || path[len-1] == '\\')
+ path[len-1] = 0;
+
+ return path;
+}
+
+/*
+ Read access to Windows Registry
+*/
+static HRESULT ReadRegistry(const char *key, const char *option, char *value, int size)
+{
+ LONG res;
+ HKEY hKey = NULL;
+
+ res = RegOpenKeyEx(HKEY_CURRENT_USER, key, 0, KEY_READ, &hKey);
+ if (res != ERROR_SUCCESS)
+ goto err_exit;
+ res = RegQueryValueEx(hKey, option, NULL, NULL, (LPBYTE)value, (LPDWORD)&size);
+ if (res != ERROR_SUCCESS)
+ goto err_exit;
+ res = ERROR_SUCCESS;
+
+err_exit:
+ if (hKey) RegCloseKey(hKey);
+ return HRESULT_FROM_WIN32(res);
+}
+
+
+/*
+ Returns heap string containing default application data path.
+ Creates suffix subdirectory (only one level).
+ E.g. C:\Documents and Settings\jfp\Application Data\suffix
+*/
+char *GetDefaultSaveDir(const char *suffix)
+{
+ char prefix[MAX_PATH];
+ char path[2*MAX_PATH];
+ const char *key = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
+ const char *option = "AppData";
+ HRESULT hr = S_OK;
+
+ if (SUCCEEDED(hr = ReadRegistry(key, option, prefix, sizeof(prefix))))
+ {
+ remove_slash(prefix);
+ snprintf(path, sizeof(path), "%s/%s", prefix, suffix);
+ _mkdir(path);
+ return strdup(path);
+ }
+ return strdup("userdata");
+}
+
+
+/* Windows XP: User/App Data/TuxMath/ */
+/* Windows 98/ME: TuxMath install dir/userdata/Options */
+#define OPTIONS_SUBDIR ""
+#define OPTIONS_FILENAME "options.cfg"
+#define HIGHSCORE_FILENAME "highscores.txt"
+#define GOLDSTAR_FILENAME "goldstars.txt"
+#define USER_MENU_ENTRIES_FILENAME "user_menu_entries.txt"
+#define USER_LOGIN_QUESTIONS_FILENAME "user_login_questions.txt"
+#else
+
+# define get_home getenv("HOME")
+#define OPTIONS_SUBDIR "/.tuxmath"
+#define OPTIONS_FILENAME "options"
+#define HIGHSCORE_FILENAME "highscores"
+#define GOLDSTAR_FILENAME "goldstars"
+#define USER_MENU_ENTRIES_FILENAME "user_menu_entries"
+#define USER_LOGIN_QUESTIONS_FILENAME "user_login_questions"
+
+#endif
+
+
+/* This functions keep and returns the user data directory application path */
+/* FIXME?: currently the best way to test whether we're using the user's */
+/* home directory, or using a different path, is to test add_subdir (which */
+/* is 1 if we're using the user's ~/.tuxmath directory, 0 otherwise). Is */
+/* this a bad example of using 1 thing for 2 purposes? So far there are */
+/* no conflicts. */
+static char* user_data_dir = NULL;
+static int add_subdir = 1;
+static char* high_scores_file_path = NULL;
+
+/* A variable for storing the "current" config filename */
+static char* last_config_file_name = NULL;
+
+char *get_user_data_dir ()
+{
+ if (! user_data_dir)
+#ifdef BUILD_MINGW32
+ user_data_dir = GetDefaultSaveDir(PROGRAM_NAME);
+#else
+ user_data_dir = strdup(getenv("HOME"));
+#endif
+
+ return user_data_dir;
+}
+
+/* This function sets the user data directory, and also sets a flag
+ indicating that this should function as a .tuxmath directory, and
+ thus doesn't need the subdir appended. */
+void set_user_data_dir(const char *dirname)
+{
+ int len;
+
+ if (user_data_dir != NULL)
+ free(user_data_dir); // clear the previous setting
+
+ // Allocate space for the directory name. We do it with +2 because
+ // we have to leave room for a possible addition of a "/"
+ // terminator.
+ user_data_dir = (char*) malloc((strlen(dirname)+2)*sizeof(char));
+ if (user_data_dir == NULL) {
+ fprintf(stderr,"Error: insufficient memory for duplicating string %s.\n",dirname);
+ exit(EXIT_FAILURE);
+ }
+ strcpy(user_data_dir,dirname);
+
+ // Check to see that dirname is properly terminated
+ len = strlen(user_data_dir);
+ if (user_data_dir[len-1] != '/')
+ strcat(user_data_dir,"/");
+
+ // If the user supplies a homedir, interpret it literally and don't
+ // add .tuxmath
+ add_subdir = 0;
+}
+
+/* This gets the user data directory including the .tuxmath, if applicable */
+void get_user_data_dir_with_subdir(char *opt_path)
+{
+ strcpy(opt_path, get_user_data_dir());
+ if (add_subdir)
+ strcat(opt_path, OPTIONS_SUBDIR "/");
+}
+
+/* FIXME should have better file path (/etc or /usr/local/etc) and name */
+int read_global_config_file(void)
+{
+ FILE* fp;
+ fp = fopen(DATA_PREFIX "/missions/options", "r");
+ if (fp)
+ {
+ read_config_file(fp, GLOBAL_CONFIG_FILE);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+/* Attempts to read in user's config file - on a *nix system, */
+/* something like: /home/laura/.tuxmath/options */
+int read_user_config_file(void)
+{
+ FILE* fp;
+ char opt_path[PATH_MAX];
+
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, OPTIONS_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In read_user_config_file() full path to config file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ read_config_file(fp, USER_CONFIG_FILE);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* could not open config file: */
+ {
+ return 0;
+ }
+}
+
+/* Looks for matching file in various locations: */
+/* 1. Current working directory */
+/* 2. As an absolute path filename */
+/* 3. In tuxmath's missions directory. */
+/* 4. In missions/lessons directory. */
+/* 5. In missions/arcade directory. */
+/* 6. In user's own .tuxmath directory */
+/* FIXME redundant code - figure out way to iterate through above */
+int read_named_config_file(const char* fn)
+{
+ FILE* fp;
+ char opt_path[PATH_MAX];
+ /* Make compiler happy: */
+ const char* filename = (const char*)fn;
+
+ if (last_config_file_name != NULL)
+ free(last_config_file_name);
+ last_config_file_name = strdup(filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() filename is: = %s\n", filename);
+
+ /* First look in current working directory: */
+ getcwd(opt_path, PATH_MAX); /* get current working directory */
+ /* add separating '/' unless cwd is '/' : */
+ if (0 != strcmp("/", opt_path))
+ {
+ strcat(opt_path, "/");
+ }
+ strcat(opt_path, filename); /* tack on filename */
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (cwd)\n", opt_path);
+
+ fp = fopen(opt_path, "r"); /* try to open file */
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* try matching filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+
+ /* Next try matching filename as absolute: */
+ /* Supply leading '/' if not already there: */
+ if (0 == strncmp ("/", filename, 1))
+ {
+ strcpy(opt_path, filename);
+ }
+ else
+ {
+ strcpy(opt_path, "/");
+ strcat(opt_path, filename);
+ }
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (abs)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+
+ /* Next look in missions folder: */
+ strcpy(opt_path, DATA_PREFIX);
+ strcat(opt_path, "/missions/");
+ strcat(opt_path, filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (missions)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+ /* Next look in missions/lessons folder (for prepared "lessons curriculum"): */
+ strcpy(opt_path, DATA_PREFIX);
+ strcat(opt_path, "/missions/lessons/");
+ strcat(opt_path, filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (missions/lessons)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+ /* Next look in missions/arcade folder (for high score competition): */
+ strcpy(opt_path, DATA_PREFIX);
+ strcat(opt_path, "/missions/arcade/");
+ strcat(opt_path, filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (missions/arcade)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+ /* Look in user's hidden .tuxmath directory */
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (.tuxmath)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+
+ /* Look in user's home directory */
+ /* find $HOME and tack on file name: */
+ strcpy(opt_path, get_user_data_dir());
+ strcat(opt_path, "/");
+ strcat(opt_path, filename);
+
+ DEBUGMSG(debug_fileops, "In read_named_config_file() checking for %s (home)\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ DEBUGMSG(debug_fileops, "Found %s\n", opt_path);
+
+ if (read_config_file(fp, USER_CONFIG_FILE))
+ {
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* keep trying to match filename elsewhere */
+ {
+ fclose(fp);
+ fp = NULL;
+ }
+ }
+
+ /* Could not find file (or read it if found) in any location: */
+ DEBUGMSG(debug_fileops, "read_named_config_file() could not find/read: %s\n", opt_path);
+ return 0;
+}
+
+/* NOTE the cast to "const char*" just prevents compiler from complaining */
+static int is_lesson_file(const struct dirent *lfdirent)
+{
+ return (0 == strncasecmp((const char*)&(lfdirent->d_name), "lesson", 6));
+ /* FIXME Should somehow test each file to see if it is a tuxmath config file */
+}
+
+
+
+int parse_lesson_file_directory(void)
+{
+ char lesson_path[PATH_MAX]; //Path to lesson directory
+ char* fgets_return_val;
+ char name_buf[NAME_BUF_SIZE];
+ int nchars;
+
+ struct dirent **lesson_list_dirents = NULL;
+ FILE* tempFile = NULL;
+
+ int i = 0;
+ int lessonIterator = 0; //Iterator over matching files in lesson dir
+ int length = 0;
+ int lessons = 0; //Iterator over accepted (& parsed) lesson files
+
+ num_lessons = 0;
+
+ /* find the directory containing the lesson files: */
+ nchars = snprintf(lesson_path, PATH_MAX, "%s/missions/lessons", DATA_PREFIX);
+ if (nchars < 0 || nchars >= PATH_MAX) {
+ perror("formatting lesson directory");
+ return 0;
+ }
+
+ DEBUGMSG(debug_fileops, "lesson_path is: %s\n", lesson_path);
+
+ /* Believe we now have complete scandir() for all platforms :) */
+ num_lessons = scandir(lesson_path, &lesson_list_dirents, is_lesson_file, alphasort);
+
+ DEBUGMSG(debug_fileops, "num_lessons is: %d\n", num_lessons);
+
+ if (num_lessons < 0) {
+ perror("scanning lesson directory");
+ num_lessons = 0;
+ return 0;
+ }
+
+ /* Allocate storage for lesson list */
+ lesson_list_titles = (char**) malloc(num_lessons * sizeof(char*));
+ lesson_list_filenames = (char**) malloc(num_lessons * sizeof(char*));
+ if (lesson_list_titles == NULL || lesson_list_filenames == NULL) {
+ perror("allocating memory for lesson list");
+ return 0;
+ }
+ for (lessonIterator = 0; lessonIterator < num_lessons; lessonIterator++) {
+ lesson_list_titles[lessonIterator] = (char*) malloc(NAME_BUF_SIZE * sizeof(char));
+ lesson_list_filenames[lessonIterator] = (char*) malloc(NAME_BUF_SIZE * sizeof(char));
+ if (lesson_list_titles[lessonIterator] == NULL || lesson_list_filenames[lessonIterator] == NULL) {
+ perror("allocating memory for lesson filenames or titles");
+ return 0;
+ }
+ }
+
+ /* lessonIterator indexes the direntries, lessons indexes */
+ /* the correctly-parsed files. If successful in parsing, */
+ /* lessons gets incremented. In case of problems, we can */
+ /* just continue onto the next entry without incrementing */
+ /* lessons, and the bad entry will get overwritten by the */
+ /* next one (or simply never used, if it was the last). */
+ for (lessonIterator = 0, lessons = 0; lessonIterator < num_lessons; lessonIterator++) {
+ /* Copy over the filename (as a full pathname) */
+ nchars = snprintf(lesson_list_filenames[lessons], NAME_BUF_SIZE, "%s/%s", lesson_path, lesson_list_dirents[lessonIterator]->d_name);
+ if (nchars < 0 || nchars >= NAME_BUF_SIZE)
+ continue;
+
+ DEBUGMSG(debug_fileops, "Found lesson file %d:\t%s\n", lessons, lesson_list_filenames[lessons]);
+
+ /* load the name for the lesson from the file ... (1st line) */
+ tempFile = fopen(lesson_list_filenames[lessons], "r");
+ if (tempFile==NULL)
+ {
+ continue;
+ }
+ fgets_return_val = fgets(name_buf, NAME_BUF_SIZE, tempFile);
+ if (fgets_return_val == NULL) {
+ continue;
+ }
+ fclose(tempFile);
+
+
+ /* check to see if it has a \r at the end of it (dos format!) */
+ length = strlen(name_buf);
+ while (length>0 && (name_buf[length - 1] == '\r' || name_buf[length - 1] == '\n')) {
+ name_buf[length - 1] = '\0';
+ length--;
+ }
+
+ /* Go past leading '#', ';', or whitespace: */
+ /* NOTE getting i to the correct value on exit is the main goal of the loop */
+ for ( i = 0;
+ ((name_buf[i] == '#') ||
+ (name_buf[i] == ';') ||
+ isspace(name_buf[i])) &&
+ (i < NAME_BUF_SIZE);
+ i++ )
+ {
+ length--;
+ }
+ /* Now copy the rest of the first line into the list: */
+ /* Note that "length + 1" is needed so that the final \0 is copied! */
+ memmove(lesson_list_titles[lessons], &name_buf[i], length + 1);
+
+
+ /* Increment the iterator for correctly-parsed lesson files */
+ lessons++;
+ }
+ /* Now free the individual dirents. We do this on a second pass */
+ /* because of the "continue" approach used to error handling. */
+ for (lessonIterator = 0; lessonIterator < num_lessons; lessonIterator++)
+ free(lesson_list_dirents[lessonIterator]);
+ free(lesson_list_dirents);
+
+ /* In case we didn't keep all of them, revise our count of how */
+ /* many there are */
+ num_lessons = lessons;
+
+ /* Now we check to see which lessons have been previously completed */
+ /* so we can display the Gold Stars: */
+ /* Allocate storage for lesson list */
+
+ /* prevent memory leak in case we called this already and */
+ /* free the list: */
+ if(lesson_list_goldstars)
+ {
+ free(lesson_list_goldstars);
+ lesson_list_goldstars = NULL;
+ }
+
+ lesson_list_goldstars = (int*)malloc(num_lessons*sizeof(int));
+ if (!lesson_list_goldstars)
+ {
+ perror("unable to allocate memory for gold star list");
+ return 0;
+ }
+ for (i = 0; i < num_lessons; i++)
+ {
+ lesson_list_goldstars[i] = 0;
+ }
+
+ /* Now read file to see what lessons have been previously completed: */
+ read_goldstars();
+
+ return (num_lessons > 0); /* Success! */
+}
+
+
+/* Look for a completed lessons file in the user's homedir */
+/* and if found, pass the FILE* to read_goldstars_fp() */
+/* to actually read the data. The idea is to have TuxMath */
+/* keep track of what lessons the student has successfully */
+/* completed and display the "Gold Star" icon for those, */
+/* versus a grayed-out one for lessons remaining to be done. */
+int read_goldstars(void)
+{
+ FILE* fp;
+ char opt_path[PATH_MAX];
+
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, GOLDSTAR_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In read_goldstars() full path to file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ read_goldstars_fp(fp);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* could not open goldstar file: */
+ {
+ return 0;
+ }
+}
+
+
+/* Write gold star list in user's homedir in format */
+/* compatible with read_goldstars() above. */
+int write_goldstars(void)
+{
+ char opt_path[PATH_MAX];
+ FILE* fp;
+
+ if (!find_tuxmath_dir())
+ {
+ fprintf(stderr, "\nCould not find or create tuxmath dir\n");
+ return 0;
+ }
+
+ /* find $HOME and add rest of path to config file: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, GOLDSTAR_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In write_goldstars() full path to file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "w");
+ if (fp)
+ {
+ write_goldstars_fp(fp);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else {
+ fprintf(stderr, "\nUnable to write goldstars file.\n");
+ return 0;
+ }
+}
+
+
+/* Look for a highscore table file in the current user */
+/* data directory. Return 1 if found, 0 if not. This */
+/* is used for the multi-user login code, in deciding */
+/* where to put the highscore information. */
+int high_scores_found_in_user_dir(void)
+{
+ FILE* fp;
+ char opt_path[PATH_MAX];
+
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, HIGHSCORE_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In read_high_scores() full path to file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ fclose(fp);
+ return 1;
+ }
+ else
+ return 0;
+}
+
+/* Set the path to the high score file to the current */
+/* user data dir */
+void set_high_score_path(void)
+{
+ char opt_path[PATH_MAX];
+
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(opt_path);
+
+ // Free any previous allocation
+ if (high_scores_file_path != NULL)
+ free(high_scores_file_path);
+
+ high_scores_file_path = strdup(opt_path);
+}
+
+/* Look for a high score table file in the user's homedir */
+/* and if found, pass the FILE* to read_high_scores_fp() in */
+/* highscore.c to actually read in scores. (A "global" */
+/* location might in theory be better, but most schools */
+/* run Windows with all students sharing a common login */
+/* that may not be able to write to "global" locations). */
+int read_high_scores(void)
+{
+ FILE* fp;
+ char opt_path[PATH_MAX];
+
+ /* find $HOME and tack on file name: */
+ if (high_scores_file_path == NULL)
+ get_user_data_dir_with_subdir(opt_path);
+ else
+ strncpy(opt_path,high_scores_file_path,PATH_MAX);
+ strcat(opt_path, HIGHSCORE_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In read_high_scores() full path to file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "r");
+ if (fp) /* file exists */
+ {
+ initialize_scores(); // clear any previous values
+ read_high_scores_fp(fp);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else /* could not open highscore file: */
+ {
+ return 0;
+ }
+}
+
+/* On File Locking: With multiple users possibly updating the same
+ high-scores table simultaneously, we have to be concerned with the
+ possibility that the high score information might change between
+ the time at which it was determined that the user gets a high
+ score, and time at which the high score table actually gets
+ written. This is especially problematic if it takes kids a while
+ to type in their name, and it's being assumed that the high scores
+ table is valid over that entire time.
+
+ As a first (easy) step, it's best to simply append new information
+ to the high scores file, rather than re-writing the whole file; the
+ read function can make sure that only the top scores are used.
+ That way, the only time there would be trouble is if two appends
+ start at exactly the same moment; and since the amount of
+ information per line is small (and is thus written quickly) and
+ updates are unlikely to be occurring on a
+ millisecond-by-millisecond basis, it's pretty unlikely that
+ problems will crop up.
+
+ An even more robust alternative is to use real file locking. One
+ would need to design a cross-platform solution that also does
+ sensible things (like, say, delete the lock if it's been held for
+ more than 1s, so that locking doesn't block the application). In
+ researching this, the best approach seems to be:
+ a) Open a second file - a lock file of a specific name - for read/write.
+ b) If the lock file already contains your process ID, proceed
+ c) If the lock file already contains a different process ID, deny
+ d) If the lock file is new / empty write and flush your process ID
+ to it, then go back to step (a)
+
+ However, given that this information may not be "mission critical"
+ (pun intended) and might be cleared on a somewhat regular basis
+ anyway, it seems reasonable to just use the append strategy.
+*/
+
+/* Append a new high score to the high-scores file. */
+/* Using this approach is safer than writing the whole */
+/* high scores table if you're in an environment where */
+/* multiple users might be updating the table */
+/* simultaneously. */
+int append_high_score(int tableid,int score,char *player_name)
+{
+ char opt_path[PATH_MAX];
+ FILE* fp;
+
+ if (!find_tuxmath_dir())
+ {
+ fprintf(stderr, "\nCould not find or create tuxmath dir\n");
+ return 0;
+ }
+
+ /* find $HOME and add rest of path to config file: */
+ if (high_scores_file_path == NULL)
+ get_user_data_dir_with_subdir(opt_path);
+ else
+ strncpy(opt_path,high_scores_file_path,PATH_MAX);
+ strcat(opt_path, HIGHSCORE_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In write_high_scores() full path to file is: = %s\n", opt_path);
+
+ fp = fopen(opt_path, "a");
+ if (fp)
+ {
+ fprintf(fp,"%d\t%d\t%s\t\n",tableid,score,player_name);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+
+/* Checks to see if the current homedir has a menu_entries file, and if */
+/* so returns the names of the menu entries. This is used in cases */
+/* where users must select their login information. Returns the number */
+/* of menu entries (0 if there are none), and sets the input */
+/* argument to a malloc-ed array of names (sets to NULL if there are no */
+/* choices to be made). */
+int read_user_menu_entries(char ***user_names)
+{
+ FILE *fp;
+ int n_entries;
+ char opt_path[PATH_MAX],menu_entries_file[PATH_MAX];
+
+ // Look for a menu_entries file
+ get_user_data_dir_with_subdir(opt_path);
+ strncpy(menu_entries_file,opt_path,PATH_MAX);
+ strncat(menu_entries_file,USER_MENU_ENTRIES_FILENAME,PATH_MAX-strlen(menu_entries_file));
+ n_entries = 0;
+ fp = fopen(menu_entries_file,"r");
+ if (fp)
+ {
+ // There is a menu_entries file, read it
+ n_entries = read_lines_from_file(fp,user_names);
+ fclose(fp);
+ }
+
+ return n_entries;
+}
+
+/* Reads the user_login_questions file. The syntax is identical to
+ read_user_menu_entries. */
+int read_user_login_questions(char ***user_login_questions)
+{
+ FILE *fp;
+ int n_entries;
+ char opt_path[PATH_MAX],user_login_questions_file[PATH_MAX];
+
+ // Look for a user_login_questions file
+ get_user_data_dir_with_subdir(opt_path);
+ strncpy(user_login_questions_file,opt_path,PATH_MAX);
+ strncat(user_login_questions_file,USER_LOGIN_QUESTIONS_FILENAME,PATH_MAX-strlen(user_login_questions_file));
+ n_entries = 0;
+ fp = fopen(user_login_questions_file,"r");
+ if (fp)
+ {
+ // There is a user_login_questions file, read it
+ n_entries = read_lines_from_file(fp,user_login_questions);
+ fclose(fp);
+ }
+
+ return n_entries;
+}
+
+void user_data_dirname_up(void)
+{
+ dirname_up(user_data_dir);
+}
+
+void user_data_dirname_down(char *subdir)
+{
+ DIR *dir;
+
+ // The space for user_data_dir has to have sufficient memory
+ // available for concatenating subdir and a possible final "/",
+ // hence the +2s.
+ if (user_data_dir != NULL) {
+ user_data_dir = (char*) realloc(user_data_dir,(strlen(user_data_dir) + strlen(subdir) + 2)*sizeof(char));
+ if (user_data_dir == NULL) {
+ fprintf(stderr,"Error allocating memory in user_data_dirname_down.\n");
+ exit(EXIT_FAILURE);
+ }
+ strcat(user_data_dir,subdir);
+ }
+ else {
+ user_data_dir = (char*) malloc((strlen(subdir)+2)*sizeof(char));
+ if (user_data_dir == NULL) {
+ fprintf(stderr,"Error allocating memory in user_data_dirname_down.\n");
+ exit(EXIT_FAILURE);
+ }
+ strcpy(user_data_dir,subdir);
+ }
+ strcat(user_data_dir,"/");
+ dir = opendir(user_data_dir);
+ if (dir == NULL) {
+ printf("User data directory cannot be opened, there is a configuration error\n");
+ printf("Continuing anyway without saving or loading individual settings.\n");
+ }
+ else {
+ closedir(dir);
+ // If we have multi-user logins, don't create restrictive
+ // permissions on new or rewritten files
+ umask(0x0);
+ }
+}
+
+
+/***********************************************************
+* *
+* "Private methods" with file scope only *
+* *
+***********************************************************/
+
+
+/* This function does the heavy lifting, so to speak: */
+/* Note that file_type simply indicates whether or not */
+/* to change admin-only settings such as per_user_config. */
+/* FIXME return value only tells whether file pointer valid */
+int read_config_file(FILE *fp, int file_type)
+{
+ char buf[PATH_MAX];
+ char *parameter, *param_begin, *param_end, *value, *value_end;
+
+ DEBUGMSG(debug_fileops, "Entering read_config_file()\n");
+
+ /* get out if file pointer invalid: */
+ if(!fp)
+ {
+ DEBUGMSG(debug_fileops, "config file pointer invalid!\n");
+ DEBUGMSG(debug_fileops, "Leaving read_config_file()\n");
+
+ fprintf(stderr, "config file pointer invalid!\n");
+ return 0;
+ }
+
+ /* make sure we start at beginning: */
+ rewind(fp);
+
+ /* read in a line at a time: */
+ while (fgets (buf, PATH_MAX, fp))
+ {
+ /* "parameter" and "value" will contain the non-whitespace chars */
+ /* before and after the '=' sign, respectively. e.g.: */
+ /* */
+ /* fullscreen = 0; */
+ /* parameter is "fullscreen" */
+ /* value is '0' */
+ /* */
+
+ /* ignore comment lines */
+ if ((buf[0] == ';') || (buf[0] == '#'))
+ {
+ continue;
+ }
+
+ /* First find parameter string and make a copy: */
+ /* start at beginning: */
+ param_begin = buf;
+ /* skip leading whitespace */
+ while (isspace(*param_begin))
+ {
+ ++param_begin;
+ }
+
+ /* If this was a blank line, then we don't have to process any more */
+ if (param_begin-buf >= strlen(buf))
+ continue;
+
+ /* now go from here to end of string, stopping at either */
+ /* whitespace or '=': */
+ param_end = param_begin;
+ while (!isspace(*param_end)
+ && ('=' != (*param_end)))
+ {
+ ++param_end;
+ }
+
+ /* copy chars from start of non-whitespace up to '=': */
+ //parameter = strndup(param_begin, (param_end - param_begin));
+
+ /* Next three lines do same as strndup(), which may not be available: */
+ parameter = malloc((sizeof(char) * (param_end - param_begin)) + 1);
+ strncpy(parameter, param_begin, (param_end - param_begin));
+ parameter[param_end - param_begin] = '\0';
+
+ /* Now get value string: */
+ /* set value to first '=' in line: */
+ value = strchr(buf, '=');
+
+ if (!value || (value == buf))
+ {
+ free(parameter);
+ continue;
+ }
+
+ /* move past '=' sign: */
+ ++value;
+
+ /* skip leading whitespace */
+ while (isspace(*value))
+ {
+ ++value;
+ }
+
+ value_end = value;
+
+ /* remove trailing whitespace or newline */
+ while (!isspace(*value_end)
+ && (0x0a != (*value_end))
+ && (*value_end))
+ {
+ ++value_end;
+ }
+ /* terminate string here: */
+ *value_end = 0;
+
+ DEBUGMSG(debug_fileops, "parameter = '%s'\t, length = %zu\n", parameter, strlen(parameter));
+ DEBUGMSG(debug_fileops, "value = '%s'\t, length = %zu\t, atoi() = %d\t, atof() = %.2f\n", value, strlen(value), atoi(value), atof(value));
+
+ /* Now ready to handle each name/value pair! */
+
+ /* Set general game_options struct (see tuxmath.h): */
+// if(0 == strcasecmp(parameter, "per_user_config"))
+// {
+// /* Only let administrator change this setting */
+// if (file_type == GLOBAL_CONFIG_FILE)
+// {
+// int v = str_to_bool(value);
+// if (v != -1)
+// Opts_SetGlobalOpt(PER_USER_CONFIG, v);
+// }
+// }
+//
+// else if(0 == strcasecmp(parameter, "homedir"))
+// {
+// /* Only let administrator change this setting */
+// if (file_type == GLOBAL_CONFIG_FILE && user_data_dir == NULL)
+// {
+// /* Check to see whether the specified homedir exists */
+// dir = opendir(value);
+// if (dir == NULL)
+// fprintf(stderr,"homedir: %s is not a directory, or it could not be read\n", value);
+// else {
+// set_user_data_dir(value); /* copy the homedir setting */
+// closedir(dir);
+// }
+// }
+// }
+//
+// else if(0 == strcasecmp(parameter, "use_sound"))
+// {
+// int v = str_to_bool(value);
+// if (v != -1)
+// Opts_SetGlobalOpt(USE_SOUND, v);
+// }
+// else if(0 == strcasecmp(parameter, "menu_sound"))
+// {
+// int v = str_to_bool(value);
+// if (v != -1)
+// Opts_SetGlobalOpt(MENU_SOUND, v);
+// }
+//
+// else if(0 == strcasecmp(parameter, "menu_music"))
+// {
+// int v = str_to_bool(value);
+// if (v != -1)
+// Opts_SetGlobalOpt(MENU_MUSIC, v);
+// }
+//
+// else if(0 == strcasecmp(parameter, "fullscreen"))
+// {
+// int v = str_to_bool(value);
+// if (v != -1)
+// Opts_SetGlobalOpt(FULLSCREEN, v);
+// }
+ //TODO herd these per-game options into their own "domain" as well
+ if(0 == strcasecmp(parameter, "use_bkgd"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetUseBkgd(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "demo_mode"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetDemoMode(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "oper_override"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetOperOverride(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "use_keypad"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetGlobalOpt(USE_KEYPAD, v);
+ }
+
+ else if(0 == strcasecmp(parameter, "allow_pause"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetAllowPause(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "use_igloos"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetGlobalOpt(USE_IGLOOS, v);
+ }
+
+ else if(0 == strcasecmp(parameter, "bonus_comet_interval"))
+ {
+ Opts_SetBonusCometInterval(atoi(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "bonus_speed_ratio"))
+ {
+ Opts_SetBonusSpeedRatio(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "save_summary"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetSaveSummary(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "speed"))
+ {
+ Opts_SetSpeed(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "use_feedback"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetUseFeedback(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "danger_level"))
+ {
+ Opts_SetDangerLevel(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "danger_level_speedup"))
+ {
+ Opts_SetDangerLevelSpeedup(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "danger_level_max"))
+ {
+ Opts_SetDangerLevelMax(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "city_explode_handicap"))
+ {
+ Opts_SetCityExplHandicap(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "allow_speedup"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetAllowSpeedup(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "speedup_factor"))
+ {
+ Opts_SetSpeedupFactor(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "max_speed"))
+ {
+ Opts_SetMaxSpeed(atof(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "slow_after_wrong"))
+ {
+ int v = str_to_bool(value);
+ if (v != -1)
+ Opts_SetSlowAfterWrong(v);
+ }
+
+ else if(0 == strcasecmp(parameter, "starting_comets"))
+ {
+ Opts_SetStartingComets(atoi(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "extra_comets_per_wave"))
+ {
+ Opts_SetExtraCometsPerWave(atoi(value));
+ }
+
+ else if(0 == strcasecmp(parameter, "max_comets"))
+ {
+ Opts_SetMaxComets(atoi(value));
+ }
+
+ else if (0 == strcasecmp(parameter, "keep_score"))
+ {
+ Opts_SetKeepScore(atoi(value) );
+ }
+
+ else //we're going to delegate the setting of options to their subsystems
+ {
+ int ival = str_to_bool(value); //see if it's a valid bool
+ if (ival == -1) //guess not, must be an int
+ ival = atoi(value);
+ if (!parse_option(parameter, ival, file_type) )
+ printf("Sorry, I couldn't set %s\n", parameter);
+//
+// if (file_type != GLOBAL_CONFIG_FILE)
+// MC_SetOp(parameter, ival);
+// else
+// {
+// if(0 != strcasecmp(parameter, "homedir"))
+// {
+// Opts_SetGlobalOp(parameter, ival);
+// }
+// else //set homedir
+// {
+// if (user_data_dir == NULL)
+// {
+// /* Check to see whether the specified homedir exists */
+// dir = opendir(value);
+// if (dir == NULL)
+// fprintf(stderr,"homedir: %s is not a directory, or it could not be read\n", value);
+// else {
+// set_user_data_dir(value); /* copy the homedir setting */
+// closedir(dir);
+// }
+// }
+// }
+// }
+ }
+ free(parameter);
+ }
+ //handle min > max by disallowing operation
+ if (MC_GetOpt(MIN_AUGEND) > MC_GetOpt(MAX_AUGEND) ||
+ MC_GetOpt(MIN_ADDEND) > MC_GetOpt(MAX_ADDEND) )
+ MC_SetOpt(ADDITION_ALLOWED, 0);
+ if (MC_GetOpt(MIN_MINUEND) > MC_GetOpt(MAX_MINUEND) ||
+ MC_GetOpt(MIN_SUBTRAHEND) > MC_GetOpt(MAX_SUBTRAHEND) )
+ MC_SetOpt(SUBTRACTION_ALLOWED, 0);
+ if (MC_GetOpt(MIN_MULTIPLICAND) > MC_GetOpt(MAX_MULTIPLICAND) ||
+ MC_GetOpt(MIN_MULTIPLIER) > MC_GetOpt(MAX_MULTIPLIER) )
+ MC_SetOpt(MULTIPLICATION_ALLOWED, 0);
+ if (MC_GetOpt(MIN_DIVISOR) > MC_GetOpt(MAX_DIVISOR) ||
+ MC_GetOpt(MIN_QUOTIENT) > MC_GetOpt(MAX_QUOTIENT) )
+ MC_SetOpt(DIVISION_ALLOWED, 0);
+ if (MC_GetOpt(MIN_TYPING_NUM) > MC_GetOpt(MAX_TYPING_NUM) )
+ MC_SetOpt(TYPING_PRACTICE_ALLOWED, 0);
+
+ DEBUGMSG(debug_fileops, "After file read in:\n");
+ DEBUGCODE(debug_fileops)
+ write_config_file(stdout, 0);
+ DEBUGMSG(debug_fileops, "Leaving read_config_file()\n");
+
+ return 1;
+}
+
+/* determine which option class a name belongs to, and set it */
+/* accordingly. Returns 1 on success, 0 on failure */
+static int parse_option(const char* name, int val, int file_type)
+{
+ int index = -1;
+
+ if ((index = MC_MapTextToIndex(name)) != -1) //is it a math opt?
+ {
+ MC_SetOpt(index, val);
+ }
+ else if ((index = Opts_MapTextToIndex(name)) != -1) //is it a global opt?
+ {
+ if (file_type == GLOBAL_CONFIG_FILE)
+ Opts_SetGlobalOpt(index, val);
+ }
+ else //no? oh well.
+ {
+ return 0;
+ }
+
+ return 1;
+}
+
+
+int write_user_config_file(void)
+{
+ char opt_path[PATH_MAX];
+ FILE* fp;
+
+ if (!find_tuxmath_dir())
+ {
+ fprintf(stderr, "\nCould not find or create tuxmath dir\n");
+ return 0;
+ }
+
+ /* find $HOME and add rest of path to config file: */
+ get_user_data_dir_with_subdir(opt_path);
+ strcat(opt_path, OPTIONS_FILENAME);
+
+ DEBUGMSG(debug_fileops, "In write_user_config_file() full path to config file is: = %s\n", opt_path);
+
+ /* save settings: */
+ fp = fopen(opt_path, "w");
+ if (fp)
+ {
+ write_config_file(fp, 1);
+ fclose(fp);
+ fp = NULL;
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+
+/* this function writes the settings for all game options to a */
+/* human-readable file. */
+int write_config_file(FILE *fp, int verbose)
+{
+ int i, vcommentsprimed = 0;
+ static char* vcomments[NOPTS]; //comments when writing out verbose
+ if (!vcommentsprimed) //we only want to initialize these once
+ {
+ vcommentsprimed = 1;
+ for (i = 0; i < NOPTS; ++i)
+ vcomments[i] = NULL;
+ vcomments[PLAY_THROUGH_LIST] =
+ "############################################################\n"
+ "# #\n"
+ "# Tuxmath Configuration File #\n"
+ "# #\n"
+ "# The behavior of Tuxmath can be controlled to a great #\n"
+ "# extent by editing this file with any and saving it in #\n"
+ "# the default options location ($HOME/.tuxmath/options). #\n"
+ "# The file consists of 'NAME = VALUE' pairs, one pair per #\n"
+ "# line. Each option is one of the following types: #\n"
+ "# #\n"
+ "# boolean: 1 (synonyms 'true', 'T', 'yes', 'Y', 'on') #\n"
+ "# or #\n"
+ "# 0 (synonyms 'false, 'F', 'no', 'N', 'off') #\n"
+ "# integer (i.e. non-fractional numbers) #\n"
+ "# float (i.e decimal fractions) #\n"
+ "# #\n"
+ "# Lines beginning with '#' or ';' are ignored as comments. #\n"
+ "# The synonyms for boolean '0' and '1' are accepted as #\n"
+ "# input, but always written as '0' or '1' when Tuxmath #\n"
+ "# writes a config file to disk. #\n"
+ "# The file is organized with the more important options #\n"
+ "# first. #\n"
+ "############################################################\n"
+ "\n"
+ "############################################################\n"
+ "# #\n"
+ "# Game Mode #\n"
+ "# #\n"
+ "# Parameter: play_through_list (Boolean) #\n"
+ "# Default: 1 #\n"
+ "# #\n"
+ "# Tuxmath generates a list of math questions based on #\n"
+ "# parameters set below. By default, (play_through_list = #\n"
+ "# 1) the questions are asked in a random order. #\n"
+ "# Correctly answered questions are removed from the list. #\n"
+ "# If the player fails to correctly answer a question #\n"
+ "# before it hits a city, the question will be reinserted #\n"
+ "# into the list in a random location. #\n"
+ "# The player wins if all questions are answered correctly #\n"
+ "# before the cities are destroyed. #\n"
+ "# #\n"
+ "# Alternatively, Tuxmath can be played in 'Arcade Mode' #\n"
+ "# by setting play_through_list = 0 (i.e. 'false'). If this #\n"
+ "# is done, all questions will be randomly reinserted into #\n"
+ "# the list whether or not they are answered correctly, and #\n"
+ "# the game continues as long as there is a surviving city. #\n"
+ "############################################################\n"
+ "\n";
+
+ vcomments[ADDITION_ALLOWED] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Selecting Math Operations #\n"
+ "# #\n"
+ "# Parameter: addition_allowed (boolean) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: subtraction_allowed (boolean) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: multiplication_allowed (boolean) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: division_allowed (boolean) #\n"
+ "# Default: 1 #\n"
+ "# #\n"
+ "# These options enable questions for each of the four math #\n"
+ "# operations. All are 1 (yes) by default. #\n"
+ "############################################################\n\n";
+ vcomments[TYPING_PRACTICE_ALLOWED] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Typing Practice #\n"
+ "# #\n"
+ "# Parameter: typing_practice_allowed (boolean) #\n"
+ "# Default: 0 #\n"
+ "# #\n"
+ "# This option simply displays numbers for the youngest #\n"
+ "# players to type in to learn the keyboard. #\n"
+ "############################################################\n\n";
+ vcomments[ALLOW_NEGATIVES] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Negative Number Support #\n"
+ "# #\n"
+ "# Parameter: allow_negatives (boolean) #\n"
+ "# Default: 0 #\n"
+ "# #\n"
+ "# 'allow_negatives' allows or disallows use of negative #\n"
+ "# numbers as both operands and answers. Default is 0 #\n"
+ "# (no), which disallows questions like: #\n"
+ "# 2 - 4 = ? #\n"
+ "# Note: this option must be enabled in order to set the #\n"
+ "# operand ranges to include negatives. If it is changed #\n"
+ "# from 1 (yes) to 0 (no), any negative operand limits will #\n"
+ "# be reset to 0. #\n"
+ "############################################################\n\n";
+ vcomments[MIN_AUGEND] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Minimum and Maximum Values for Operand Ranges #\n"
+ "# #\n"
+ "# Parameters: (multiple - all integer type) #\n"
+ "# #\n"
+ "# Operand limits can be set to any integer up to the #\n"
+ "# value of 'max_answer'. Tuxmath will generate questions #\n"
+ "# for every value in the specified range. The maximum must #\n"
+ "# be greater than or equal to the corresponding minimum #\n"
+ "# for any questions to be generated for that operation. #\n"
+ "# Defaults are 0 for minima and 12 for maxima. #\n"
+ "# #\n"
+ "# Note: 'allow_negatives' must be set to 1 for negative #\n"
+ "# values to be accepted (see 'Advanced Options'). #\n"
+ "############################################################\n"
+ "\n# Addition operands:\n"
+ "# augend + addend = sum\n\n";
+ vcomments[MIN_MINUEND] =
+ "\n# Subtraction operands:\n"
+ "# minuend - subtrahend = difference\n\n";
+ vcomments[MIN_MULTIPLIER] =
+ "\n# Multiplication operands:\n"
+ "# multiplier * multiplicand = product\n\n";
+ vcomments[MIN_DIVISOR] =
+ "\n# Division operands:\n"
+ "# dividend / divisor = quotiend\n\n";
+ vcomments[MIN_TYPING_NUM] =
+ "\n# Typing practice:\n";
+ vcomments[QUESTION_COPIES] =
+ "\n\n\n############################################################\n"
+ "# #\n"
+ "# Advanced Options #\n"
+ "# #\n"
+ "# The remaining settings further customize Tuxmath's #\n"
+ "# behavior. Most users will probably not change them. #\n"
+ "############################################################\n\n"
+
+ "\n############################################################\n"
+ "# #\n"
+ "# Advanced Math Question List Options #\n"
+ "# #\n"
+ "# Parameter: question_copies (integer) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: repeat_wrongs (boolean) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: copies_repeated_wrongs (integer) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: fraction_to_keep (float) #\n"
+ "# Default: 1 #\n"
+ "# #\n"
+ "# These settings offer further control over the question #\n"
+ "# list and are generally only useful if 'play_through_list'#\n"
+ "# is enabled (as it is by default). #\n"
+ "# #\n"
+ "# 'question_copies' is the number of times each question #\n"
+ "# is put into the initial list. It can be 1 to 10. #\n"
+ "# #\n"
+ "# 'repeat_wrongs' determines whether questions the player #\n"
+ "# failed to answer correctly will be asked again. #\n"
+ "# #\n"
+ "# 'copies_repeated_wrongs' gives the number of times a #\n"
+ "# missed question will reappear. This can be set anywhere #\n"
+ "# from 1 to 10. #\n"
+ "# #\n"
+ "# The defaults for these values result in a 'mission' #\n"
+ "# for Tux that is accomplished by answering all #\n"
+ "# questions correctly with at least one surviving city. #\n"
+ "############################################################\n\n";
+ vcomments[FORMAT_ADD_ANSWER_LAST] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Math Question Formats #\n"
+ "# #\n"
+ "# The 'format_<op>_answer_<place> options control #\n"
+ "# generation of questions with the answer in different #\n"
+ "# places in the equation. i.e.: #\n"
+ "# #\n"
+ "# format_add_answer_last: 2 + 2 = ? #\n"
+ "# format_add_answer_first: ? + 2 = 4 #\n"
+ "# format_add_answer_middle: 2 + ? = 4 #\n"
+ "# #\n"
+ "# By default, 'format_answer_first' is enabled and the #\n"
+ "# other two formats are disabled. Note that the options #\n"
+ "# are not mutually exclusive - the question list may #\n"
+ "# contain questions with different formats. #\n"
+ "# #\n"
+ "# The formats are set independently for each of the four #\n"
+ "# math operations. All parameters are type 'boolean'. #\n"
+ "############################################################\n\n";
+ vcomments[MAX_ANSWER] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Parameter: max_answer (integer) #\n"
+ "# Default: 999 #\n"
+ "# #\n"
+ "# 'max_answer' is the largest absolute value allowed in #\n"
+ "# any value in a question (not only the answer). Default #\n"
+ "# is 999, which is as high as it can be set. It can be set #\n"
+ "# lower to fine-tune the list for certain 'lessons'. #\n"
+ "############################################################\n\n";
+ vcomments[MAX_QUESTIONS] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Parameter: max_questions (integer) #\n"
+ "# Default: 5000 #\n"
+ "# #\n"
+ "# 'max_questions' is limit of the length of the question #\n"
+ "# list. Default is 5000 - only severe taskmasters will #\n"
+ "# need to raise it! #\n"
+ "############################################################\n\n";
+ vcomments[RANDOMIZE] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Parameter: randomize (boolean) #\n"
+ "# Default: 1 #\n"
+ "# #\n"
+ "# If 'randomize' selected, the list will be shuffled #\n"
+ "# at the start of the game. Otherwise, the questions #\n"
+ "# appear in the order the program generates them. #\n"
+ "############################################################\n\n";
+
+ }
+ DEBUGMSG(debug_fileops, "Entering write_config_file()\n");
+
+ /* get out if file pointer null */
+ if(!fp)
+ {
+ fprintf (stderr, "write_config_file() - file pointer invalid/n");
+ DEBUGMSG(debug_fileops, "Leaving write_config_file()\n");
+ return 0;
+ }
+
+ for (i = 0; i < NOPTS; ++i) //for each option
+ {
+ if (verbose && vcomments[i]) //comment goes before
+ fprintf(fp, "%s", vcomments[i]);
+ fprintf(fp, "%s = %d\n", MC_OPTION_TEXT[i], MC_GetOpt(i) );
+ }
+
+ if (verbose)
+ {
+ //allow_speedup comment
+ }
+ fprintf(fp, "allow_speedup = %d\n", Opts_AllowSpeedup() );
+
+ if (verbose)
+ {
+ //use_sound comment
+ }
+ fprintf(fp, "use_sound = %d\n", Opts_GetGlobalOpt(USE_SOUND) );
+
+ if (verbose)
+ {
+ fprintf (fp, "\n############################################################\n"
+ "# #\n"
+ "# Advanced Comet Speed Options #\n"
+ "# #\n"
+ "# Parameter: starting_comets (integer) #\n"
+ "# Default: 2 #\n"
+ "# Parameter: extra_comets_per_wave (integer) #\n"
+ "# Default: 2 #\n"
+ "# Parameter: max_comets (integer) #\n"
+ "# Default: 10 #\n"
+ "# Parameter: speed (float) #\n"
+ "# Default: 1.00 #\n"
+ "# Parameter: max_speed (float) #\n"
+ "# Default: 10.00 #\n"
+ "# Parameter: speedup_factor (float) #\n"
+ "# Default: 1.20 #\n"
+ "# Parameter: bonus_comet_interval (integer) #\n"
+ "# Default: 10 #\n"
+ "# Parameter: bonus_speed_ratio (float) #\n"
+ "# Default: 1.50 #\n"
+ "# Parameter: slow_after_wrong (bool) #\n"
+ "# Default: 0 #\n"
+ "# #\n"
+ "# (for 'feedback' speed control system): #\n"
+ "# Parameter: danger_level (float) #\n"
+ "# Default: 0.35 #\n"
+ "# Parameter: danger_level_speedup (float) #\n"
+ "# Default: 1.1 #\n"
+ "# Parameter: danger_level_max (float) #\n"
+ "# Default: 0.9 #\n"
+ "# Parameter: city_explode_handicap (float) #\n"
+ "# Default: 0 #\n"
+ "# #\n"
+ "# The comet number parameters and initial/max speed apply #\n"
+ "# whether or not the feedback system is activated. #\n"
+ "# #\n"
+ "# 'speedup_factor' and 'slow_after_wrong' only apply if #\n"
+ "# feedback is not activated. #\n"
+ "# #\n"
+ "# The 'danger_level_*' and 'city_explode_handicap' #\n"
+ "# parameters are only used if feedback is activated. #\n"
+ "############################################################\n\n");
+ }
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Number of comets for first wave. Default is 2.\n");
+ }
+ fprintf(fp, "starting_comets = %d\n", Opts_StartingComets());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Comets to add for each successive wave. Default is 2.\n");
+ }
+ fprintf(fp, "extra_comets_per_wave = %d\n", Opts_ExtraCometsPerWave());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Maximum number of comets. Default is 10.\n");
+ }
+ fprintf(fp, "max_comets = %d\n", Opts_MaxComets());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Starting comet speed. Default is 1.\n");
+ }
+ fprintf(fp, "speed = %.2f\n", Opts_Speed());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Maximum speed. Default is 10.\n");
+ }
+ fprintf(fp, "max_speed = %.2f\n", Opts_MaxSpeed());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# 'speedup_factor': If feedback is not used but \n"
+ "# 'allow_speedup' is enabled, the comet speed will be\n"
+ "# multiplied by this factor with each new wave.\n"
+ "# Values from 0.5 to 2 are accepted (note that a \n"
+ "# value less than 1 causes the comets to be \n"
+ "# slower with each wave!).\n"
+ "# Default is 1.2 (i.e. 20 percent increase per wave)\n\n");
+ }
+ fprintf(fp, "speedup_factor = %.2f\n", Opts_SpeedupFactor());
+
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# 'bonus_comet_interval' controls how frequently\n"
+ "# special comets appear that cause a igloo to be \n"
+ "# rebuilt if answered correctly. The bonus comet \n"
+ "# appears after this number of regular comets (a \n"
+ "# value of 0 disables bonus comets). Default is 10. \n");
+ }
+ fprintf(fp, "bonus_comet_interval = %d\n", Opts_BonusCometInterval());
+
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# 'bonus_speed_ratio' determines how fast the\n"
+ "# bonus comets fall relative to the regular comets.\n"
+ "# Range 1.0 - 3.0, default 1.5:\n");
+ }
+ fprintf(fp, "bonus_speed_ratio = %.2f\n", Opts_BonusSpeedRatio());
+
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# 'slow_after_wrong' tells Tuxmath to go back to \n"
+ "# starting speed and number of comets if the player misses \n"
+ "# a question. Useful for smaller kids. Default is 0.\n\n");
+ }
+
+ fprintf(fp, "slow_after_wrong = %d\n", Opts_SlowAfterWrong());
+
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the desired danger level.\n"
+ "# 0 = too safe, comets typically exploded at the very top\n"
+ "# 1 = too dangerous, comets typically exploded as they\n"
+ "# hit cities. Set it somewhere between these extremes. As\n"
+ "# a guideline, early elementary kids might prefer\n"
+ "# 0.2-0.3, older kids at around 0.4-0.6. Default 0.35.\n\n");
+ }
+ fprintf(fp, "danger_level = %.2f\n", Opts_DangerLevel());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set danger level speedup.\n"
+ "# The margin of safety will decrease by this factor each\n"
+ "# wave. Default 1.1. Note 1 = no increase in danger level.\n\n");
+ }
+ fprintf(fp, "danger_level_speedup = %.2f\n", Opts_DangerLevelSpeedup());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the maximum danger level.\n"
+ "# Default 0.9.\n");
+ }
+ fprintf(fp, "danger_level_max = %.2f\n", Opts_DangerLevelMax());
+
+ if (verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the handicap for hitting cities.\n"
+ "# When bigger than 0, this causes the game to slow down\n"
+ "# by an extra amount after a wave in which one or more\n"
+ "# cities get hit. Note that this is similar to\n"
+ "# 'slow_after_wrong', but allows for more gradual\n"
+ "# changes. Default 0 (no extra handicap).\n\n");
+ }
+ fprintf(fp, "city_explode_handicap = %.2f\n", Opts_CityExplHandicap());
+
+ if(verbose)
+ {
+ fprintf (fp, "\n\n############################################################\n"
+ "# #\n"
+ "# Managing User Settings #\n"
+ "# #\n"
+ "# Parameter: per_user_config (boolean) #\n"
+ "# Default: 1 #\n"
+ "# Parameter: homedir (string) #\n"
+ "# Default: <none supplied> #\n"
+ "# #\n"
+ "# 'per_user_config' determines whether Tuxmath will look #\n"
+ "# in the user's home directory for settings. Default is 1 #\n"
+ "# (yes). If set to 0, the program will ignore the user's #\n"
+ "# .tuxmath file and use the the global settings in the #\n"
+ "# installation-wide config file. #\n"
+ "# #\n"
+ "# 'homedir' allows you to specify the location to look for #\n"
+ "# user home directories. You probably do not want to #\n"
+ "# specify this unless all users share the same login #\n"
+ "# account. See the README for details on configuration. #\n"
+ "# To enable this feature, remove the '#' comment mark and #\n"
+ "# set the path as desired. #\n"
+ "# #\n"
+ "# These settings cannot be changed by an ordinary user, as #\n"
+ "# they are ignored unless the config file is Tuxmath's #\n"
+ "# global config file. Thus, users cannot 'lock themselves #\n"
+ "# out' by accidentally setting per_user_config to 0. #\n"
+ "############################################################\n\n");
+ }
+ fprintf(fp, "per_user_config = %d\n", Opts_GetGlobalOpt(PER_USER_CONFIG));
+ fprintf(fp, "# homedir = /servervolume/tuxmath_users\n");
+
+
+ /* print general game options (passing '1' as second arg causes */
+ /* "help" info for each option to be written to file as comments) */
+// print_game_options(fp, 1);
+ /* print options pertaining to math questions from MathCards: */
+// MC_PrintMathOptions(fp, 1);
+
+ DEBUGMSG(debug_fileops, "Leaving write_config_file()\n");
+
+ return 1;
+}
+
+
+/* write_pregame_summary() and write_postgame_summary() are used to */
+/* record data about the player's game to file for review (perhaps by */
+/* teacher). write_pregame_summary() is called at the start of each */
+/* game and records the question list along with identifying data. It */
+/* also rotates old game summaries to successive filenames, keeping */
+/* the last ten summaries for review. write_postgame_summary() */
+/* the list of questions that were not answered correctly and */
+/* calculates the percent correct. */
+int write_pregame_summary(void)
+{
+ int i;
+ FILE* fp;
+ char filepath1[PATH_MAX];
+ char filepath2[PATH_MAX];
+
+ DEBUGMSG(debug_fileops,"Entering write_pregame_summary.\n")
+
+ /* Make sure tuxmath dir exists or can be created: */
+ if (!find_tuxmath_dir())
+ {
+ fprintf(stderr, "\nCould not find or create tuxmath dir\n");
+ return 0;
+ }
+
+
+
+ /* Rotate filenames of old summaries, oldest summary if present */
+ /* and leaving summary1 available for current game: */
+
+ /* find $HOME and tack on file name: */
+ get_user_data_dir_with_subdir(filepath1);
+ strcat(filepath1, summary_filenames[NUM_SUMMARIES - 1]);
+
+ fp = fopen(filepath1, "r");
+ if (fp)
+ {
+ DEBUGMSG(debug_fileops,"\nIn write_pregame_summary() - removing oldest summary file\n")
+
+ fclose(fp);
+ remove(filepath1);
+ }
+
+ /* Now shift each old file back by one: */
+ /* 'filepath1' is the old name for each file, */
+ /* 'filepath2' is the new name (i.e. we go from i - 1 to i). */
+ for (i = NUM_SUMMARIES - 1; i > 0; i--)
+ {
+ /* old filename: */
+ get_user_data_dir_with_subdir(filepath1);
+ strcpy(filepath2,filepath1);
+ strcat(filepath1, summary_filenames[i - 1]);
+ /* new filename: */
+ strcat(filepath2, summary_filenames[i]);
+ /* now change the name: */
+ rename(filepath1, filepath2);
+ }
+
+ /* summary_filenames[0] (i.e. 'summary1') should now be vacant: */
+ get_user_data_dir_with_subdir(filepath1);
+ strcat(filepath1, summary_filenames[0]);
+
+ fp = fopen(filepath1, "w"); /* "w" means start writing with empty file */
+ if (fp)
+ {
+ /* Write header and identifying data for summary file: */
+ fprintf(fp, "************************\n"
+ "* Tuxmath Game Summary *\n"
+ "************************\n");
+ if (add_subdir)
+ {
+ /* Identify user by login if we're not in a multiuser configuration */
+ fprintf(fp, "\nPlayer: %s\n", getenv("USER"));
+ }
+ else {
+ /* Identify user by the directory name.*/
+ fprintf(fp, "\nPlayer: %s\n", get_user_name());
+ }
+
+ fprintf(fp, "\nMission: %s\n", last_config_file_name);
+
+ /* Write question list: */
+ fprintf(fp, "\nStarting Question List:");
+ MC_PrintQuestionList(fp);
+ fprintf(fp, "\n\nNumber of Questions: %d", MC_StartingListLength());
+
+ fclose(fp);
+ DEBUGMSG(debug_fileops,"Leaving write_pregame_summary.\n")
+ return 1;
+ }
+ else /* Couldn't write file for some reason: */
+ {
+ DEBUGMSG(debug_fileops,"Can't write_pregame_summary.\n")
+ return 0;
+ }
+}
+
+int write_postgame_summary(void)
+{
+ FILE *fp;
+ char filepath1[PATH_MAX];
+ int total_answered;
+ float median_time;
+ int success = 1;
+ int write_column_names = 0;
+ time_t filetime;
+ struct stat filestat;
+ struct tm datetime;
+ char *mission_name;
+
+ get_user_data_dir_with_subdir(filepath1);
+ strcat(filepath1, summary_filenames[0]);
+
+ total_answered = MC_NumAnsweredCorrectly() + MC_NumNotAnsweredCorrectly();
+ median_time = MC_MedianTimePerQuestion();
+
+ fp = fopen(filepath1, "a"); /* "a" means append to end of file */
+ if (fp)
+ {
+ /* Write list of questions missed: */
+ fprintf(fp, "\n\n\nList Of Questions Not Answered Correctly:");
+ MC_PrintWrongList(fp);
+ fprintf(fp, "\n\nNumber Of Distinct Questions Not Answered Correctly: %d",
+ MC_WrongListLength());
+
+ /* Write post-game statistics: */
+
+ fprintf(fp, "\n\nSummary:\n");
+ fprintf(fp, "Questions Answered:\t%d\n", total_answered);
+ fprintf(fp, "Questions Correct:\t%d\n",
+ MC_NumAnsweredCorrectly());
+ fprintf(fp, "Questions Missed:\t%d\n",
+ MC_NumNotAnsweredCorrectly());
+ /* Avoid divide-by-zero errror: */
+ if (total_answered)
+ {
+ fprintf(fp, "Percent Correct:\t%d %%\n",
+ ((MC_NumAnsweredCorrectly() * 100)/ total_answered) );
+ }
+ else
+ fprintf(fp, "Percent Correct: (not applicable)\n");
+
+ fprintf(fp,"Median Time/Question:\t%g\n",median_time);
+
+ fprintf(fp, "Mission Accomplished:\t");
+ if (MC_MissionAccomplished())
+ {
+ fprintf(fp, "Yes!\n\n8^)\n");
+ }
+ else
+ {
+ fprintf(fp, "No.\n\n:^(\n");
+ }
+
+ fclose(fp);
+ }
+ else /* Couldn't write file for some reason: */
+ {
+ fprintf(stderr,"Summary not written.\n");
+ success = 0;
+ }
+
+ /* Append brief summary to log */
+ if (total_answered > 0) {
+ /* We're going to want to write the date. Use the filetime */
+ /* rather than calling "time" directly, because "time" */
+ /* returns the time according to whatever computer is */
+ /* running tuxmath, and in a server/client mode it's likely */
+ /* that some of the clients' clocks may be wrong. Use */
+ /* instead the time according to the server on which the */
+ /* accounts are stored, which can be extracted from the */
+ /* modification time of the summary we just wrote. */
+ if (stat(filepath1,&filestat) == 0) {
+ filetime = filestat.st_mtime;
+ } else {
+ filetime = time(NULL);
+ }
+ localtime_r(&filetime,&datetime); /* generate broken-down time */
+
+ get_user_data_dir_with_subdir(filepath1);
+ strcat(filepath1, "log.csv");
+ /* See whether the log file already exists; if not, write */
+ /* the column names */
+ fp = fopen(filepath1, "r");
+ if (fp == NULL)
+ write_column_names = 1;
+ else
+ fclose(fp);
+
+ fp = fopen(filepath1, "a"); /* "a" means append to end of file */
+ if (fp) {
+ if (write_column_names) {
+ fprintf(fp,"\"User\",\"Mission\",\"Date\",\"Completed?\",\"Number answered\",\"Percent correct\",\"Time per question\"\n");
+ }
+ if (last_config_file_name)
+ mission_name = strdup(last_config_file_name);
+ else
+ mission_name = strdup("[NONE]");
+ fprintf(fp,"\"%s\",\"%s\",%d/%d/%d,%d,%d,%d,%g\n", get_user_name(), get_file_name(mission_name), datetime.tm_year+1900, datetime.tm_mon+1, datetime.tm_mday, MC_MissionAccomplished(), total_answered, ((MC_NumAnsweredCorrectly() * 100)/ total_answered), median_time);
+ fclose(fp);
+ free(mission_name);
+ } else
+ success = 0;
+ }
+ return success;
+}
+
+
+
+/* Checks to see if user's .tuxmath directory exists and, if not, tries */
+/* to create it. Returns 1 if .tuxmath dir found or successfully created */
+static int find_tuxmath_dir(void)
+{
+ char opt_path[PATH_MAX];
+ DIR* dir_ptr;
+
+ /* find $HOME */
+ get_user_data_dir_with_subdir(opt_path);
+
+ DEBUGMSG(debug_fileops, "In find_tuxmath_dir() tuxmath dir is: = %s\n", opt_path);
+
+ /* find out if directory exists - if not, create it: */
+ dir_ptr = opendir(opt_path);
+ if (dir_ptr) /* don't leave DIR* open if it was already there */
+ {
+ DEBUGMSG(debug_fileops, "In find_tuxmath_dir() tuxmath dir opened OK\n");
+
+ closedir(dir_ptr);
+ return 1;
+ }
+ else /* need to create tuxmath config directory: */
+ {
+ FILE* fp;
+ int status;
+
+ if (!add_subdir)
+ return 0; // fail if the user specified a directory, but it doesn't exist
+
+ /* if user's home has a _file_ named .tuxmath (as from previous version */
+ /* of program), need to get rid of it or directory creation will fail: */
+ fp = fopen(opt_path, "r");
+ if (fp)
+ {
+ DEBUGMSG(debug_fileops, "In find_tuxmath_dir() - removing old .tuxmath file\n");
+
+ fclose(fp);
+ remove(opt_path);
+ }
+
+ DEBUGMSG(debug_fileops, "In find_tuxmath_dir() - trying to create .tuxmath dir\n");
+
+ //status = mkdir(opt_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+
+#ifndef BUILD_MINGW32
+ status = mkdir(opt_path, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+#else
+ status = mkdir(opt_path);
+#endif
+
+ DEBUGMSG(debug_fileops, "In find_tuxmath_dir() - mkdir returned: %d\n", status);
+
+ /* mkdir () returns 0 if successful */
+ if (0 == status)
+ {
+ fprintf(stderr, "\nfind_tuxmath_dir() - $HOME" OPTIONS_SUBDIR " created\n");
+ return 1;
+ }
+ else
+ {
+ fprintf(stderr, "\nfind_tuxmath_dir() - mkdir failed\n");
+ return 0;
+ }
+ }
+}
+
+
+
+/* A utility function to read lines from a textfile. Upon exit, it */
+/* returns the # of lines successfully read, and sets the pointer */
+/* array so that (*lines)[i] is a pointer to the text on the ith */
+/* line. Note this function also cleans up trailing whitespace, */
+/* and skips blank lines. */
+/* On entry, *lines must be NULL, as a sign that any previously */
+/* allocated memory has been freed. */
+static int read_lines_from_file(FILE *fp,char ***lines)
+{
+ char *fgets_return_val;
+ char name_buf[NAME_BUF_SIZE];
+ int n_entries;
+ int length;
+
+ n_entries = 0;
+ if(*lines != NULL) {
+ printf("Error: lines buffer was not NULL upon entry");
+ exit(EXIT_FAILURE);
+ }
+
+ fgets_return_val = fgets(name_buf,NAME_BUF_SIZE,fp);
+ while (fgets_return_val != NULL) {
+ // Strip terminal whitespace and \r
+ length = strlen(name_buf);
+ while (length>0 && (name_buf[length - 1] == '\r' || name_buf[length - 1] == '\n'|| name_buf[length-1] == ' ' || name_buf[length-1] == '\t')) {
+ name_buf[length - 1] = '\0';
+ length--;
+ }
+ if (length == 0) {
+ // If we get to a blank line, skip over it
+ fgets_return_val = fgets(name_buf,NAME_BUF_SIZE,fp);
+ continue;
+ }
+ n_entries++;
+ *lines = (char**) realloc(*lines,n_entries*sizeof(char*));
+ if (*lines == NULL) {
+ // Memory allocation error
+ printf("Error #1 allocating memory in read_lines_from_file\n");
+ exit(EXIT_FAILURE);
+ }
+ // Copy the cleaned-up line to the list
+ (*lines)[n_entries-1] = strdup(name_buf);
+ if ((*lines)[n_entries-1] == NULL) {
+ // Memory allocation error
+ printf("Error #2 allocating memory in read_lines_from_file\n");
+ exit(EXIT_FAILURE);
+ }
+ // Read the next line
+ fgets_return_val = fgets(name_buf,NAME_BUF_SIZE,fp);
+ }
+ return n_entries;
+}
+
+/* A utility function to go up one level in a directory hierarchy */
+static void dirname_up(char *dirname)
+{
+ int len;
+
+ len = strlen(dirname);
+ // Pass over all trailing "/"
+ while (len > 0 && dirname[len-1] == '/')
+ len--;
+
+ // Now pass over all non-"/" characters at the end
+ while (len > 0 && dirname[len-1] != '/')
+ len--;
+
+ // Terminate the string after that next-to-last "/"
+ dirname[len] = '\0';
+}
+
+/* Identify user by the directory name. We don't want to use the */
+/* whole path, just the name of the last subdirectory. */
+static char* get_user_name(void)
+{
+ char filepath2[PATH_MAX];
+
+ get_user_data_dir_with_subdir(filepath2);
+ return get_file_name(filepath2);
+}
+
+/* Extract the last "field" in a full pathname */
+static char* get_file_name(char *fullpath)
+{
+ char *file_name;
+
+ file_name = &fullpath[strlen(fullpath)-1];
+ /* Chop off trailing "/" */
+ while (file_name > &fullpath[0] && *file_name == '/') {
+ *file_name = '\0';
+ file_name--;
+ }
+ /* Back up to the next "/" */
+ while (file_name > &fullpath[0] && *file_name != '/')
+ file_name--;
+
+ return ++file_name;
+}
+
+
+/* Allows use of "true", "YES", T, etc. in text file for boolean values. */
+/* Return value of -1 means value string is not recognized. */
+/* Now reject non-"boolish" ints to prevent int/bool ambiguity */
+static int str_to_bool(const char* val)
+{
+ char* ptr;
+
+ /* Check for recognized boolean strings: */
+ if ((0 == strcasecmp(val, "true"))
+ ||(0 == strcasecmp(val, "t"))
+ ||(0 == strcasecmp(val, "yes"))
+ ||(0 == strcasecmp(val, "y"))
+ ||(0 == strcasecmp(val, "1"))
+ ||(0 == strcasecmp(val, "on")))
+ {
+ return 1;
+ }
+
+ if ((0 == strcasecmp(val, "false"))
+ ||(0 == strcasecmp(val, "f"))
+ ||(0 == strcasecmp(val, "no"))
+ ||(0 == strcasecmp(val, "n"))
+ ||(0 == strcasecmp(val, "0"))
+ ||(0 == strcasecmp(val, "off")))
+ {
+ return 0;
+ }
+
+ return -1;
+
+ /* Return -1 if any chars are non-digits: */
+ ptr = (char*)val;
+ while (*ptr)
+ {
+ if (!isdigit(*ptr))
+ return -1;
+ ptr++;
+ }
+
+ /* If we get to here, val should be an integer. */
+
+ if (atoi(val))
+ return 1;
+ else
+ return 0;
+}
+
+
+
+
+
+
+
diff --git a/src/fileops.h b/src/fileops.h
new file mode 100644
index 0000000..8feb6ef
--- /dev/null
+++ b/src/fileops.h
@@ -0,0 +1,225 @@
+/*
+C Interface: fileops.h
+
+Description: File operations - together, fileops.h and fileops.c contain
+all code involving disk operations. The older header files images.h and
+sounds.h have been incorporated here. The intention is to make it easier to
+port tuxmath to other operating systems, as code to read and write as
+well as paths and file locations may be more OS-dependent.
+
+
+Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2006
+Contains code originally written by Bill Kendrick (C) 2001.
+Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL)
+*/
+
+#ifndef FILEOPS_H
+#define FILEOPS_H
+
+#include "globals.h"
+
+/* Flag basically telling whether or not to allow admin-level */
+/* settings to be changed: */
+enum {
+ USER_CONFIG_FILE,
+ GLOBAL_CONFIG_FILE
+};
+
+/* Names for images (formerly in images.h) */
+enum {
+ IMG_TITLE,
+ IMG_LEFT,
+ IMG_LEFT_GRAY,
+ IMG_RIGHT,
+ IMG_RIGHT_GRAY,
+ IMG_TUX4KIDS,
+ IMG_NBS,
+ IMG_CITY_BLUE,
+ IMG_CITY_BLUE_EXPL1,
+ IMG_CITY_BLUE_EXPL2,
+ IMG_CITY_BLUE_EXPL3,
+ IMG_CITY_BLUE_EXPL4,
+ IMG_CITY_BLUE_EXPL5,
+ IMG_CITY_BLUE_DEAD,
+ IMG_CITY_GREEN,
+ IMG_CITY_GREEN_EXPL1,
+ IMG_CITY_GREEN_EXPL2,
+ IMG_CITY_GREEN_EXPL3,
+ IMG_CITY_GREEN_EXPL4,
+ IMG_CITY_GREEN_EXPL5,
+ IMG_CITY_GREEN_DEAD,
+ IMG_CITY_ORANGE,
+ IMG_CITY_ORANGE_EXPL1,
+ IMG_CITY_ORANGE_EXPL2,
+ IMG_CITY_ORANGE_EXPL3,
+ IMG_CITY_ORANGE_EXPL4,
+ IMG_CITY_ORANGE_EXPL5,
+ IMG_CITY_ORANGE_DEAD,
+ IMG_CITY_RED,
+ IMG_CITY_RED_EXPL1,
+ IMG_CITY_RED_EXPL2,
+ IMG_CITY_RED_EXPL3,
+ IMG_CITY_RED_EXPL4,
+ IMG_CITY_RED_EXPL5,
+ IMG_CITY_RED_DEAD,
+ IMG_SHIELDS,
+ IMG_MINI_COMET1,
+ IMG_MINI_COMET2,
+ IMG_MINI_COMET3,
+ IMG_NUMS,
+ IMG_LEDNUMS,
+ IMG_LED_NEG_SIGN,
+ IMG_PAUSED,
+ IMG_DEMO,
+ IMG_DEMO_SMALL,
+ IMG_KEYPAD,
+ IMG_KEYPAD_NO_NEG,
+ IMG_CONSOLE_LED,
+ IMG_CONSOLE_BASH,
+ IMG_TUX_CONSOLE1,
+ IMG_TUX_CONSOLE2,
+ IMG_TUX_CONSOLE3,
+ IMG_TUX_CONSOLE4,
+ IMG_TUX_RELAX1,
+ IMG_TUX_RELAX2,
+ IMG_TUX_EGYPT1,
+ IMG_TUX_EGYPT2,
+ IMG_TUX_EGYPT3,
+ IMG_TUX_EGYPT4,
+ IMG_TUX_DRAT,
+ IMG_TUX_YIPE,
+ IMG_TUX_YAY1,
+ IMG_TUX_YAY2,
+ IMG_TUX_YES1,
+ IMG_TUX_YES2,
+ IMG_TUX_SIT,
+ IMG_TUX_FIST1,
+ IMG_TUX_FIST2,
+ IMG_PENGUIN_FLAPDOWN,
+ IMG_PENGUIN_FLAPUP,
+ IMG_PENGUIN_INCOMING,
+ IMG_PENGUIN_GRUMPY,
+ IMG_PENGUIN_WORRIED,
+ IMG_PENGUIN_STANDING_UP,
+ IMG_PENGUIN_SITTING_DOWN,
+ IMG_PENGUIN_WALK_ON1,
+ IMG_PENGUIN_WALK_ON2,
+ IMG_PENGUIN_WALK_ON3,
+ IMG_PENGUIN_WALK_OFF1,
+ IMG_PENGUIN_WALK_OFF2,
+ IMG_PENGUIN_WALK_OFF3,
+ IMG_IGLOO_MELTED3,
+ IMG_IGLOO_MELTED2,
+ IMG_IGLOO_MELTED1,
+ IMG_IGLOO_HALF,
+ IMG_IGLOO_INTACT,
+ IMG_IGLOO_REBUILDING1,
+ IMG_IGLOO_REBUILDING2,
+ IMG_STEAM1,
+ IMG_STEAM2,
+ IMG_STEAM3,
+ IMG_STEAM4,
+ IMG_STEAM5,
+ IMG_CLOUD,
+ IMG_SNOW1,
+ IMG_SNOW2,
+ IMG_SNOW3,
+ IMG_EXTRA_LIFE,
+ IMG_WAVE,
+ IMG_SCORE,
+ IMG_STOP,
+ IMG_NUMBERS,
+ IMG_GAMEOVER,
+ IMG_GAMEOVER_WON,
+ BG_STARS,
+ IMG_ASTEROID1,
+ IMG_ASTEROID2,
+ IMG_ASTEROID3,
+ IMG_SHIP01,
+ IMG_FACTOROIDS,
+ IMG_FACTORS,
+ IMG_TUX_LITTLE,
+ IMG_GOOD,
+ NUM_IMAGES
+};
+
+/* Names for animated images (sprites) */
+enum {
+ IMG_COMET,
+ IMG_BONUS_COMET,
+ IMG_COMET_EXPL,
+ IMG_BONUS_COMET_EXPL,
+ NUM_SPRITES
+};
+
+/* Names for game sounds (formerly in sounds.h): */
+enum {
+ SND_HARP,
+ SND_POP,
+ SND_TOCK,
+ SND_LASER,
+ SND_BUZZ,
+ SND_ALARM,
+ SND_SHIELDSDOWN,
+ SND_EXPLOSION,
+ SND_SIZZLE,
+ SND_BONUS_COMET,
+ SND_EXTRA_LIFE,
+ NUM_SOUNDS
+};
+
+/* Names for background music (also formerly in sounds.h): */
+enum {
+ MUS_GAME,
+ MUS_GAME2,
+ MUS_GAME3,
+ NUM_MUSICS
+};
+
+/* Names for game summary files: */
+enum {
+ SUMMARY1,
+ SUMMARY2,
+ SUMMARY3,
+ SUMMARY4,
+ SUMMARY5,
+ SUMMARY6,
+ SUMMARY7,
+ SUMMARY8,
+ SUMMARY9,
+ SUMMARY10,
+ NUM_SUMMARIES
+};
+
+/* These functions used by setup() and titlescreen() to read in settings: */
+int read_global_config_file(void);
+int read_user_config_file(void);
+int parse_lesson_file_directory(void);
+int read_named_config_file(const char* fn);
+int write_user_config_file(void);
+int read_high_scores(void);
+int append_high_score(int tableid,int score,char *player_name);
+void set_high_score_path(void);
+void set_user_data_dir(const char* dirname);
+int write_goldstars(void);
+
+/* These functions are used by titlescreen() to assist with the login */
+int read_user_menu_entries(char ***user_names);
+int read_user_login_questions(char ***user_login_questions);
+int high_scores_found_in_user_dir(void);
+void set_high_score_path(void);
+void user_data_dirname_up(void);
+void user_data_dirname_down(char *subdir);
+
+/* These functions used by game() to record game summary: */
+int write_pregame_summary(void);
+int write_postgame_summary(void);
+
+int load_image_data();
+
+
+#ifndef NOSOUND
+int load_sound_data();
+#endif
+
+#endif
diff --git a/src/fileops_media.c b/src/fileops_media.c
new file mode 100644
index 0000000..d511092
--- /dev/null
+++ b/src/fileops_media.c
@@ -0,0 +1,261 @@
+#include "tuxmath.h"
+#include "fileops.h"
+#include "loaders.h"
+#include "options.h"
+#include "SDL_extras.h"
+
+int glyph_offset;
+
+/*****************************************************************/
+/* Loading of data files for images and sounds. */
+/* These functions also draw some user feedback to */
+/* display the progress of the loading. */
+/*****************************************************************/
+
+/* returns 1 if all data files successfully loaded, 0 otherwise. */
+
+/* TODO load only "igloo" or "city" files, not both. */
+/* TODO get rid of files no longer used. */
+
+int load_image_data()
+{
+ int i;
+
+ static char* image_filenames[NUM_IMAGES] = {
+ "status/title.png",
+ "status/left.png",
+ "status/left_gray.png",
+ "status/right.png",
+ "status/right_gray.png",
+ "status/tux4kids.png",
+ "status/nbs.png",
+ "cities/city-blue.png",
+ "cities/csplode-blue-1.png",
+ "cities/csplode-blue-2.png",
+ "cities/csplode-blue-3.png",
+ "cities/csplode-blue-4.png",
+ "cities/csplode-blue-5.png",
+ "cities/cdead-blue.png",
+ "cities/city-green.png",
+ "cities/csplode-green-1.png",
+ "cities/csplode-green-2.png",
+ "cities/csplode-green-3.png",
+ "cities/csplode-green-4.png",
+ "cities/csplode-green-5.png",
+ "cities/cdead-green.png",
+ "cities/city-orange.png",
+ "cities/csplode-orange-1.png",
+ "cities/csplode-orange-2.png",
+ "cities/csplode-orange-3.png",
+ "cities/csplode-orange-4.png",
+ "cities/csplode-orange-5.png",
+ "cities/cdead-orange.png",
+ "cities/city-red.png",
+ "cities/csplode-red-1.png",
+ "cities/csplode-red-2.png",
+ "cities/csplode-red-3.png",
+ "cities/csplode-red-4.png",
+ "cities/csplode-red-5.png",
+ "cities/cdead-red.png",
+ "cities/shields.png",
+ "comets/mini_comet1.png",
+ "comets/mini_comet2.png",
+ "comets/mini_comet3.png",
+ "status/nums.png",
+ "status/lednums.png",
+ "status/led_neg_sign.png",
+ "status/paused.png",
+ "status/demo.png",
+ "status/demo-small.png",
+ "status/keypad.png",
+ "status/keypad_no_neg.png",
+ "tux/console_led.png",
+ "tux/console_bash.png",
+ "tux/tux-console1.png",
+ "tux/tux-console2.png",
+ "tux/tux-console3.png",
+ "tux/tux-console4.png",
+ "tux/tux-relax1.png",
+ "tux/tux-relax2.png",
+ "tux/tux-egypt1.png",
+ "tux/tux-egypt2.png",
+ "tux/tux-egypt3.png",
+ "tux/tux-egypt4.png",
+ "tux/tux-drat.png",
+ "tux/tux-yipe.png",
+ "tux/tux-yay1.png",
+ "tux/tux-yay2.png",
+ "tux/tux-yes1.png",
+ "tux/tux-yes2.png",
+ "tux/tux-sit.png",
+ "tux/tux-fist1.png",
+ "tux/tux-fist2.png",
+ "penguins/flapdown.png",
+ "penguins/flapup.png",
+ "penguins/incoming.png",
+ "penguins/grumpy.png",
+ "penguins/worried.png",
+ "penguins/standing-up.png",
+ "penguins/sitting-down.png",
+ "penguins/walk-on1.png",
+ "penguins/walk-on2.png",
+ "penguins/walk-on3.png",
+ "penguins/walk-off1.png",
+ "penguins/walk-off2.png",
+ "penguins/walk-off3.png",
+ "igloos/melted3.png",
+ "igloos/melted2.png",
+ "igloos/melted1.png",
+ "igloos/half.png",
+ "igloos/intact.png",
+ "igloos/rebuilding1.png",
+ "igloos/rebuilding2.png",
+ "igloos/steam1.png",
+ "igloos/steam2.png",
+ "igloos/steam3.png",
+ "igloos/steam4.png",
+ "igloos/steam5.png",
+ "igloos/cloud.png",
+ "igloos/snow1.png",
+ "igloos/snow2.png",
+ "igloos/snow3.png",
+ "igloos/extra_life.png",
+ "status/wave.png",
+ "status/score.png",
+ "status/stop.png",
+ "status/numbers.png",
+ "status/gameover.png",
+ "status/gameover_won.png",
+ "factoroids/gbstars.png",
+ "factoroids/asteroid1.png",
+ "factoroids/asteroid2.png",
+ "factoroids/asteroid3.png",
+ "factoroids/ship01.png",
+ "factoroids/factoroids.png",
+ "factoroids/factors.png",
+ "factoroids/tux.png",
+ "factoroids/good.png"
+ };
+
+ static char* sprite_filenames[NUM_IMAGES] = {
+ "comets/comet",
+ "comets/bonus_comet",
+ "comets/cometex",
+ "comets/bonus_cometex"
+ };
+
+ /* Load static images: */
+ for (i = 0; i < NUM_IMAGES; i++)
+ {
+ images[i] = LoadImage(image_filenames[i], IMG_ALPHA);
+
+ if (images[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I couldn't load a graphics file:\n"
+ "%s\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", image_filenames[i], SDL_GetError());
+ return 0;
+ }
+ }
+
+ /* Load animated graphics: */
+ for (i = 0; i < NUM_SPRITES; i++)
+ {
+ sprites[i] = LoadSprite(sprite_filenames[i], IMG_ALPHA);
+
+ if (sprites[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I couldn't load a graphics file:\n"
+ "%s\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", sprite_filenames[i], SDL_GetError());
+ return 0;
+ }
+ }
+
+ glyph_offset = 0;
+
+#ifdef REPLACE_WAVESCORE
+ /* Replace the "WAVE" and "SCORE" with translate-able versions */
+ SDL_FreeSurface(images[IMG_WAVE]);
+ images[IMG_WAVE] = SimpleTextWithOffset(_("WAVE"), 28, &white, &glyph_offset);
+ SDL_FreeSurface(images[IMG_SCORE]);
+ images[IMG_SCORE] = SimpleTextWithOffset(_("SCORE"), 28, &white, &glyph_offset);
+ glyph_offset++;
+#endif
+
+ /* If we make it to here OK, return 1: */
+ return 1;
+}
+
+
+
+
+
+#ifndef NOSOUND
+int load_sound_data(void)
+{
+ int i = 0;
+
+ static char* sound_filenames[NUM_SOUNDS] = {
+ DATA_PREFIX "/sounds/harp.wav",
+ DATA_PREFIX "/sounds/pop.wav",
+ DATA_PREFIX "/sounds/tock.wav",
+ DATA_PREFIX "/sounds/laser.wav",
+ DATA_PREFIX "/sounds/buzz.wav",
+ DATA_PREFIX "/sounds/alarm.wav",
+ DATA_PREFIX "/sounds/shieldsdown.wav",
+ DATA_PREFIX "/sounds/explosion.wav",
+ DATA_PREFIX "/sounds/sizzling.wav",
+ DATA_PREFIX "/sounds/towerclock.wav",
+ DATA_PREFIX "/sounds/cheer.wav"
+ };
+
+ static char* music_filenames[NUM_MUSICS] = {
+ DATA_PREFIX "/sounds/game.mod",
+ DATA_PREFIX "/sounds/game2.mod",
+ DATA_PREFIX "/sounds/game3.mod"
+ };
+
+ /* skip loading sound files if sound system not available: */
+ if (Opts_UsingSound())
+ {
+ for (i = 0; i < NUM_SOUNDS; i++)
+ {
+ sounds[i] = Mix_LoadWAV(sound_filenames[i]);
+
+ if (sounds[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I couldn't load a sound file:\n"
+ "%s\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", sound_filenames[i], SDL_GetError());
+ return 0;
+ }
+ }
+
+
+ for (i = 0; i < NUM_MUSICS; i++)
+ {
+ musics[i] = Mix_LoadMUS(music_filenames[i]);
+
+ if (musics[i] == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I couldn't load a music file:\n"
+ "%s\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", music_filenames[i], SDL_GetError());
+ return 0;
+ }
+
+ }
+ }
+ return 1;
+}
+
+#endif /* NOSOUND */
diff --git a/src/game.c b/src/game.c
new file mode 100644
index 0000000..9fbd7d0
--- /dev/null
+++ b/src/game.c
@@ -0,0 +1,3956 @@
+/*
+ game.c
+
+ For TuxMath
+ The main game loop!
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - February 18, 2004
+
+ Revised by David Bruce, Tim Holy and others
+ 2005-2009
+*/
+
+/* put this first so we get <config.h> and <gettext.h> immediately: */
+#include "tuxmath.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "SDL.h"
+#include "SDL_image.h"
+
+#ifndef NOSOUND
+#include "SDL_mixer.h"
+#endif
+
+/* Make sure we don't try to call network code if we built without */
+/* network support: */
+#ifdef HAVE_LIBSDL_NET
+#include "network.h"
+#endif
+
+#include "transtruct.h"
+#include "game.h"
+#include "fileops.h"
+#include "setup.h"
+#include "loaders.h"
+#include "mathcards.h"
+#include "multiplayer.h"
+#include "titlescreen.h"
+#include "options.h"
+#include "SDL_extras.h"
+#include "pixels.h"
+#include "throttle.h"
+
+
+#define FPS 15 /* 15 frames per second */
+#define MS_PER_FRAME (1000 / FPS)
+
+#define CITY_EXPL_START (3 * 5) /* Must be mult. of 5 (number of expl frames) */
+#define ANIM_FRAME_START (4 * 2) /* Must be mult. of 2 (number of tux frames) */
+#define GAMEOVER_COUNTER_START 40
+#define LEVEL_START_WAIT_START 20
+#define LASER_START 5
+#define FLAPPING_START 12
+#define FLAPPING_INTERVAL 500
+#define STEAM_START 15
+#define IGLOO_SWITCH_START 8
+#define STANDING_COUNTER_START 8
+#define EVAPORATING_COUNTER_START 100
+
+#define PENGUIN_WALK_SPEED 3
+#define SNOWFLAKE_SPEED 6
+#define SNOWFLAKE_SEPARATION 3
+
+const int SND_IGLOO_SIZZLE = SND_SIZZLE;
+const int IMG_CITY_NONE = 0;
+
+typedef struct comet_type {
+ int alive;
+ int expl;
+ int city;
+ float x, y;
+ int answer;
+ int bonus;
+ int zapped;
+ MC_FlashCard flashcard;
+ Uint32 time_started;
+} comet_type;
+
+/* Local (to game.c) 'globals': */
+
+static int gameover_counter;
+static int game_status;
+static int user_quit_received;
+static int total_questions_left;
+static int paused;
+static int wave;
+static int score;
+static int pre_wave_score;
+static int prev_wave_comets;
+static int slowdown;
+static int num_attackers;
+static float speed;
+static int demo_countdown;
+static int tux_anim;
+static int tux_anim_frame;
+static int num_cities_alive;
+static int tux_img;
+static int old_tux_img;
+static int frame;
+static int neg_answer_picked;
+static int tux_pressing;
+static int doing_answer;
+static int level_start_wait;
+static int last_bkgd;
+static int igloo_vertical_offset;
+//static int extra_life_counter;
+static int bonus_comet_counter;
+static int extra_life_earned;
+static int key_pressed;
+static int game_over_other;
+static int game_over_won;
+
+/* Feedback-related variables */
+static int city_expl_height;
+static int comet_feedback_number;
+static float comet_feedback_height;
+static float danger_level;
+
+static int digits[MC_MAX_DIGITS];
+
+static comet_type* comets = NULL;
+static city_type* cities = NULL;
+static penguin_type* penguins = NULL;
+static steam_type* steam = NULL;
+
+static cloud_type cloud;
+static laser_type laser;
+static SDL_Surface* bkgd = NULL; //640x480 background (windowed)
+static SDL_Surface* scaled_bkgd = NULL; //native resolution (fullscreen)
+
+static SDL_Surface* current_bkgd()
+ { return screen->flags & SDL_FULLSCREEN ? scaled_bkgd : bkgd; }
+
+static game_message s1, s2, s3, s4, s5;
+static int start_message_chosen = 0;
+
+/*****************************************************************/
+MC_FlashCard quest_queue[QUEST_QUEUE_SIZE]; //current questions
+int remaining_quests = 0;
+static int comet_counter = 0;
+static int lan_players = 0;
+char lan_pnames[MAX_CLIENTS][NAME_SIZE];
+int lan_pscores[MAX_CLIENTS];
+/****************************************************************/
+
+typedef struct {
+ int x_is_blinking;
+ int extra_life_is_blinking;
+ int laser_enabled;
+} help_controls_type;
+static help_controls_type help_controls;
+
+/* Local function prototypes: */
+static int game_initialize(void);
+static void game_cleanup(void);
+static void game_handle_help(void);
+static void game_handle_user_events(void);
+static void game_handle_demo(void);
+static void game_handle_answer(void);
+static void game_countdown(void);
+static void game_handle_tux(void);
+static void game_handle_comets(void);
+static void game_handle_cities(void);
+static void game_handle_penguins(void);
+static void game_handle_steam(void);
+static void game_handle_extra_life(void);
+static void game_draw(void);
+static void game_draw_background(void);
+static void game_draw_comets(void);
+static void game_draw_cities(void);
+static void game_draw_misc(void);
+
+static int check_extra_life(void);
+static int check_exit_conditions(void);
+
+static void game_set_message(game_message*, const char* ,int x, int y);
+static void game_clear_message(game_message*);
+static void game_clear_messages(void);
+void game_write_message(const game_message* msg);
+static void game_write_messages(void);
+static void draw_led_console(void);
+static void draw_question_counter(void);
+static void draw_console_image(int i);
+
+static void reset_level(void);
+static int add_comet(void);
+static void add_score(int inc);
+static void reset_comets(void);
+static int num_comets_alive(void);
+
+static void game_mouse_event(SDL_Event event);
+static void game_key_event(SDLKey key, SDLMod mod);
+static void free_on_exit(void);
+
+static void help_add_comet(const char* formula_str, const char* ans_str);
+static int help_renderframe_exit(void);
+static void game_recalc_positions(void);
+
+void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel);
+
+/*****************************************************/
+#ifdef HAVE_LIBSDL_NET
+void game_handle_net_messages(void);
+void game_handle_net_msg(char* buf);
+int add_quest_recvd(char* buf);
+int remove_quest_recvd(char* buf);
+int connected_players_recvd(char* buf);
+int update_score_recvd(char* buf);
+int erase_comet_on_screen(comet_type* comet_ques);
+MC_FlashCard* search_queue_by_id(int id);
+comet_type* search_comets_by_id(int id);
+/******************************************************/
+#endif
+
+void print_current_quests(void);
+
+static void print_exit_conditions(void);
+static void print_status(void);
+
+
+/* --- MAIN GAME FUNCTION!!! --- */
+
+
+int game(void)
+{
+ Uint32 timer = 0;
+
+ DEBUGMSG(debug_game, "Entering game():\n");
+
+ //see if the option matches the actual screen
+ if (Opts_GetGlobalOpt(FULLSCREEN) == !(screen->flags & SDL_FULLSCREEN) )
+ {
+ ;//SwitchScreenMode(); //Huh??
+ }
+
+
+ /* most code moved into smaller functions (game_*()): */
+ if (!game_initialize())
+ {
+ fprintf(stderr, "\ngame_initialize() failed!");
+ return 0;
+ }
+
+
+ if (Opts_HelpMode()) {
+ game_handle_help();
+ game_cleanup();
+ return GAME_OVER_OTHER;
+ }
+
+
+
+ /* --- MAIN GAME LOOP: --- */
+ do
+ {
+ /* reset or increment various things with each loop: */
+ frame++;
+ old_tux_img = tux_img;
+ tux_pressing = 0;
+
+ if (laser.alive > 0)
+ {
+ laser.alive--;
+ }
+
+ /* Check for server messages if we are playing a LAN game: */
+#ifdef HAVE_LIBSDL_NET
+ if(Opts_LanMode())
+ {
+ game_handle_net_messages();
+ }
+#endif
+ /* Most code now in smaller functions: */
+
+ // 1. Check for user input
+ game_handle_user_events();
+ // 2. Update state of various game elements
+ game_handle_demo();
+ game_handle_answer();
+ game_countdown();
+ game_handle_tux();
+ game_handle_comets();
+ game_handle_cities();
+ game_handle_penguins();
+ game_handle_steam();
+ game_handle_extra_life();
+ // 3. Redraw:
+ game_draw();
+ // 4. Figure out if we should leave loop:
+ game_status = check_exit_conditions();
+
+ /* If we're in "PAUSE" mode, pause! */
+ if (paused)
+ {
+ pause_game();
+ paused = 0;
+ }
+
+ /* Keep playing music: */
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ {
+ if (!Mix_PlayingMusic())
+ {
+ Mix_PlayMusic(musics[MUS_GAME + (rand() % 3)], 0);
+ }
+ }
+#endif
+
+
+ /* Pause (keep frame-rate event) */
+ Throttle(MS_PER_FRAME, &timer);
+
+ }
+ while(GAME_IN_PROGRESS == game_status);
+ /* END OF MAIN GAME LOOP! */
+
+
+ DEBUGCODE(debug_game) print_exit_conditions();
+
+ /* TODO: need better "victory" screen with animation, special music, etc., */
+ /* as well as options to review missed questions, play again using missed */
+ /* questions as question list, etc. */
+ switch (game_status)
+ {
+ SDL_Rect dest_message;
+ SDL_Rect dest_tux;
+ SDL_Event event;
+
+ case GAME_OVER_WON:
+ {
+ int looping = 1;
+ int tux_offset = 0;
+ int tux_step = -3;
+
+ /* set up victory message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER_WON]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER_WON]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER_WON]->w;
+ dest_message.h = images[IMG_GAMEOVER_WON]->h;
+
+ do
+ {
+ frame++;
+
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ }
+ }
+
+ if (current_bkgd() )
+ SDL_BlitSurface(current_bkgd(), NULL, screen, NULL);
+
+ /* draw flashing victory message: */
+ if (((frame / 2) % 4))
+ {
+ SDL_BlitSurface(images[IMG_GAMEOVER_WON], NULL, screen, &dest_message);
+ }
+
+ /* draw dancing tux: */
+ draw_console_image(IMG_CONSOLE_BASH);
+ /* walk tux back and forth */
+ tux_offset += tux_step;
+ /* select tux_egypt images according to which way tux is headed: */
+ if (tux_step < 0)
+ tux_img = IMG_TUX_EGYPT1 + ((frame / 3) % 2);
+ else
+ tux_img = IMG_TUX_EGYPT3 + ((frame / 3) % 2);
+
+ /* turn around if we go far enough: */
+ if (tux_offset >= (screen->w)/2
+ || tux_offset <= -(screen->w)/2)
+ {
+ tux_step = -tux_step;
+ }
+
+ dest_tux.x = ((screen->w - images[tux_img]->w) / 2) + tux_offset;
+ dest_tux.y = (screen->h - images[tux_img]->h);
+ dest_tux.w = images[tux_img]->w;
+ dest_tux.h = images[tux_img]->h;
+
+ SDL_BlitSurface(images[tux_img], NULL, screen, &dest_tux);
+
+/* draw_console_image(tux_img);*/
+
+ SDL_Flip(screen);
+ Throttle(MS_PER_FRAME, &timer);
+ }
+ while (looping);
+ break;
+ }
+
+ case GAME_OVER_ERROR:
+ DEBUGMSG(debug_game, "game() exiting with error:\n");
+ case GAME_OVER_LOST:
+ case GAME_OVER_OTHER:
+ {
+ int looping = 1;
+
+ /* set up GAMEOVER message: */
+ dest_message.x = (screen->w - images[IMG_GAMEOVER]->w) / 2;
+ dest_message.y = (screen->h - images[IMG_GAMEOVER]->h) / 2;
+ dest_message.w = images[IMG_GAMEOVER]->w;
+ dest_message.h = images[IMG_GAMEOVER]->h;
+
+ do
+ {
+ frame++;
+
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT
+ || event.type == SDL_KEYDOWN
+ || event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ looping = 0;
+ }
+ }
+
+ SDL_BlitSurface(images[IMG_GAMEOVER], NULL, screen, &dest_message);
+ SDL_Flip(screen);
+
+ Throttle(MS_PER_FRAME, &timer);
+ }
+ while (looping);
+
+ break;
+ }
+
+ case GAME_OVER_ESCAPE:
+ {
+ break;
+ }
+
+ case GAME_OVER_WINDOW_CLOSE:
+ {
+ break;
+ }
+
+ }
+
+ game_cleanup();
+
+ /* Write post-game info to game summary file: */
+ if (Opts_SaveSummary())
+ {
+ write_postgame_summary();
+ }
+
+ /* Save score in case needed for high score table: */
+ Opts_SetLastScore(score);
+
+ /* Return the chosen command: */
+ if (GAME_OVER_WINDOW_CLOSE == game_status)
+ {
+ /* program exits: */
+ cleanup();
+ DEBUGMSG(debug_game, "Leaving game() from window close\n");
+ return 1;
+ }
+ else
+ {
+ /* return to title() screen: */
+ DEBUGMSG(debug_game, "Leaving game() normally\n");
+ return game_status;
+ }
+}
+
+
+
+
+
+
+#ifdef HAVE_LIBSDL_NET
+/***************** Functions for LAN support *****************/
+
+/*Examines the network messages from the buffer and calls
+ appropriate function accordingly*/
+
+void game_handle_net_messages(void)
+{
+ char buf[NET_BUF_LEN];
+ int done = 0;
+ while(!done)
+ {
+ switch(LAN_NextMsg(buf))
+ {
+ case 1: //Message received (e.g. a new question):
+ game_handle_net_msg(buf);
+ break;
+ case 0: //No more messages:
+ done = 1;
+ break;
+ case -1: //Error in networking or server:
+ game_cleanup();
+ game_status = GAME_OVER_ERROR;
+ default:
+ {}
+ }
+ }
+}
+
+
+void game_handle_net_msg(char* buf)
+{
+ DEBUGMSG(debug_lan, "Received server message: %s\n", buf);
+
+ if(strncmp(buf, "PLAYER_MSG", strlen("PLAYER_MSG")) == 0)
+ {
+ DEBUGMSG(debug_lan, "buf is %s\n", buf);
+ }
+
+ else if(strncmp(buf, "ADD_QUESTION", strlen("ADD_QUESTION")) == 0)
+ {
+ if(!add_quest_recvd(buf))
+ printf("ADD_QUESTION received but could not add question\n");
+ else
+ DEBUGCODE(debug_game) print_current_quests();
+ }
+
+ else if(strncmp(buf, "REMOVE_QUESTION", strlen("REMOVE_QUESTION")) == 0)
+ {
+ if(!remove_quest_recvd(buf)) //remove the question with id in buf
+ printf("REMOVE_QUESTION received but could not remove question\n");
+ else
+ DEBUGCODE(debug_game) print_current_quests();
+ }
+
+ else if(strncmp(buf, "TOTAL_QUESTIONS", strlen("TOTAL_QUESTIONS")) == 0)
+ {
+ sscanf(buf,"%*s %d", &total_questions_left);
+ if(!total_questions_left)
+ game_over_other = 1;
+ }
+
+ else if(strncmp(buf, "CONNECTED_PLAYERS", strlen("CONNECTED_PLAYERS")) == 0)
+ {
+ connected_players_recvd(buf);
+ }
+
+ else if(strncmp(buf, "UPDATE_SCORE", strlen("UPDATE_SCORE")) == 0)
+ {
+ update_score_recvd(buf);
+ }
+
+ else if(strncmp(buf, "MISSION_ACCOMPLISHED", strlen("MISSION_ACCOMPLISHED")) == 0)
+ {
+ game_over_won = 1;
+ }
+ else
+ {
+ DEBUGMSG(debug_game, "Unrecognized message from server: %s\n", buf);
+ }
+}
+
+
+int add_quest_recvd(char* buf)
+{
+ /* Empty slots indicated by question_id == -1 */
+ MC_FlashCard* fc = search_queue_by_id(-1);
+
+ DEBUGMSG(debug_game, "Enter add_quest_recvd(), buf is: %s\n", buf);
+
+ // if fc = NULL means no empty slot for question
+ if(!buf)
+ {
+ printf("NULL buf\n");
+ return 0;
+ }
+
+ if(!fc)
+ {
+ printf("NULL fc - no empty slot for question\n");
+ return 0;
+ }
+
+ /* function call to parse buffer and receive question */
+ if(!Make_Flashcard(buf, fc))
+ {
+ printf("Unable to parse buffer into FlashCard\n");
+ return 0;
+ }
+
+ DEBUGCODE(debug_game) print_current_quests();
+
+ /* If we have an open comet slot, put question in: */
+
+ if(num_attackers > 0)
+ if(add_comet())
+ num_attackers--;
+
+ return 1;
+}
+
+
+int remove_quest_recvd(char* buf)
+{
+ int id = 0;
+ char* p = NULL;
+ MC_FlashCard* fc = NULL;
+ comet_type* comet_screen;
+
+ if(!buf)
+ return 0;
+
+ p = strchr(buf, '\t');
+ if(!p)
+ return 0;
+
+ p++;
+ id = atoi(p);
+
+ DEBUGMSG(debug_game, "remove_quest_recvd() for id = %d\n", id);
+
+ if(id < 1) // The question_id can never be negative or zero
+ return 0;
+
+ comet_screen = search_comets_by_id(id);
+ fc = search_queue_by_id(id);
+ if(!comet_screen && !fc)
+ return 0;
+
+ if(comet_screen)
+ {
+ DEBUGMSG(debug_game, "comet on screen found with question_id = %d\n", id);
+ erase_comet_on_screen(comet_screen);
+ }
+
+ //NOTE: normally the question should no longer be in the queue,
+ //so the next statement should not get executed:
+ if(fc)
+ {
+ DEBUGMSG(debug_game,
+ "Note - request to erase question still in queue: %s\n",
+ fc->formula_string);
+ MC_ResetFlashCard(fc);
+ }
+
+ return 1;
+}
+
+
+/* Here we have been told how many LAN players are still */
+/* in the game. This should always be followed by a series */
+/* of UPDATE_SCORE messages, each with the name and score */
+/* of a player. We clear out the array to get rid of anyone */
+/* who has disconnected. */
+int connected_players_recvd(char* buf)
+{
+ int n = 0;
+ int i = 0;
+ char* p = NULL;
+
+ if(!buf)
+ return 0;
+
+ p = strchr(buf, '\t');
+ if(!p)
+ return 0;
+ p++;
+ n = atoi(p);
+
+ DEBUGMSG(debug_game, "connected_players_recvd() for n = %d\n", n);
+
+ if(n < 0 || n > MAX_CLIENTS)
+ {
+ fprintf(stderr, "connected_players_recvd() - illegal value: %d\n", n);
+ return -1;
+ }
+ lan_players = n;
+
+ /* Reset array - we should be getting new values in immediately */
+ /* following messages. */
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ lan_pnames[i][0] = '\0';
+ lan_pscores[i] = -1;
+ }
+ return n;
+}
+
+/* Receive the name and current score of a currently-connected */
+/* LAN player. */
+int update_score_recvd(char* buf)
+{
+ int i = 0;
+ char* p = NULL;
+
+ if(buf == NULL)
+ return 0;
+ // get i:
+ p = strchr(buf, '\t');
+ if(!p)
+ return 0;
+ p++;
+ i = atoi(p);
+
+ //get name:
+ p = strchr(p, '\t');
+ if(!p)
+ return 0;
+ p++;
+ strncpy(lan_pnames[i], p, NAME_SIZE);
+ //This has most likely copied the score field as well, so replace the
+ //tab delimiter with a null to terminate the string:
+ {
+ char* p2 = strchr(lan_pnames[i], '\t');
+ if (p2)
+ *p2 = '\0';
+ }
+
+ //Now get score:
+ p = strchr(p, '\t');
+ if(p)
+ lan_pscores[i] = atoi(p);
+
+ DEBUGMSG(debug_lan, "update_score_recvd() - buf is: %s\n", buf);
+ DEBUGMSG(debug_lan, "i is: %d\tname is: %s\tscore is: %d\n",
+ i, lan_pnames[i], lan_pscores[i]);
+
+ return 1;
+}
+
+/* Return a pointer to an empty comet slot, */
+/* returning NULL if no vacancy found: */
+
+MC_FlashCard* search_queue_by_id(int id)
+{
+ int i = 0;
+ for(i = 0; i < QUEST_QUEUE_SIZE; i++)
+ {
+ if(quest_queue[i].question_id == id)
+ return &quest_queue[i];
+ }
+ //if we don't find a match:
+ return NULL;
+}
+
+
+comet_type* search_comets_by_id(int id)
+{
+ int i;
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].flashcard.question_id == id)
+ {
+ DEBUGMSG(debug_lan, "the question id is in slot %d\n", i);
+ return &comets[i];
+ }
+ }
+ // Didn't find it:
+ return NULL;
+}
+
+
+
+int erase_comet_on_screen(comet_type* comet)
+{
+ if(!comet)
+ return 0;
+ //setting expl to 0 starts comet explosion animation
+ comet->expl = 0;
+
+ //TODO consider more elaborate sound or animation
+ playsound(SND_SIZZLE);
+
+ return 1;
+}
+
+#endif
+
+/* Print the current questions and the number of remaining questions: */
+void print_current_quests(void)
+{
+ int i;
+ printf("\n------------ Current Questions: -----------\n");
+ for(i = 0; i < Opts_MaxComets(); i++)
+ {
+ if(comets[i].alive == 1)
+ printf("Comet %d - question %d:\t%s\n", i, comets[i].flashcard.question_id, comets[i].flashcard.formula_string);
+
+ }
+ printf("--------------Question Queue-----------------\n");
+ for(i = 0; i < QUEST_QUEUE_SIZE; i++)
+ {
+ if(quest_queue[i].question_id != -1)
+ printf("quest_queue %d - question %d:\t%s\n", i, quest_queue[i].question_id, quest_queue[i].formula_string);
+ else
+ printf("quest_queue %d:\tEmpty\n", i);
+ }
+ printf("------------------------------------------\n");
+}
+
+
+
+
+/*
+Set one to four lines of text to display at the game's start. Eventually
+this should stylishly fade out over the first few moments of the game.
+*/
+void game_set_start_message(const char* m1, const char* m2,
+ const char* m3, const char* m4)
+{
+ game_set_message(&s1, m1, -1, screen->h * 2 / 10);
+ game_set_message(&s2, m2, screen->w / 2 - 40, screen->h * 3 / 10);
+ game_set_message(&s3, m3, screen->w / 2 - 40, screen->h * 4 / 10);
+ game_set_message(&s4, m4, screen->w / 2 - 40, screen->h * 5 / 10);
+ start_message_chosen = 1;
+}
+
+
+
+int game_initialize(void)
+{
+ int i,img;
+
+ DEBUGMSG(debug_game,"Entering game_initialize()\n");
+
+ /* Clear window: */
+ SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
+ SDL_Flip(screen);
+
+ game_status = GAME_IN_PROGRESS;
+ gameover_counter = -1;
+ user_quit_received = 0;
+
+ /* Make sure we don't try to call network code if we built without */
+ /* network support: */
+ /* NOTE with this check it should be safe to assume we have SDL_net */
+ /* for the rest of this file if Opts_LanMode() == 1 */
+#ifndef HAVE_LIBSDL_NET
+ Opts_SetLanMode(0);
+#endif
+
+ /* Start MathCards backend, unless we are getting questions from network: */
+ /* FIXME may need to move this into tuxmath.c to accomodate option */
+ /* to use MC_StartUsingWrongs() */
+ /* NOTE MC_StartGame() will return 0 if the list length is zero due */
+ /* (for example) to all math operations being deselected */
+ /* NOTE if we are playing a network game, MC_StartGame() has already */
+ /* been called on the server by the time we get to here: */
+
+ if(!Opts_LanMode())
+ {
+ if (!MC_StartGame())
+ {
+ fprintf(stderr, "\nMC_StartGame() failed!");
+ return 0;
+ }
+ DEBUGMSG(debug_mathcards | debug_game,"MC_StartGame() finished.\n")
+ }
+ else
+ {
+ /* Reset question queue and player name/score lists: */
+ int i;
+
+ for(i = 0; i < QUEST_QUEUE_SIZE; i ++)
+ MC_ResetFlashCard(&(quest_queue[i]));
+
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ lan_pnames[i][0] = '\0';
+ lan_pscores[i] = -1;
+ }
+ }
+
+ /* Allocate memory */
+ comets = NULL; // set in case allocation fails partway through
+ cities = NULL;
+ penguins = NULL;
+ steam = NULL;
+ comets = (comet_type *) malloc(MAX_MAX_COMETS * sizeof(comet_type));
+ if (comets == NULL)
+ {
+ printf("Allocation of comets failed");
+ return 0;
+ }
+
+ cities = (city_type *) malloc(NUM_CITIES * sizeof(city_type));
+ if (cities == NULL)
+ {
+ printf("Allocation of cities failed");
+ return 0;
+ }
+
+ penguins = (penguin_type *) malloc(NUM_CITIES * sizeof(penguin_type));
+ if (penguins == NULL)
+ {
+ printf("Allocation of penguins failed");
+ return 0;
+ }
+
+ steam = (steam_type *) malloc(NUM_CITIES * sizeof(steam_type));
+ if (steam == NULL)
+ {
+ printf("Allocation of steam failed");
+ return 0;
+ }
+
+
+ /* Write pre-game info to game summary file: */
+ if (Opts_SaveSummary())
+ {
+ write_pregame_summary();
+ }
+
+ /* Prepare to start the game: */
+ city_expl_height = screen->h - images[IMG_CITY_BLUE]->h;
+
+ /* Initialize feedback parameters */
+ comet_feedback_number = 0;
+ comet_feedback_height = 0;
+ danger_level = Opts_DangerLevel();
+
+ wave = 1;
+ num_attackers = 2;
+ prev_wave_comets = Opts_StartingComets();
+ speed = Opts_Speed();
+ slowdown = 0;
+ score = 0;
+ demo_countdown = 2000;
+ total_questions_left = 0;
+ level_start_wait = LEVEL_START_WAIT_START;
+ neg_answer_picked = 0;
+
+ /* (Create and position cities) */
+
+ if (Opts_GetGlobalOpt(USE_IGLOOS))
+ img = IMG_IGLOO_INTACT;
+ else
+ img = IMG_CITY_BLUE;
+ for (i = 0; i < NUM_CITIES; i++)
+ {
+ cities[i].hits_left = 2;
+ cities[i].status = CITY_PRESENT;
+ cities[i].counter = 0;
+ cities[i].threatened = 0;
+ cities[i].layer = 0;
+
+ /* Left vs. Right - makes room for Tux and the console */
+ if (i < NUM_CITIES / 2)
+ {
+ cities[i].x = (((screen->w / (NUM_CITIES + 1)) * i) +
+ ((images[img] -> w) / 2));
+ }
+ else
+ {
+ cities[i].x = (screen->w -
+ ((((screen->w / (NUM_CITIES + 1)) *
+ (i - (NUM_CITIES / 2)) +
+ ((images[img] -> w) / 2)))));
+ }
+ }
+
+ num_cities_alive = NUM_CITIES;
+
+ igloo_vertical_offset = images[IMG_CITY_BLUE]->h - images[IMG_IGLOO_INTACT]->h;
+
+ /* Create and position the penguins and steam */
+ for (i = 0; i < NUM_CITIES; i++)
+ {
+ penguins[i].status = PENGUIN_HAPPY;
+ penguins[i].counter = 0;
+ penguins[i].x = cities[i].x;
+ penguins[i].layer = 0;
+ steam[i].status = STEAM_OFF;
+ steam[i].layer = 0;
+ steam[i].counter = 0;
+ }
+
+ if (Opts_BonusCometInterval())
+ {
+ bonus_comet_counter = Opts_BonusCometInterval() + 1;
+ DEBUGMSG(debug_game,"\nInitializing with bonus_comet_counter = %d\n",bonus_comet_counter);
+ }
+
+ extra_life_earned = 0;
+ cloud.status = EXTRA_LIFE_OFF;
+
+ /* (Clear laser) */
+ laser.alive = 0;
+
+ /* Reset remaining stuff: */
+
+ bkgd = scaled_bkgd = NULL;
+ last_bkgd = -1;
+ reset_level();
+ reset_comets();
+
+ frame = 0;
+ paused = 0;
+ doing_answer = 0;
+ tux_pressing = 0;
+ tux_img = IMG_TUX_RELAX1;
+ tux_anim = -1;
+ tux_anim_frame = 0;
+
+ // Initialize the messages
+ game_clear_message(&s5);
+ if (!start_message_chosen)
+ {
+ game_clear_message(&s1);
+ game_clear_message(&s2);
+ game_clear_message(&s3);
+ game_clear_message(&s4);
+ }
+
+ help_controls.x_is_blinking = 0;
+ help_controls.extra_life_is_blinking = 0;
+ help_controls.laser_enabled = 1;
+
+ DEBUGMSG(debug_game,"Exiting game_initialize()\n");
+
+ return 1;
+}
+
+
+void game_cleanup(void)
+{
+#ifdef HAVE_LIBSDL_NET
+ LAN_Cleanup();
+#endif
+
+ /* Free background: */
+ if (bkgd != NULL)
+ {
+ SDL_FreeSurface(bkgd);
+ bkgd = NULL;
+ }
+ if (scaled_bkgd != NULL)
+ {
+ SDL_FreeSurface(scaled_bkgd);
+ scaled_bkgd = NULL;
+ }
+
+ /* clear start message */
+ start_message_chosen = 0;
+
+ /* Free dynamically-allocated items */
+ free_on_exit();
+
+ /* Stop music: */
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ {
+ if (Mix_PlayingMusic())
+ {
+ Mix_HaltMusic();
+ }
+ }
+#endif
+
+ DEBUGMSG(debug_game, "Leaving game_cleanup():\n");
+}
+
+
+void game_handle_help(void)
+{
+ const int left_edge = 140;
+ int frame_start;
+ int quit_help = 0;
+
+ help_controls.laser_enabled = 0;
+ help_controls.x_is_blinking = 0;
+ help_controls.extra_life_is_blinking = 0;
+
+ // Here are some things that have to happen before we can safely
+ // draw the screen
+ tux_img = IMG_TUX_CONSOLE1;
+ old_tux_img = tux_img;
+ tux_pressing = 0;
+ frame = 0;
+
+ // Write the introductory text
+ game_set_message(&s1,_("Welcome to TuxMath!"),-1,50);
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ {
+ if (!Mix_PlayingMusic())
+ {
+ Mix_PlayMusic(musics[MUS_GAME], 0);
+ }
+ }
+#endif
+
+ // Wait 2 seconds while rendering frames
+ while (frame < 2*FPS && !(quit_help = help_renderframe_exit()));
+ if (quit_help)
+ return;
+
+ game_set_message(&s2,_("Your mission is to save your"), left_edge, 100);
+ game_set_message(&s3,_("penguins' igloos from the"), left_edge, 135);
+ game_set_message(&s4,_("falling comets."), left_edge, 170);
+
+ frame_start = frame;
+ while (frame-frame_start < 5*FPS && !(quit_help = help_renderframe_exit())); // wait 5 more secs
+ if (quit_help)
+ return;
+
+ // Bring in a comet
+ speed = 2;
+ help_add_comet("2 + 1 = ?", "3");
+ help_controls.laser_enabled = 1;
+ level_start_wait = 0;
+
+ frame_start = frame;
+ while (comets[0].alive && frame-frame_start < 100 && !(quit_help = help_renderframe_exit())); // advance comet
+ if (quit_help)
+ return;
+
+ if (comets[0].alive == 1) {
+ game_set_message(&s1,_("Stop a comet by typing"),left_edge,100);
+ game_set_message(&s2,_("the answer to the math problem"),left_edge,135);
+ game_set_message(&s3,_("and hitting 'space' or 'enter'."),left_edge,170);
+ game_set_message(&s4,_("Try it now!"),left_edge,225);
+
+ speed = 0;
+ while (comets[0].alive && !(quit_help = help_renderframe_exit()));
+ if (quit_help)
+ return;
+ }
+
+ game_set_message(&s1,_("Good shot!"),left_edge,100);
+ game_clear_message(&s2);
+ game_clear_message(&s3);
+ game_clear_message(&s4);
+
+ help_controls.laser_enabled = 0;
+ frame_start = frame;
+ while (frame-frame_start < 3*FPS && !(quit_help = help_renderframe_exit())); // wait 3 secs
+
+ speed = 2;
+ game_set_message(&s1,_("If an igloo gets hit by a comet,"),left_edge,100);
+ game_set_message(&s2,_("it melts. But don't worry: the"),left_edge,135);
+ game_set_message(&s3,_("penguin is OK!"),left_edge,170);
+ game_set_message(&s4,_("Just watch what happens:"),left_edge,225);
+ game_set_message(&s5,_("(Press a key to start)"),left_edge,260);
+
+ key_pressed = 0;
+ while (!key_pressed && !(quit_help = help_renderframe_exit()));
+ if (quit_help)
+ return;
+ game_clear_message(&s5);
+
+ help_add_comet("3 * 3 = ?", "9");
+ comets[0].y = 2*(screen->h)/3; // start it low down
+ while ((comets[0].expl == -1) && !(quit_help = help_renderframe_exit())); // wait 3 secs
+ if (quit_help)
+ return;
+ game_set_message(&s4,_("Notice the answer"),left_edge,comets[0].y-100);
+ help_renderframe_exit();
+ SDL_Delay(4000);
+ game_clear_message(&s4);
+
+ frame_start = frame;
+ while (frame-frame_start < 5*FPS && !(quit_help = help_renderframe_exit())); // wait 5 secs
+ if (quit_help)
+ return;
+
+ game_set_message(&s1,_("If it gets hit again, the"),left_edge,100);
+ game_set_message(&s2,_("penguin leaves."),left_edge,135);
+ game_set_message(&s3,_("(Press a key when ready)"),left_edge,200);
+
+ key_pressed = 0;
+ while (!key_pressed && !(quit_help = help_renderframe_exit()));
+ if (quit_help)
+ return;
+ game_clear_message(&s3);
+
+ help_add_comet("56 / 8 = ?", "7");
+ comets[0].y = 2*(screen->h)/3; // start it low down
+
+ while (comets[0].alive && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+ frame_start = frame;
+
+ while ((frame-frame_start < 3*FPS) && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+
+ help_controls.laser_enabled = 1;
+ game_set_message(&s1,_("You can fix the igloos"), left_edge,100);
+ game_set_message(&s2,_("by stopping bonus comets."), left_edge,135);
+ help_add_comet("2 + 2 = ?", "4");
+ comets[0].bonus = 1;
+ frame_start = frame;
+
+ while (comets[0].alive && (frame-frame_start < 50) && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+ if (comets[0].alive)
+ speed = 0;
+ game_set_message(&s3,_("Zap it now!"),left_edge,225);
+
+ while (comets[0].alive && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+ game_set_message(&s1,_("Great job!"),left_edge,100);
+ game_clear_message(&s2);
+ game_clear_message(&s3);
+ frame_start = frame;
+
+ while ((frame-frame_start < 2*FPS) && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+ check_extra_life();
+ frame_start = frame;
+
+ while ((frame-frame_start < 10*FPS) && !(quit_help = help_renderframe_exit()));
+
+ if (quit_help)
+ return;
+
+
+ game_set_message(&s1,_("Quit at any time by pressing"),left_edge,100);
+ game_set_message(&s2,_("'Esc' or clicking the 'X'"),left_edge,135);
+ game_set_message(&s3,_("in the upper right corner."),left_edge,170);
+ game_set_message(&s4,_("Do it now, and then play!"),left_edge,225);
+
+ help_controls.x_is_blinking = 1;
+
+ while (!help_renderframe_exit());
+}
+
+// This function handles all the interactions expected during help
+// screens and renders a single frame. This function normally returns
+// 0, but returns 1 if the user chooses to exit help.
+int help_renderframe_exit(void)
+{
+ static Uint32 last_time = 0;
+ static Uint32 now_time;
+
+ if (last_time == 0)
+ last_time = SDL_GetTicks(); // Initialize...
+
+ tux_pressing = 0;
+ if (laser.alive > 0)
+ laser.alive--;
+ game_handle_user_events();
+ game_handle_answer();
+ game_handle_tux();
+ game_handle_comets();
+ game_handle_cities();
+ game_handle_penguins();
+ game_handle_steam();
+ game_handle_extra_life();
+ game_draw();
+ game_status = check_exit_conditions();
+
+ // Delay to keep frame rate constant. Do this in a way
+ // that won't cause a freeze if the timer wraps around.
+ now_time = SDL_GetTicks();
+ if (now_time >= last_time && now_time < last_time + MS_PER_FRAME)
+ SDL_Delay((last_time+MS_PER_FRAME) - now_time);
+ last_time = now_time;
+
+ frame++;
+
+ return (game_status != GAME_IN_PROGRESS);
+}
+
+/* explicitly create a comet with a hardcoded problem */
+void help_add_comet(const char* formula_str, const char* ans_str)
+{
+// char probstr[MC_FORMULA_LEN];
+// char ansstr[MC_ANSWER_LEN];
+
+ comets[0].alive = 1;
+ comets[0].expl = -1;
+ comets[0].answer = atoi(ans_str);
+// num_comets_alive = 1;
+ comets[0].city = 0;
+ comets[0].x = cities[0].x;
+ comets[0].y = 0;
+ comets[0].zapped = 0;
+ comets[0].bonus = 0;
+
+ strncpy(comets[0].flashcard.formula_string,formula_str,MC_MaxFormulaSize() );
+ strncpy(comets[0].flashcard.answer_string,ans_str,MC_MaxAnswerSize() );
+}
+
+void game_set_message(game_message *msg,const char *txt,int x,int y)
+{
+ if (msg && txt)
+ {
+ msg->x = x;
+ msg->y = y;
+ msg->alpha = SDL_ALPHA_OPAQUE;
+ strncpy(msg->message,txt,GAME_MESSAGE_LENGTH);
+ }
+}
+
+void game_clear_message(game_message *msg)
+{
+ game_set_message(msg,"",0,0);
+}
+
+void game_clear_messages()
+{
+ game_clear_message(&s1);
+ game_clear_message(&s2);
+ game_clear_message(&s3);
+ game_clear_message(&s4);
+ game_clear_message(&s5);
+}
+
+void game_write_message(const game_message *msg)
+{
+ SDL_Surface* surf;
+ SDL_Rect rect;
+
+ if (strlen(msg->message) > 0)
+ {
+ surf = BlackOutline( _(msg->message), DEFAULT_HELP_FONT_SIZE, &white);
+ rect.w = surf->w;
+ rect.h = surf->h;
+ if (msg->x < 0)
+ rect.x = (screen->w/2) - (rect.w/2); // centered
+ else
+ rect.x = msg->x; // left justified
+ rect.y = msg->y;
+ //FIXME alpha blending doesn't seem to work properly
+ SDL_SetAlpha(surf, SDL_SRCALPHA, msg->alpha);
+ SDL_BlitSurface(surf, NULL, screen, &rect);
+ SDL_FreeSurface(surf);
+ //SDL_UpdateRect(screen, rect.x, rect.y, rect.w, rect.h);
+ }
+}
+
+void game_write_messages(void)
+{
+ game_write_message(&s1);
+ game_write_message(&s2);
+ game_write_message(&s3);
+ game_write_message(&s4);
+ game_write_message(&s5);
+}
+
+void game_handle_user_events(void)
+{
+ SDL_Event event;
+ SDLKey key;
+ SDLMod mod;
+
+ while (SDL_PollEvent(&event) > 0)
+ {
+ if (event.type == SDL_QUIT)
+ {
+ user_quit_received = GAME_OVER_WINDOW_CLOSE;
+ }
+ else if (event.type == SDL_KEYDOWN)
+ {
+ key = event.key.keysym.sym;
+ mod = event.key.keysym.mod;
+ game_key_event(key, mod);
+ }
+ else if (event.type == SDL_MOUSEBUTTONDOWN)
+ {
+ game_mouse_event(event);
+ }
+ }
+}
+
+void game_handle_demo(void)
+{
+ /* If not in demo mode get out: */
+ if (!Opts_DemoMode())
+ {
+ return;
+ }
+
+ /* Demo mode! */
+ {
+ static int demo_answer = 0;
+ static int answer_digit = 0;
+ static int picked_comet=-1;
+
+ if (picked_comet == -1 && (rand() % 10) < 3)
+ {
+ /* Demo mode! Randomly pick a comet to destroy: */
+ picked_comet = (rand() % Opts_MaxComets());
+
+ if (!(comets[picked_comet].alive &&
+ comets[picked_comet].expl == -1)
+ || comets[picked_comet].y < 80)
+ {
+ picked_comet = -1;
+ }
+ else
+ {
+ /* found a comet to blow up! */
+ demo_answer = comets[picked_comet].answer;
+ if ((rand() % 3) < 1)
+ demo_answer--; // sometimes get it wrong on purpose
+
+ DEBUGMSG(debug_game, "Demo mode, comet %d attacked with answer %d\n", picked_comet,demo_answer);
+
+ /* handle negative answer: */
+ if (demo_answer < 0)
+ {
+ demo_answer = -demo_answer;
+ neg_answer_picked = 1;
+ }
+ if (demo_answer >= 100)
+ answer_digit = 0;
+ else if (demo_answer >= 10)
+ answer_digit = 1;
+ else
+ answer_digit = 2;
+ }
+ }
+
+ /* Add a digit: */
+ if (picked_comet != -1 && (frame % 5) == 0 && (rand() % 10) < 8)
+ {
+ tux_pressing = 1;
+
+ if (answer_digit < 3)
+ {
+ digits[0] = digits[1];
+ digits[1] = digits[2];
+
+ if (answer_digit == 0)
+ {
+ digits[2] = demo_answer / 100;
+ }
+ else if (answer_digit == 1)
+ {
+ digits[2] = (demo_answer % 100) / 10;
+ }
+ else if (answer_digit == 2)
+ {
+ digits[2] = (demo_answer % 10);
+ }
+
+ answer_digit++;
+ }
+ else
+ {
+ /* "Press Return" */
+ DEBUGMSG(debug_game, "Demo mode firing with these digits: %d%d%d\n",
+ digits[0], digits[1], digits[2]);
+ doing_answer = 1;
+ picked_comet = -1;
+ }
+ }
+
+ /* Count down counter: */
+ demo_countdown--;
+ }
+}
+
+void game_handle_answer(void)
+{
+ int i, j, lowest, lowest_y;
+ char ans[MC_MAX_DIGITS + 2]; //extra space for negative, and for final '\0'
+ Uint32 ctime;
+
+ if (!doing_answer)
+ {
+ return;
+ }
+
+ doing_answer = 0;
+
+ /* negative answer support DSB */
+
+ ans[0] = '-'; //for math questions only, this is just replaced.
+ for (i = 0; i < MC_MAX_DIGITS - 1 && !digits[i]; ++i); //skip leading 0s
+ for (j = neg_answer_picked ? 1 : 0; i < MC_MAX_DIGITS; ++i, ++j)
+ ans[j] = digits[i] + '0';
+ ans[j] = '\0';
+
+
+
+ /* Pick the lowest comet which has the right answer: */
+ /* FIXME: do we want it to prefer bonus comets to regular comets? */
+ lowest_y = 0;
+ lowest = -1;
+
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].alive &&
+ comets[i].expl == -1 &&
+ //comets[i].answer == num &&
+ 0 == strncmp(comets[i].flashcard.answer_string, ans, MC_MAX_DIGITS+1) &&
+ comets[i].y > lowest_y)
+ {
+ lowest = i;
+ lowest_y = comets[i].y;
+ }
+ }
+
+ /* If there was a comet with this answer, destroy it! */
+ if (lowest != -1) /* -1 means no comet had this answer */
+ {
+ float t;
+ /* Store the time the question was present on screen (do this */
+ /* in a way that avoids storing it if the time wrapped around */
+ ctime = SDL_GetTicks();
+ if (ctime > comets[lowest].time_started)
+ t = ((float)(ctime - comets[lowest].time_started)/1000);
+ else
+ t = -1; //Mathcards will ignore t == -1
+ /* Tell Mathcards or the server that we answered correctly: */
+ if(Opts_LanMode())
+#ifdef HAVE_LIBSDL_NET
+ LAN_AnsweredCorrectly(comets[lowest].flashcard.question_id, t);
+#else
+ {} // Needed for compiler, even though this path can't occur
+#endif
+ else
+ MC_AnsweredCorrectly(comets[lowest].flashcard.question_id, t);
+
+
+ /* Destroy comet: */
+ comets[lowest].expl = 0;
+ comets[lowest].zapped = 1;
+ /* Fire laser: */
+ laser.alive = LASER_START;
+ laser.x1 = screen->w / 2;
+ laser.y1 = screen->h;
+ laser.x2 = comets[lowest].x;
+ laser.y2 = comets[lowest].y;
+ playsound(SND_LASER);
+ playsound(SND_SIZZLE);
+
+ /* Record data for feedback */
+ if (Opts_UseFeedback())
+ {
+ comet_feedback_number++;
+ comet_feedback_height += comets[lowest].y/city_expl_height;
+
+#ifdef FEEDBACK_DEBUG
+ printf("Added comet feedback with height %g\n",comets[lowest].y/city_expl_height);
+#endif
+ }
+
+ /* Pick Tux animation: */
+ /* 50% of the time.. */
+ if ((rand() % 10) < 5)
+ {
+ /* ... pick an animation to play: */
+ if ((rand() % 10) < 5)
+ tux_anim = IMG_TUX_YES1;
+ else
+ tux_anim = IMG_TUX_YAY1;
+ tux_anim_frame = ANIM_FRAME_START;
+ }
+
+ /* Increment score: */
+
+ /* [ add = 25, sub = 50, mul = 75, div = 100 ] */
+ /* [ the higher the better ] */
+ /* FIXME looks like it might score a bit differently based on screen mode? */
+ add_score(25 * comets[lowest].flashcard.difficulty *
+ (screen->h - comets[lowest].y + 1) /
+ screen->h);
+ }
+ else
+ {
+ /* Didn't hit anything! */
+ laser.alive = LASER_START;
+ laser.x1 = screen->w / 2;
+ laser.y1 = screen->h;
+ laser.x2 = laser.x1;
+ laser.y2 = 0;
+ playsound(SND_LASER);
+ playsound(SND_BUZZ);
+
+ if ((rand() % 10) < 5)
+ tux_img = IMG_TUX_DRAT;
+ else
+ tux_img = IMG_TUX_YIPE;
+ }
+
+ /* Clear digits: */
+ for (i = 0; i < MC_MAX_DIGITS; ++i)
+ digits[i] = 0;
+ neg_answer_picked = 0;
+}
+
+void game_countdown(void)
+{
+ if (level_start_wait <= 0)
+ {
+ game_clear_messages();
+ return;
+ }
+
+ //dim start messages
+ s1.alpha -= SDL_ALPHA_OPAQUE / LEVEL_START_WAIT_START;
+ s2.alpha -= SDL_ALPHA_OPAQUE / LEVEL_START_WAIT_START;
+ s3.alpha -= SDL_ALPHA_OPAQUE / LEVEL_START_WAIT_START;
+ s4.alpha -= SDL_ALPHA_OPAQUE / LEVEL_START_WAIT_START;
+ DEBUGMSG(debug_game, "alpha = %d\n", s1.alpha);
+
+ level_start_wait--;
+ if (level_start_wait > LEVEL_START_WAIT_START / 4)
+ tux_img = IMG_TUX_RELAX1;
+ else if (level_start_wait > 0)
+ tux_img = IMG_TUX_RELAX2;
+ else
+ tux_img = IMG_TUX_SIT;
+
+ if (level_start_wait == LEVEL_START_WAIT_START / 4)
+ {
+ playsound(SND_ALARM);
+ }
+}
+
+void game_handle_tux(void)
+{
+ static int tux_same_counter;
+ /* If Tux pressed a button, pick a new (different!) stance: */
+ if (tux_pressing)
+ {
+ do { tux_img = IMG_TUX_CONSOLE1 + (rand() % 4); }
+ while (tux_img == old_tux_img);
+ playsound(SND_TOCK);
+ }
+
+ /* If Tux is being animated, show the animation: */
+ if (tux_anim != -1)
+ {
+ tux_anim_frame--;
+ if (tux_anim_frame < 0)
+ tux_anim = -1;
+ else
+ tux_img = tux_anim + 1 - (tux_anim_frame / (ANIM_FRAME_START / 2));
+ }
+
+ /* Reset Tux to sitting if he's been doing nothing for a while: */
+ if (old_tux_img == tux_img)
+ {
+ tux_same_counter++;
+ if (tux_same_counter >= 20)
+ {
+ tux_img = IMG_TUX_SIT;
+ }
+ }
+ else
+ tux_same_counter = 0;
+}
+
+//FIXME might be simpler to store vertical position (and speed) in terms of time
+//rather than absolute position, and determine the latter in game_draw_comets()
+void game_handle_comets(void)
+{
+ /* Handle comets. Since the comets also are the things that trigger
+ changes in the cities, we set some flags in them, too. */
+ int i, this_city;
+ Uint32 ctime;
+
+// num_comets_alive = 0;
+
+ /* Clear the threatened flag on each city */
+ for (i = 0; i < NUM_CITIES; i++)
+ cities[i].threatened = 0;
+
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].alive)
+ {
+// num_comets_alive++;
+ this_city = comets[i].city;
+
+ /* Update comet position */
+ comets[i].x = comets[i].x + 0; /* no lateral motion for now! */
+ /* Make bonus comet move faster at chosen ratio: */
+ /* NOTE y increment scaled to make game play similar at any resolution */
+ if (comets[i].bonus)
+ {
+ comets[i].y += speed * Opts_BonusSpeedRatio() *
+ city_expl_height / (screen->h - images[IMG_CITY_BLUE]->h);
+ }
+ else /* Regular comet: */
+ {
+ comets[i].y += speed *
+ city_expl_height / (screen->h - images[IMG_CITY_BLUE]->h);
+ }
+
+ /* Does it threaten a city? */
+ if (comets[i].y > 3 * screen->h / 4)
+ cities[this_city].threatened = 1;
+
+ /* Did it hit a city? */
+ if (comets[i].y >= city_expl_height &&
+ comets[i].expl == -1)
+ {
+ /* Tell MathCards about it - question not answered correctly: */
+ if(Opts_LanMode())
+#ifdef HAVE_LIBSDL_NET
+ LAN_NotAnsweredCorrectly(comets[i].flashcard.question_id);
+#else
+ {}
+#endif
+ else
+ MC_NotAnsweredCorrectly(comets[i].flashcard.question_id);
+
+ /* Store the time the question was present on screen (do this */
+ /* in a way that avoids storing it if the time wrapped around */
+ ctime = SDL_GetTicks();
+ if (ctime > comets[i].time_started) {
+ MC_AddTimeToList((float)(ctime - comets[i].time_started)/1000);
+ }
+
+ /* Record data for speed feedback */
+ /* Do this only for cities that are alive; dead cities */
+ /* might not get much protection from the player */
+ if (Opts_UseFeedback() && cities[this_city].hits_left) {
+ comet_feedback_number++;
+ comet_feedback_height += 1.0 + Opts_CityExplHandicap();
+
+#ifdef FEEDBACK_DEBUG
+ printf("Added comet feedback with height %g\n",
+ 1.0 + Opts_CityExplHandicap());
+#endif
+ }
+
+ /* Disable shields/destroy city/create steam cloud: */
+ if (cities[this_city].hits_left)
+ {
+ cities[this_city].status = CITY_EXPLODING;
+ if (Opts_GetGlobalOpt(USE_IGLOOS)) {
+ playsound(SND_IGLOO_SIZZLE);
+ cities[this_city].counter = IGLOO_SWITCH_START;
+ steam[this_city].status = STEAM_ON;
+ steam[this_city].counter = STEAM_START;
+ }
+ else {
+ if (cities[comets[i].city].hits_left == 2) {
+ playsound(SND_SHIELDSDOWN);
+ cities[this_city].counter = 1; /* Will act immediately */
+ }
+ else {
+ playsound(SND_EXPLOSION);
+ cities[this_city].counter = CITY_EXPL_START;
+ }
+ }
+ cities[this_city].hits_left--;
+ }
+
+ /* If this was a bonus comet, restart the counter */
+ if (comets[i].bonus)
+ bonus_comet_counter = Opts_BonusCometInterval()+1;
+
+ /* If slow_after_wrong selected, set flag to go back to starting speed and */
+ /* number of attacking comets: */
+ if (Opts_SlowAfterWrong())
+ {
+ speed = Opts_Speed();
+ slowdown = 1;
+ }
+
+ tux_anim = IMG_TUX_FIST1;
+ tux_anim_frame = ANIM_FRAME_START;
+
+ /* Destroy comet: */
+ comets[i].expl = 0;
+ }
+
+ /* Handle comet explosion animation: */
+ if (comets[i].expl >= 0)
+ {
+ comets[i].expl++;
+ if (comets[i].expl >= sprites[IMG_COMET_EXPL]->num_frames * 2) {
+ comets[i].alive = 0;
+ comets[i].expl = -1;
+ if (bonus_comet_counter > 1 && comets[i].zapped) {
+ bonus_comet_counter--;
+ DEBUGMSG(debug_game, "bonus_comet_counter is now %d\n",bonus_comet_counter);
+ }
+ if (comets[i].bonus && comets[i].zapped) {
+ playsound(SND_EXTRA_LIFE);
+ extra_life_earned = 1;
+ DEBUGMSG(debug_game, "Extra life earned!");
+ }
+ }
+ }
+ }
+ }
+
+ /* FIXME for the LAN game, the adding of comets needs to take place in */
+ /* check_messages() when new questions come in from the server. For */
+ /* ease of understanding, we should do it at the same place in the game */
+ /* loop for the non-LAN (i.e. local MC_*() functions) game - DSB */
+ /* add more comets if needed: */
+ if (!Opts_HelpMode() && level_start_wait == 0) //&&
+ // (frame % 20) == 0)
+ {
+ /* num_attackers is how many comets are left in wave */
+ if (num_attackers > 0)
+ {
+// if ((rand() % 2) == 0 || num_comets_alive() == 0) NOTE also caused timing issue
+ {
+ if (add_comet())
+ {
+ num_attackers--;
+ }
+ }
+ }
+ else
+ {
+ if (num_comets_alive() == 0)
+ {
+ if (!check_extra_life())
+ {
+ /* Time for the next wave! */
+ wave++;
+ reset_level();
+ }
+ }
+ }
+ }
+}
+
+
+
+void game_handle_cities(void)
+{
+ /* Update the status of the cities. These also determine the changes
+ in the penguins. */
+ int i;
+ num_cities_alive = 0;
+
+ for (i = 0; i < NUM_CITIES; i++)
+ {
+ /* Note: when status is CITY_REBUILDING, status and image
+ selection is handled by the extra_life code */
+ if (cities[i].status == CITY_REBUILDING)
+ continue;
+ if (cities[i].hits_left)
+ num_cities_alive++;
+ /* Handle counter for animated explosion: */
+ if (cities[i].status == CITY_EXPLODING)
+ {
+ cities[i].counter--;
+ if (cities[i].counter == 0) {
+ if (cities[i].hits_left)
+ cities[i].status = CITY_PRESENT;
+ else {
+ if (Opts_GetGlobalOpt(USE_IGLOOS)) {
+ cities[i].status = CITY_EVAPORATING;
+ cities[i].counter = EVAPORATING_COUNTER_START;
+ cities[i].img = IMG_IGLOO_MELTED1;
+ } else {
+ cities[i].status = CITY_GONE;
+ cities[i].img = IMG_CITY_NONE;
+ }
+ }
+ }
+ }
+ /* Choose the correct city/igloo image */
+ if (Opts_GetGlobalOpt(USE_IGLOOS)) {
+ if (cities[i].status == CITY_EVAPORATING) {
+ /* Handle the evaporation animation */
+ cities[i].layer = 0; /* these have to be drawn below the penguin */
+ cities[i].counter--;
+ if (cities[i].counter == 0) {
+ cities[i].img--;
+ if (cities[i].img < IMG_IGLOO_MELTED3) {
+ cities[i].img = IMG_CITY_NONE;
+ cities[i].status = CITY_GONE;
+ }
+ else
+ cities[i].counter = EVAPORATING_COUNTER_START;
+ }
+ } else {
+ if (cities[i].status != CITY_GONE) {
+ cities[i].layer = 1; /* these have to be drawn above the penguin */
+ cities[i].img = IMG_IGLOO_MELTED1 + cities[i].hits_left;
+ /* If we're in the middle of an "explosion," don't switch to the
+ new igloo. Note the steam may have a different counter than
+ the igloo on this matter; the switch is designed to occur
+ halfway through the steam cloud. */
+ if (cities[i].status == CITY_EXPLODING)
+ cities[i].img++;
+ }
+ }
+ }
+ else {
+ /* We're using the original "city" graphics */
+ cities[i].layer = 0; /* No layering needed */
+ if (cities[i].hits_left)
+ cities[i].img = IMG_CITY_BLUE;
+ else if (cities[i].status == CITY_EXPLODING)
+ cities[i].img = (IMG_CITY_BLUE_EXPL5 - (cities[i].counter / (CITY_EXPL_START / 5)));
+ else
+ cities[i].img = IMG_CITY_BLUE_DEAD;
+
+ /* Change image to appropriate color: */
+ cities[i].img = cities[i].img + ((wave % MAX_CITY_COLORS) *
+ (IMG_CITY_GREEN - IMG_CITY_BLUE));
+
+ }
+ }
+}
+
+
+void game_handle_penguins(void)
+{
+ int i,direction,walk_counter;
+
+ if (!Opts_GetGlobalOpt(USE_IGLOOS))
+ return;
+ for (i = 0; i < NUM_CITIES; i++) {
+ penguins[i].layer = 0;
+ if (cities[i].status == CITY_EVAPORATING)
+ penguins[i].layer = 1; /* will go higher in certain cases */
+ /* Handle interaction with comets & city status (ducking) */
+ if (cities[i].threatened && penguins[i].status < PENGUIN_WALKING_OFF
+ && penguins[i].status != PENGUIN_OFFSCREEN)
+ penguins[i].status = PENGUIN_DUCKING;
+ else if (!cities[i].threatened && penguins[i].status == PENGUIN_DUCKING) {
+ if (cities[i].hits_left == 2)
+ penguins[i].status = PENGUIN_HAPPY;
+ else
+ penguins[i].status = PENGUIN_GRUMPY;
+ }
+ switch (penguins[i].status) {
+ case PENGUIN_HAPPY:
+ penguins[i].img = IMG_PENGUIN_FLAPDOWN;
+ if (rand() % FLAPPING_INTERVAL == 0) {
+ penguins[i].status = PENGUIN_FLAPPING;
+ penguins[i].counter = FLAPPING_START;
+ }
+ break;
+ case PENGUIN_FLAPPING:
+ if (penguins[i].counter % 4 >= 2)
+ penguins[i].img = IMG_PENGUIN_FLAPUP;
+ else
+ penguins[i].img = IMG_PENGUIN_FLAPDOWN;
+ penguins[i].counter--;
+ if (penguins[i].counter == 0)
+ penguins[i].status = PENGUIN_HAPPY;
+ break;
+ case PENGUIN_DUCKING:
+ penguins[i].img = IMG_PENGUIN_INCOMING;
+ break;
+ case PENGUIN_GRUMPY:
+ penguins[i].img = IMG_PENGUIN_GRUMPY;
+ if (rand() % FLAPPING_INTERVAL == 0) {
+ penguins[i].status = PENGUIN_WORRIED;
+ penguins[i].counter = FLAPPING_START;
+ }
+ break;
+ case PENGUIN_WORRIED:
+ penguins[i].img = IMG_PENGUIN_WORRIED;
+ penguins[i].counter--;
+ if (penguins[i].counter == 0)
+ penguins[i].status = PENGUIN_GRUMPY;
+ break;
+ case PENGUIN_STANDING_UP:
+ penguins[i].img = IMG_PENGUIN_STANDING_UP;
+ penguins[i].counter--;
+ if (penguins[i].counter == 0)
+ penguins[i].status = PENGUIN_WALKING_OFF;
+ break;
+ case PENGUIN_SITTING_DOWN:
+ penguins[i].img = IMG_PENGUIN_SITTING_DOWN;
+ penguins[i].counter--;
+ if (penguins[i].counter == 0) {
+ penguins[i].status = PENGUIN_FLAPPING;
+ penguins[i].counter = FLAPPING_START;
+ }
+ break;
+ case PENGUIN_WALKING_ON:
+ walk_counter = (penguins[i].counter % 8)/2;
+ if (walk_counter == 3)
+ walk_counter = 1;
+ penguins[i].img = IMG_PENGUIN_WALK_ON1 + walk_counter;
+ penguins[i].counter++;
+ direction = 2*(i < NUM_CITIES/2)-1; /* +1 for walk right, -1 for left */
+ penguins[i].x += direction*PENGUIN_WALK_SPEED;
+ if (direction*penguins[i].x >= direction*cities[i].x) {
+ penguins[i].status = PENGUIN_SITTING_DOWN;
+ penguins[i].counter = STANDING_COUNTER_START;
+ penguins[i].x = cities[i].x;
+ }
+ penguins[i].layer = 3; /* Stand in front of steam */
+ break;
+ case PENGUIN_WALKING_OFF:
+ walk_counter = (penguins[i].counter % 8)/2;
+ if (walk_counter == 3)
+ walk_counter = 1;
+ penguins[i].img = IMG_PENGUIN_WALK_OFF1 + walk_counter;
+ penguins[i].counter++;
+ direction = 1-2*(i < NUM_CITIES/2);
+ penguins[i].x += direction*PENGUIN_WALK_SPEED;
+ if (direction < 0) {
+ if (penguins[i].x + images[IMG_PENGUIN_WALK_OFF1]->w/2 < 0)
+ penguins[i].status = PENGUIN_OFFSCREEN;
+ } else {
+ if (penguins[i].x - images[IMG_PENGUIN_WALK_OFF1]->w/2 > screen->w)
+ penguins[i].status = PENGUIN_OFFSCREEN;
+ }
+ penguins[i].layer = 3;
+ break;
+ case PENGUIN_OFFSCREEN:
+ penguins[i].img = -1;
+ break;
+ }
+ }
+}
+
+void game_handle_steam(void)
+{
+ int i;
+
+ if (!Opts_GetGlobalOpt(USE_IGLOOS))
+ return;
+ for (i = 0; i < NUM_CITIES; i++) {
+ if (steam[i].counter) {
+ steam[i].counter--;
+ if (!steam[i].counter) {
+ steam[i].status = STEAM_OFF;
+ if (cloud.status != EXTRA_LIFE_ON || cloud.city != i) {
+ /* The penguin was ducking, now we can stop */
+ if (cities[i].hits_left)
+ penguins[i].status = PENGUIN_GRUMPY;
+ else {
+ penguins[i].status = PENGUIN_STANDING_UP;
+ penguins[i].counter = STANDING_COUNTER_START;
+ }
+ }
+ }
+ }
+ if (steam[i].status == STEAM_OFF)
+ steam[i].img = -1;
+ else {
+ steam[i].img = IMG_STEAM5 - steam[i].counter/3;
+ steam[i].layer = 2;
+ }
+ }
+}
+
+int check_extra_life(void)
+{
+ /* This is called at the end of a wave. Returns 1 if we're in the
+ middle of handling an extra life, otherwise 0 */
+ int i,fewest_hits_left,fewest_index,snow_width;
+
+ if (cloud.status == EXTRA_LIFE_ON)
+ return 1;
+ DEBUGCODE(debug_game)
+ print_status();
+
+ if (extra_life_earned) {
+ /* Check to see if any ingloo has been hit */
+ fewest_hits_left = 2;
+ fewest_index = -1;
+ for (i = 0; i < NUM_CITIES; i++) {
+ if (cities[i].hits_left < fewest_hits_left) {
+ fewest_hits_left = cities[i].hits_left;
+ fewest_index = i;
+ }
+ }
+ if (fewest_hits_left == 2)
+ return 0; /* Don't need an extra life, there's no damage */
+ /* Begin the extra life sequence */
+ extra_life_earned = 0;
+ cloud.status = EXTRA_LIFE_ON;
+ cloud.y = screen->h/3;
+ cloud.city = fewest_index;
+ bonus_comet_counter = Opts_BonusCometInterval()+1;
+
+ DEBUGMSG(debug_game, "Bonus comet counter restored to %d\n",bonus_comet_counter);
+
+ if (cloud.city < NUM_CITIES/2)
+ cloud.x = -images[IMG_CLOUD]->w/2; /* come in from the left */
+ else
+ cloud.x = screen->w + images[IMG_CLOUD]->w/2; /* come from the right */
+ penguins[cloud.city].status = PENGUIN_WALKING_ON;
+ /* initialize the snowflakes */
+ snow_width = images[IMG_CLOUD]->w - images[IMG_SNOW1]->w;
+ for (i = 0; i < NUM_SNOWFLAKES; i++) {
+ cloud.snowflake_y[i] = cloud.y - i*SNOWFLAKE_SEPARATION;
+ cloud.snowflake_x[i] = - snow_width/2 + (rand() % snow_width);
+ cloud.snowflake_size[i] = rand() % 3;
+ }
+ DEBUGCODE(debug_game)
+ print_status();
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+void game_handle_extra_life(void)
+{
+ // This handles the animation sequence during the rebuilding of an igloo
+ int i, igloo_top, num_below_igloo, direction;
+
+ if (cloud.status == EXTRA_LIFE_ON) {
+
+ DEBUGCODE(debug_game)
+ {
+ if (penguins[cloud.city].status == PENGUIN_WALKING_OFF) {
+ print_status();
+ pause_game();
+ }
+ }
+
+ // Get the cloud moving in the right direction, if not yet "parked"
+ direction = 2*(cloud.city < NUM_CITIES/2) - 1;
+ if (direction*cloud.x < direction*cities[cloud.city].x) {
+ cloud.x += direction*PENGUIN_WALK_SPEED;
+ }
+ else {
+ // Cloud is "parked," handle the snowfall and igloo rebuilding
+ cities[cloud.city].status = CITY_REBUILDING;
+ igloo_top = screen->h - igloo_vertical_offset
+ - images[IMG_IGLOO_INTACT]->h;
+ for (i = 0, num_below_igloo = 0; i < NUM_SNOWFLAKES; i++) {
+ cloud.snowflake_y[i] += SNOWFLAKE_SPEED;
+ if (cloud.snowflake_y[i] > igloo_top)
+ num_below_igloo++;
+ }
+ if (cloud.snowflake_y[NUM_SNOWFLAKES-1] > igloo_top) {
+ cities[cloud.city].hits_left = 2;
+ cities[cloud.city].img = IMG_IGLOO_INTACT; // completely rebuilt
+ } else if (cities[cloud.city].hits_left == 0) {
+ // We're going to draw one of the blended igloos
+ // FIXME: It's a hack to encode a blended igloo with a negative number!
+ penguins[cloud.city].layer = 0;
+ cities[cloud.city].layer = 1;
+ if (num_below_igloo < 3)
+ num_below_igloo = 0; // Don't show progress until a few have fallen
+ cities[cloud.city].img = -((float) (num_below_igloo)/NUM_SNOWFLAKES) * NUM_BLENDED_IGLOOS;
+ }
+ if (cloud.snowflake_y[NUM_SNOWFLAKES-1] > screen->h - igloo_vertical_offset) {
+ /* exit rebuilding when last snowflake at igloo bottom */
+ cloud.status = EXTRA_LIFE_OFF;
+ cities[cloud.city].status = CITY_PRESENT;
+ }
+ }
+ }
+}
+
+void game_draw(void)
+{
+ SDL_Rect dest;
+
+ /* Clear screen: */
+ game_draw_background();
+
+ /* Draw miscellaneous informational items */
+ game_draw_misc();
+
+ /* Draw cities/igloos and (if applicable) penguins: */
+ game_draw_cities();
+
+ /* Draw normal comets first, then bonus comets */
+ game_draw_comets();
+
+
+ /* Draw laser: */
+ if (laser.alive)
+ {
+ draw_line(laser.x1, laser.y1, laser.x2, laser.y2,
+ 255 / ((LASER_START + 1) - laser.alive),
+ 192 / ((LASER_START + 1) - laser.alive),
+ 64);
+ }
+
+ /* Draw numeric keypad: */
+ if (Opts_GetGlobalOpt(USE_KEYPAD))
+ {
+ /* pick image to draw: */
+ int keypad_image;
+ if (MC_GetOpt(ALLOW_NEGATIVES) )
+ {
+ /* draw regular keypad */
+ keypad_image = IMG_KEYPAD;
+ }
+ else
+ {
+ /* draw keypad with with grayed-out '+' and '-' */
+ keypad_image = IMG_KEYPAD_NO_NEG;
+ }
+
+ /* now draw it: */
+ dest.x = (screen->w - images[keypad_image]->w) / 2;
+ dest.y = (screen->h - images[keypad_image]->h) / 2;
+ dest.w = images[keypad_image]->w;
+ dest.h = images[keypad_image]->h;
+ SDL_BlitSurface(images[keypad_image], NULL, screen, &dest);
+ }
+
+ /* Draw console, LED numbers, & tux: */
+ draw_led_console();
+ draw_console_image(tux_img);
+
+ /* Draw any messages on the screen (used for the help mode) */
+ game_write_messages();
+
+ /* Swap buffers: */
+ SDL_Flip(screen);
+}
+
+void game_draw_background(void)
+{
+ static int old_wave = 0; //update wave immediately
+ static Uint32 bgcolor, fgcolor = 0;
+ SDL_Rect dest;
+
+ if (fgcolor == 0)
+ fgcolor = SDL_MapRGB(screen->format, 64, 96, 64);
+ if (old_wave != wave)
+ {
+ DEBUGMSG(debug_game,"Wave %d\n", wave);
+ old_wave = wave;
+ bgcolor = SDL_MapRGB(screen->format,
+ 64,
+ 64 + ((wave * 32) % 192),
+ 128 - ((wave * 16) % 128) );
+ DEBUGMSG(debug_game,"Filling screen with color %d\n", bgcolor);
+ }
+
+ if (current_bkgd() == NULL || (current_bkgd()->w != screen->w &&
+ current_bkgd()->h != screen->h) )
+ {
+ dest.x = 0;
+ dest.y = 0;
+ dest.w = screen->w;
+ dest.h = ((screen->h) / 4) * 3;
+
+ SDL_FillRect(screen, &dest, bgcolor);
+
+
+ dest.y = ((screen->h) / 4) * 3;
+ dest.h = (screen->h) / 4;
+
+ SDL_FillRect(screen, &dest, fgcolor);
+ }
+
+ if (current_bkgd())
+ {
+ dest.x = (screen->w - current_bkgd()->w) / 2;
+ dest.y = (screen->h - current_bkgd()->h) / 2;
+ SDL_BlitSurface(current_bkgd(), NULL, screen, &dest);
+ }
+}
+
+/* Draw comets: */
+/* NOTE bonus comets split into separate pass to make them */
+/* draw last (i.e. in front), as they can overlap */
+void game_draw_comets(void)
+{
+
+ int i;
+ SDL_Surface* img = NULL;
+ SDL_Rect dest;
+ char* comet_str;
+
+ /* First draw regular comets: */
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].alive && !comets[i].bonus)
+ {
+ if (comets[i].expl == -1)
+ {
+ /* Decide which image to display: */
+ img = sprites[IMG_COMET]->frame[(frame + i) % sprites[IMG_COMET]->num_frames];
+ /* Display the formula (flashing, in the bottom half
+ of the screen) */
+ if (comets[i].y < screen->h / 2 || frame % 8 < 6)
+ {
+ comet_str = comets[i].flashcard.formula_string;
+ }
+ else
+ {
+ comet_str = NULL;
+ }
+ }
+ else
+ {
+ /* show each frame of explosion twice */
+ img = sprites[IMG_COMET_EXPL]->frame[comets[i].expl / 2];
+ comet_str = comets[i].flashcard.answer_string;
+ }
+
+ /* Draw it! */
+ dest.x = comets[i].x - (img->w / 2);
+ dest.y = comets[i].y - img->h;
+ dest.w = img->w;
+ dest.h = img->h;
+
+ SDL_BlitSurface(img, NULL, screen, &dest);
+ if (comet_str != NULL)
+ {
+ draw_nums(comet_str, comets[i].x, comets[i].y);
+ }
+ }
+ }
+
+ /* Now draw any bonus comets: */
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].alive && comets[i].bonus)
+ {
+ if (comets[i].expl == -1)
+ {
+ /* Decide which image to display: */
+ img = sprites[IMG_BONUS_COMET]->frame[(frame + i) % sprites[IMG_BONUS_COMET]->num_frames];
+ /* Display the formula (flashing, in the bottom half
+ of the screen) */
+ if (comets[i].y < screen->h / 2 || frame % 8 < 6)
+ {
+ comet_str = comets[i].flashcard.formula_string;
+ }
+ else
+ {
+ comet_str = NULL;
+ }
+ }
+ else
+ {
+ img = sprites[IMG_BONUS_COMET_EXPL]->frame[comets[i].expl / 2];
+ comet_str = comets[i].flashcard.answer_string;
+ }
+
+ /* Draw it! */
+ dest.x = comets[i].x - (img->w / 2);
+ dest.y = comets[i].y - img->h;
+ dest.w = img->w;
+ dest.h = img->h;
+ SDL_BlitSurface(img, NULL, screen, &dest);
+ if (comet_str != NULL)
+ {
+ draw_nums(comet_str, comets[i].x, comets[i].y);
+ }
+ }
+ }
+}
+
+
+
+void game_draw_cities(void)
+{
+ int i, j, current_layer, max_layer;
+ SDL_Rect src, dest;
+ SDL_Surface* this_image;
+
+ if (Opts_GetGlobalOpt(USE_IGLOOS)) {
+ /* We have to draw respecting layering */
+ current_layer = 0;
+ max_layer = 0;
+ do {
+ for (i = 0; i < NUM_CITIES; i++) {
+ if (cities[i].status != CITY_GONE && cities[i].layer > max_layer)
+ max_layer = cities[i].layer;
+ if (penguins[i].status != PENGUIN_OFFSCREEN && penguins[i].layer > max_layer)
+ max_layer = penguins[i].layer;
+ if (steam[i].status == STEAM_ON && steam[i].layer > max_layer)
+ max_layer = steam[i].layer;
+ if (cities[i].layer == current_layer &&
+ cities[i].img != IMG_CITY_NONE) {
+ // Handle the blended igloo images, which are encoded
+ // (FIXME) with a negative image number
+ if (cities[i].img <= 0)
+ this_image = blended_igloos[-cities[i].img];
+ else
+ this_image = images[cities[i].img];
+ //this_image = blended_igloos[frame % NUM_BLENDED_IGLOOS];
+ dest.x = cities[i].x - (this_image->w / 2);
+ dest.y = (screen->h) - (this_image->h) - igloo_vertical_offset;
+ if (cities[i].img == IMG_IGLOO_MELTED3 ||
+ cities[i].img == IMG_IGLOO_MELTED2)
+ dest.y -= (images[IMG_IGLOO_MELTED1]->h - this_image->h)/2;
+ dest.w = (this_image->w);
+ dest.h = (this_image->h);
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+ }
+ if (penguins[i].layer == current_layer &&
+ penguins[i].status != PENGUIN_OFFSCREEN) {
+ this_image = images[penguins[i].img];
+ if (penguins[i].status == PENGUIN_WALKING_OFF ||
+ penguins[i].status == PENGUIN_WALKING_ON) {
+ /* With walking penguins, we have to use flipped images
+ when it's walking left. The other issue is that the
+ images are of different widths, so aligning on the
+ center produces weird forward-backward walking. The
+ reliable way is the align them all on the tip of the
+ beak (the right border of the unflipped image) */
+ dest.x = penguins[i].x - (this_image->w / 2);
+ dest.y = (screen->h) - (this_image->h);
+ if ((i<NUM_CITIES/2 && penguins[i].status==PENGUIN_WALKING_OFF) ||
+ (i>=NUM_CITIES/2 && penguins[i].status==PENGUIN_WALKING_ON)) {
+ /* walking left */
+ this_image = flipped_images[flipped_img_lookup[penguins[i].img]];
+ dest.x = penguins[i].x - images[IMG_PENGUIN_WALK_OFF2]->w/2;
+ } else
+ dest.x = penguins[i].x - this_image->w
+ + images[IMG_PENGUIN_WALK_OFF2]->w/2; /* walking right */
+ }
+ else {
+ dest.x = penguins[i].x - (this_image->w / 2);
+ dest.y = (screen->h) - (5*(this_image->h))/4 - igloo_vertical_offset;
+ }
+ dest.w = (this_image->w);
+ dest.h = (this_image->h);
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+ }
+ if (steam[i].layer == current_layer &&
+ steam[i].status == STEAM_ON) {
+ this_image = images[steam[i].img];
+ dest.x = cities[i].x - (this_image->w / 2);
+ dest.y = (screen->h) - this_image->h - ((4 * images[IMG_IGLOO_INTACT]->h) / 7);
+ dest.w = (this_image->w);
+ dest.h = (this_image->h);
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+ }
+ }
+ current_layer++;
+ } while (current_layer <= max_layer);
+ if (cloud.status == EXTRA_LIFE_ON) {
+ /* Render cloud & snowflakes */
+ for (i = 0; i < NUM_SNOWFLAKES; i++) {
+ if (cloud.snowflake_y[i] > cloud.y &&
+ cloud.snowflake_y[i] < screen->h - igloo_vertical_offset) {
+ this_image = images[IMG_SNOW1+cloud.snowflake_size[i]];
+ dest.x = cloud.snowflake_x[i] - this_image->w/2 + cloud.x;
+ dest.y = cloud.snowflake_y[i] - this_image->h/2;
+ dest.w = this_image->w;
+ dest.h = this_image->h;
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+ }
+ }
+ this_image = images[IMG_CLOUD];
+ dest.x = cloud.x - this_image->w/2;
+ dest.y = cloud.y - this_image->h/2;
+ dest.w = this_image->w;
+ dest.h = this_image->h;
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+ }
+ }
+ else {
+ /* We're drawing original city graphics, for which there are no
+ layering issues, but has special handling for the shields */
+ for (i = 0; i < NUM_CITIES; i++) {
+ this_image = images[cities[i].img];
+ dest.x = cities[i].x - (this_image->w / 2);
+ dest.y = (screen->h) - (this_image->h);
+ dest.w = (this_image->w);
+ dest.h = (this_image->h);
+ SDL_BlitSurface(this_image, NULL, screen, &dest);
+
+ /* Draw sheilds: */
+ if (cities[i].hits_left > 1) {
+ for (j = (frame % 3); j < images[IMG_SHIELDS]->h; j = j + 3) {
+ src.x = 0;
+ src.y = j;
+ src.w = images[IMG_SHIELDS]->w;
+ src.h = 1;
+
+ dest.x = cities[i].x - (images[IMG_SHIELDS]->w / 2);
+ dest.y = (screen->h) - (images[IMG_SHIELDS]->h) + j;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_SHIELDS], &src, screen, &dest);
+ }
+ }
+ }
+ }
+
+
+}
+void game_draw_misc(void)
+{
+ int i;
+ int offset;
+ SDL_Rect dest;
+ char str[64];
+
+ /* Draw "Demo" */
+ if (Opts_DemoMode())
+ {
+ dest.x = (screen->w - images[IMG_DEMO]->w) / 2;
+ dest.y = (screen->h - images[IMG_DEMO]->h) / 2;
+ dest.w = images[IMG_DEMO]->w;
+ dest.h = images[IMG_DEMO]->h;
+
+ SDL_BlitSurface(images[IMG_DEMO], NULL, screen, &dest);
+ }
+
+ /* If we are playing through a defined list of questions */
+ /* without "recycling", display number of remaining questions: */
+ if (MC_GetOpt(PLAY_THROUGH_LIST) )
+ {
+ draw_question_counter();
+ }
+
+ if (extra_life_earned) {
+ /* Draw extra life earned icon */
+ dest.x = 0;
+ dest.y = 0;
+ dest.w = images[IMG_EXTRA_LIFE]->w;
+ dest.h = images[IMG_EXTRA_LIFE]->h;
+ SDL_BlitSurface(images[IMG_EXTRA_LIFE], NULL, screen, &dest);
+ } else if (bonus_comet_counter) {
+ /* Draw extra life progress bar */
+ dest.x = 0;
+ dest.y = images[IMG_EXTRA_LIFE]->h/4;
+ dest.h = images[IMG_EXTRA_LIFE]->h/2;
+ dest.w = ((Opts_BonusCometInterval() + 1 - bonus_comet_counter)
+ * images[IMG_EXTRA_LIFE]->w) / Opts_BonusCometInterval();
+ SDL_FillRect(screen, &dest, SDL_MapRGB(screen->format, 0, 255, 0));
+ }
+
+ /* Draw wave: */
+ if (Opts_BonusCometInterval())
+ offset = images[IMG_EXTRA_LIFE]->w + 5;
+ else
+ offset = 0;
+
+ dest.x = offset;
+ dest.y = glyph_offset;
+ dest.w = images[IMG_WAVE]->w;
+ dest.h = images[IMG_WAVE]->h;
+
+ SDL_BlitSurface(images[IMG_WAVE], NULL, screen, &dest);
+
+ sprintf(str, "%d", wave);
+ draw_numbers(str, offset+images[IMG_WAVE]->w + (images[IMG_NUMBERS]->w / 10), 0);
+
+ /* In LAN mode, we show the server-generated score: */
+ if (Opts_KeepScore() && !Opts_LanMode())
+ {
+ /* Draw "score" label: */
+ dest.x = (screen->w - ((images[IMG_NUMBERS]->w / 10) * 7) -
+ images[IMG_SCORE]->w -
+ images[IMG_STOP]->w - 5);
+ dest.y = glyph_offset;
+ dest.w = images[IMG_SCORE]->w;
+ dest.h = images[IMG_SCORE]->h;
+ SDL_BlitSurface(images[IMG_SCORE], NULL, screen, &dest);
+
+ /* Draw score numbers: */
+ sprintf(str, "%.6d", score);
+ draw_numbers(str,
+ screen->w - ((images[IMG_NUMBERS]->w / 10) * 6) - images[IMG_STOP]->w - 5,
+ 0);
+ }
+
+ /* Draw other players' scores (turn-based single machine multiplayer) */
+ if (mp_get_parameter(PLAYERS) && mp_get_parameter(MODE) == SCORE_SWEEP )
+ {
+ int i;
+ for (i = 0; i < mp_get_parameter(PLAYERS); ++i)
+ {
+ SDL_Surface* score;
+ snprintf(str, 64, "%s: %d", mp_get_player_name(i),mp_get_player_score(i));
+ score = BlackOutline(str, DEFAULT_MENU_FONT_SIZE, &white);
+ if(score)
+ {
+ SDL_Rect loc;
+ loc.w = screen->w - score->w;
+ loc.h = score->h * (i + 2);
+ loc.x = 0;
+ loc.y = 0;
+ SDL_BlitSurface(score, NULL, screen, &loc);
+ }
+ }
+ }
+
+ /* Draw other players' scores (LAN game) */
+ if (Opts_LanMode())
+ {
+ int entries = 0;
+ for (i = 0; i < MAX_CLIENTS; i++)
+ {
+ if(lan_pscores[i] >= 0)
+ {
+ SDL_Surface* score;
+ snprintf(str, 64, "%s: %d", lan_pnames[i], lan_pscores[i]);
+ score = BlackOutline(str, DEFAULT_MENU_FONT_SIZE, &white);
+ if(score)
+ {
+ SDL_Rect loc;
+ loc.w = score->w;
+ loc.h = score->h;
+ loc.x = 0;
+ loc.y = score->h * (entries + 2);
+ SDL_BlitSurface(score, NULL, screen, &loc);
+ entries++;
+ }
+ }
+ }
+ }
+
+ /* Draw stop button: */
+ if (!help_controls.x_is_blinking || (frame % 10 < 5)) {
+ dest.x = (screen->w - images[IMG_STOP]->w);
+ dest.y = 0;
+ dest.w = images[IMG_STOP]->w;
+ dest.h = images[IMG_STOP]->h;
+
+ SDL_BlitSurface(images[IMG_STOP], NULL, screen, &dest);
+ }
+}
+
+int check_exit_conditions(void)
+{
+// int x;
+
+ if (user_quit_received)
+ {
+ if (user_quit_received != GAME_OVER_WINDOW_CLOSE &&
+ user_quit_received != GAME_OVER_ESCAPE &&
+ user_quit_received != GAME_OVER_CHEATER)
+ {
+ fprintf(stderr, "Unexpected value %d for user_quit_received\n", user_quit_received);
+ return GAME_OVER_OTHER;
+ }
+ return user_quit_received;
+ }
+
+ /* determine if game lost (i.e. all igloos melted): */
+ if (!num_cities_alive)
+ {
+ if (gameover_counter < 0)
+ gameover_counter = GAMEOVER_COUNTER_START;
+ gameover_counter--;
+ if (gameover_counter == 0)
+ return GAME_OVER_LOST;
+ }
+
+ /* determine if game won (i.e. all questions in mission answered correctly): */
+ if(Opts_LanMode())
+ {
+ if(game_over_won)
+ return GAME_OVER_WON;
+ }
+ else
+ {
+ if (MC_MissionAccomplished())
+ {
+ DEBUGMSG(debug_game,"Mission accomplished!\n");
+ return GAME_OVER_WON;
+ }
+ }
+
+
+ /* Could have situation where mathcards doesn't have more questions */
+ /* even though not all questions answered correctly: */
+ if(Opts_LanMode())
+ {
+ if(game_over_other)
+ return GAME_OVER_OTHER;
+ }
+ else
+ {
+ if(!MC_TotalQuestionsLeft())
+ return GAME_OVER_OTHER;
+ }
+
+
+ //NOTE can't use this check in LAN mode because we don't know if the server has
+ //questions left
+
+ /* Need to get out if no comets alive and MathCards has no questions left in list, */
+ /* even though MathCards thinks there are still questions "in play". */
+ /* This SHOULD NOT HAPPEN and means we have a bug somewhere. */
+ if (!Opts_LanMode())
+ {
+ if (!MC_ListQuestionsLeft() && !num_comets_alive())
+ {
+ fprintf(stderr, "Error - no questions left but game not over\n");
+ DEBUGMSG(debug_game, "ListQuestionsLeft() = %d ", MC_ListQuestionsLeft());
+ DEBUGMSG(debug_game, "num_comets_alive() = %d", num_comets_alive());
+ return GAME_OVER_ERROR;
+ }
+ }
+
+ /* If using demo mode, see if counter has run out: */
+ if (Opts_DemoMode())
+ {
+ if (demo_countdown <= 0 )
+ return GAME_OVER_OTHER;
+ }
+
+ /* if we made it to here, the game goes on! */
+ return GAME_IN_PROGRESS;
+}
+
+
+void print_exit_conditions(void)
+{
+ printf("\ngame_status:\t");
+ switch (game_status)
+ {
+ case GAME_IN_PROGRESS:
+ {
+ printf("GAME_IN_PROGRESS\n");
+ break;
+ }
+
+ case GAME_OVER_WON:
+ {
+ printf("GAME_OVER_WON\n");
+ break;
+ }
+ case GAME_OVER_LOST:
+ {
+ printf("GAME_OVER_LOST\n");
+ break;
+ }
+ case GAME_OVER_OTHER:
+ {
+ printf("GAME_OVER_OTHER\n");
+ break;
+ }
+ case GAME_OVER_ESCAPE:
+ {
+ printf("GAME_OVER_ESCAPE\n");
+ print_status();
+ break;
+ }
+ case GAME_OVER_WINDOW_CLOSE:
+ {
+ printf("GAME_OVER_WINDOW_CLOSE\n");
+ break;
+ }
+ case GAME_OVER_ERROR:
+ {
+ printf("GAME_OVER_ERROR\n");
+ break;
+ }
+ default:
+ {
+ printf("Unrecognized value\n");
+ break;
+ }
+ }
+}
+
+
+/* Reset stuff for the next level! */
+void reset_level(void)
+{
+ char fname[1024];
+ int i;
+ int next_wave_comets;
+ int use_feedback;
+ float comet_avg_height, height_differential;
+
+
+ /* Clear all comets: */
+
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ DEBUGCODE(debug_game)
+ {
+ if(comets[i].alive)
+ printf("Warning - resetting comets but comet[%d| still alive\n", i);
+ }
+ comets[i].alive = 0;
+ }
+
+ /* Clear LED F: */
+
+ for (i = 0; i < MC_MAX_DIGITS; ++i)
+ digits[i] = 0;
+ neg_answer_picked = 0;
+
+ /* Load random background image, but ensure it's different from this one: */
+ for (i = last_bkgd; i == last_bkgd; i = rand() % NUM_BKGDS);
+
+ last_bkgd = i;
+
+ sprintf(fname, "backgrounds/%d.jpg", i);
+
+ if (bkgd != NULL)
+ {
+ SDL_FreeSurface(bkgd);
+ bkgd = NULL;
+ }
+ if (scaled_bkgd != NULL)
+ {
+ SDL_FreeSurface(scaled_bkgd);
+ scaled_bkgd = NULL;
+ }
+
+ if (Opts_UseBkgd())
+ {
+ LoadBothBkgds(fname, &scaled_bkgd, &bkgd);
+ if (bkgd == NULL || scaled_bkgd == NULL)
+ {
+ fprintf(stderr,
+ "\nWarning: Could not load background image:\n"
+ "%s\n"
+ "The Simple DirectMedia error that ocurred was: %s\n",
+ fname, SDL_GetError());
+ Opts_SetUseBkgd(0);
+ }
+ }
+
+
+
+ /* Record score before this wave: */
+
+ pre_wave_score = score;
+
+ /* Set number of attackers for this wave: */
+
+ /* On first wave or if slowdown flagged due to wrong answer: */
+ if (wave == 1 || slowdown)
+ {
+ next_wave_comets = Opts_StartingComets();
+ speed = Opts_Speed();
+ slowdown = 0;
+ }
+
+ else /* Otherwise increase comets and speed if selected, not to */
+ /* exceed maximum: */
+ {
+ next_wave_comets = prev_wave_comets;
+ if (Opts_AllowSpeedup())
+ {
+ next_wave_comets += Opts_ExtraCometsPerWave();
+ if (next_wave_comets > Opts_MaxComets())
+ {
+ next_wave_comets = Opts_MaxComets();
+ }
+
+ use_feedback = Opts_UseFeedback();
+
+ if (use_feedback)
+ {
+ #ifdef FEEDBACK_DEBUG
+ printf("Evaluating feedback...\n old danger level = %g,",danger_level);
+ #endif
+
+ /* Update our danger level, i.e., the target height */
+ danger_level = 1 - (1-danger_level) /
+ Opts_DangerLevelSpeedup();
+ if (danger_level > Opts_DangerLevelMax())
+ danger_level = Opts_DangerLevelMax();
+
+ #ifdef FEEDBACK_DEBUG
+ printf(" new danger level = %g.\n",danger_level);
+ #endif
+
+ /* Check to see whether we have any feedback data. If not, skip it. */
+ if (comet_feedback_number == 0)
+ {
+ use_feedback = 0; /* No comets above living cities, skip feedback */
+
+ #ifdef FEEDBACK_DEBUG
+ printf("No feedback data available, aborting.\n\n");
+ #endif
+ }
+ else
+ {
+ /* Compute the average height of comet destruction. */
+ comet_avg_height = comet_feedback_height/comet_feedback_number;
+
+ /* Determine how this average height compares with target. */
+ height_differential = comet_avg_height - danger_level;
+
+ /* Set the speed so that we move halfway towards the target */
+ /* height. That makes the changes a bit more conservative. */
+
+ #ifdef FEEDBACK_DEBUG
+ printf(" comet average height = %g, height differential = %g.\n",
+ comet_avg_height, height_differential);
+ printf(" old speed = %g,",speed);
+ #endif
+
+ speed *= (1 - height_differential/danger_level/2);
+
+ /* Enforce bounds on speed */
+ if (speed < MINIMUM_SPEED)
+ speed = MINIMUM_SPEED;
+ if (speed > Opts_MaxSpeed())
+ speed = Opts_MaxSpeed();
+
+ #ifdef FEEDBACK_DEBUG
+ printf(" new speed = %g.\n",speed);
+ printf("Feedback evaluation complete.\n\n");
+ #endif
+ }
+ }
+
+ if (!use_feedback)
+ {
+ /* This is not an "else" because we might skip feedback */
+ /* when comet_feedback_number == 0 */
+ speed = speed * Opts_SpeedupFactor();
+ if (speed > Opts_MaxSpeed())
+ {
+ speed = Opts_MaxSpeed();
+ }
+ }
+ }
+ }
+
+ comet_feedback_number = 0;
+ comet_feedback_height = 0;
+
+ prev_wave_comets = next_wave_comets;
+ num_attackers = prev_wave_comets;
+}
+
+
+
+/* Add a comet to the game (if there's room): */
+int add_comet(void)
+{
+ static int prev_city = -1;
+ int i;
+ float y_spacing;
+
+ int com_found = -1;
+ int q_found = -1;
+
+ y_spacing = (images[IMG_NUMS]->h) * 1.5;
+
+ /* Return if any previous comet too high up to create another one yet: */
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (comets[i].alive)
+ if (comets[i].y < y_spacing)
+ {
+ DEBUGMSG(debug_game,
+ "add_comet() - returning because comet[%d] not"
+ " far enough down: %f\n", i, comets[i].y);
+ return 0;
+ }
+ }
+
+ /* Now look for a free comet slot: */
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ if (!comets[i].alive)
+ {
+ com_found = i;
+ break;
+ }
+ }
+
+ if (-1 == com_found)
+ {
+ /* free comet slot not found - no comet added: */
+ DEBUGMSG(debug_game, "add_comet() called but no free comet slot\n");
+ DEBUGCODE(debug_game) print_current_quests();
+ return 0;
+ }
+
+
+ /* If playing in LAN mode, see if we have a question ready in */
+ /* our local queue: */
+
+ if(Opts_LanMode())
+ {
+ DEBUGCODE(debug_game) print_current_quests();
+ for (i = 0; i < QUEST_QUEUE_SIZE; i++)
+ {
+ if(quest_queue[i].question_id != -1)
+ {
+ DEBUGMSG(debug_game, "Found question_id %d, %s\n",
+ quest_queue[i].question_id,
+ quest_queue[i].formula_string);
+ q_found = i;
+ break;
+ }
+ }
+
+ if(q_found == -1)
+ {
+ DEBUGMSG(debug_game, "add_comet() called but no question available in queue\n");
+ DEBUGCODE(debug_game) print_current_quests();
+ return 0;
+ }
+ }
+
+ /* Now we have a vacant comet slot at com_found and (if in LAN mode) */
+ /* a question for it at q_found. Now just copy: */
+
+ if(Opts_LanMode())
+ {
+ MC_CopyCard(&(quest_queue[q_found]), &(comets[com_found].flashcard));
+ MC_ResetFlashCard(&(quest_queue[q_found]));
+ }
+ else // Not LAN mode - just get question with direct call:
+ {
+ if (!MC_NextQuestion(&(comets[com_found].flashcard)))
+ {
+ /* no more questions available - cannot create comet. */
+ return 0;
+ }
+ }
+
+ DEBUGCODE(debug_game)
+ {
+ printf("In add_comet(), card is\n");
+ print_card(comets[com_found].flashcard);
+ }
+
+ /* Make sure question is "sane" before we add it: */
+ if( (comets[com_found].flashcard.answer > 999)
+ ||(comets[com_found].flashcard.answer < -999))
+ {
+ printf("Warning, card with invalid answer encountered: %d\n",
+ comets[com_found].flashcard.answer);
+ MC_ResetFlashCard(&(comets[com_found].flashcard));
+ return 0;
+ }
+
+ /* If we make it to here, create a new comet!*/
+ comets[com_found].answer = comets[com_found].flashcard.answer;
+ comets[com_found].alive = 1;
+// num_comets_alive++;
+
+ /* Pick a city to attack that was not attacked last time */
+ /* (so formulas are less likely to overlap). */
+ do
+ {
+ i = rand() % NUM_CITIES;
+ }
+ while (i == prev_city);
+
+ prev_city = i;
+
+ /* Set in to attack that city: */
+ comets[com_found].city = i;
+ /* Start at the top, above the city in question: */
+ comets[com_found].x = cities[i].x;
+ comets[com_found].y = 0;
+ comets[com_found].zapped = 0;
+ /* Should it be a bonus comet? */
+ comets[com_found].bonus = 0;
+
+ DEBUGMSG(debug_game, "bonus_comet_counter is %d\n",bonus_comet_counter);
+
+ if (bonus_comet_counter == 1)
+ {
+ bonus_comet_counter = 0;
+ comets[com_found].bonus = 1;
+ playsound(SND_BONUS_COMET);
+ DEBUGMSG(debug_game, "Created bonus comet");
+ }
+
+ DEBUGMSG(debug_game, "add_comet(): formula string is: %s\n", comets[com_found].flashcard.formula_string);
+
+ /* Record the time at which this comet was created */
+ comets[com_found].time_started = SDL_GetTicks();
+
+ /* comet slot found and question found so return successfully: */
+ return 1;
+}
+
+
+
+/* Draw numbers/symbols over the attacker: */
+/* This draws the numbers related to the comets */
+void draw_nums(const char* str, int x, int y)
+{
+ int i, j, cur_x, c;
+ int str_length, char_width, image_length;
+
+ SDL_Rect src, dest;
+
+ /* avoid some recalculation and repeated function calls: */
+ str_length = strlen(str);
+ /* IMG_NUMS now consists of 10 digit graphics, NUM_OPERS (i.e. 4) */
+ /* operation symbols, and the '=' and '?' symbols, all side by side. */
+ /* char_width is the width of a single symbol. */
+ char_width = (images[IMG_NUMS]->w / (16));
+ /* Calculate image_length, taking into account that the string will */
+ /* usually have four empty spaces that are only half as wide: */
+ image_length = str_length * char_width - (char_width * 0.5 * 4);
+ /* Center around the shape */
+ cur_x = x - (image_length) / 2;
+
+ /* the following code keeps the formula at least 8 pixels inside the window: */
+ if (cur_x < 8)
+ cur_x = 8;
+ if (cur_x + (image_length) >= (screen->w - 8))
+ cur_x = ((screen->w - 8) - (image_length));
+
+ /* Draw each character: */
+ for (i = 0; i < str_length; i++)
+ {
+ c = -1;
+
+ /* Determine which character to display: */
+
+ if (str[i] >= '0' && str[i] <= '9')
+ {
+ c = str[i] - '0';
+ }
+ else if ('=' == str[i])
+ {
+ c = 14; /* determined by layout of nums.png image */
+ }
+ else if ('?' == str[i])
+ {
+ c = 15; /* determined by layout of nums.png image */
+ }
+ else /* [ THIS COULD CAUSE SLOWNESS... ] */
+ {
+ for (j = 0; j < 4; j++)
+ {
+ if (str[i] == operchars[j])
+ {
+ c = 10 + j;
+ }
+ }
+ }
+
+ /* Display this character! */
+ if (c != -1)
+ {
+ src.x = c * char_width;
+ src.y = 0;
+ src.w = char_width;
+ src.h = images[IMG_NUMS]->h;
+
+ dest.x = cur_x;
+ dest.y = y - images[IMG_NUMS]->h;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_NUMS], &src,
+ screen, &dest);
+ /* Move the 'cursor' one character width: */
+ cur_x = cur_x + char_width;
+ }
+ /* If char is a blank, no drawing to do but still move the cursor: */
+ /* NOTE: making spaces only half as wide seems to look better. */
+ if (' ' == str[i])
+ {
+ cur_x = cur_x + (char_width * 0.5);
+ }
+ }
+}
+
+
+/* Draw status numbers: */
+void draw_numbers(const char* str, int x, int y)
+{
+ int i, cur_x, c;
+ SDL_Rect src, dest;
+
+ cur_x = x;
+
+ /* Draw each character: */
+
+ for (i = 0; i < strlen(str); i++)
+ {
+ c = -1;
+
+ /* Determine which character to display: */
+ if (str[i] >= '0' && str[i] <= '9')
+ c = str[i] - '0';
+
+ /* Display this character! */
+ if (c != -1)
+ {
+ src.x = c * (images[IMG_NUMBERS]->w / 10);
+ src.y = 0;
+ src.w = (images[IMG_NUMBERS]->w / 10);
+ src.h = images[IMG_NUMBERS]->h;
+
+ dest.x = cur_x;
+ dest.y = y;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_NUMBERS], &src,
+ screen, &dest);
+
+ /* Move the 'cursor' one character width: */
+ cur_x = cur_x + (images[IMG_NUMBERS]->w / 10);
+ }
+ }
+}
+
+
+/* Pause loop: */
+
+int pause_game(void)
+{
+ /* NOTE - done and quit changed to pause_done and pause_quit */
+ /* due to potentially confusing name collision */
+ int pause_done, pause_quit;
+ SDL_Event event;
+ SDL_Rect dest;
+
+ /* Only pause if pause allowed: */
+ if (!Opts_AllowPause())
+ {
+ fprintf(stderr, "Pause requested but not allowed by Opts!\n");
+ return 0;
+ }
+
+ pause_done = 0;
+ pause_quit = 0;
+
+ dest.x = (screen->w - images[IMG_PAUSED]->w) / 2;
+ dest.y = (screen->h - images[IMG_PAUSED]->h) / 2;
+ dest.w = images[IMG_PAUSED]->w;
+ dest.h = images[IMG_PAUSED]->h;
+
+ DarkenScreen(1); // cut all channels by half
+ SDL_BlitSurface(images[IMG_PAUSED], NULL, screen, &dest);
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ Mix_PauseMusic();
+#endif
+
+ do
+ {
+ while (SDL_PollEvent(&event))
+ {
+ if (event.type == SDL_KEYDOWN)
+ pause_done = 1;
+ else if (event.type == SDL_QUIT)
+ {
+ user_quit_received = GAME_OVER_WINDOW_CLOSE;
+ pause_quit = 1;
+ }
+ }
+
+ SDL_Delay(100);
+ }
+ while (!pause_done && !pause_quit);
+
+#ifndef NOSOUND
+ if (Opts_UsingSound())
+ Mix_ResumeMusic();
+#endif
+
+ return (pause_quit);
+}
+
+
+
+/* FIXME these ought to be in SDL_extras - DSB */
+
+/* Draw a line: */
+void draw_line(int x1, int y1, int x2, int y2, int red, int grn, int blu)
+{
+ int dx, dy, tmp;
+ float m, b;
+ Uint32 pixel;
+ SDL_Rect dest;
+
+ pixel = SDL_MapRGB(screen->format, red, grn, blu);
+
+ dx = x2 - x1;
+ dy = y2 - y1;
+
+ putpixel(screen, x1, y1, pixel);
+
+ if (dx != 0)
+ {
+ m = ((float) dy) / ((float) dx);
+ b = y1 - m * x1;
+
+ if (x2 > x1)
+ dx = 1;
+ else
+ dx = -1;
+
+ while (x1 != x2)
+ {
+ x1 = x1 + dx;
+ y1 = m * x1 + b;
+
+ putpixel(screen, x1, y1, pixel);
+ }
+ }
+ else
+ {
+ if (y1 > y2)
+ {
+ tmp = y1;
+ y1 = y2;
+ y2 = tmp;
+ }
+
+ dest.x = x1;
+ dest.y = y1;
+ dest.w = 3;
+ dest.h = y2 - y1;
+
+ SDL_FillRect(screen, &dest, pixel);
+ }
+}
+
+
+/* Draw a single pixel into the surface: */
+
+void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel)
+{
+#ifdef PUTPIXEL_RAW
+ int bpp;
+ Uint8* p;
+
+ /* Determine bytes-per-pixel for the surface in question: */
+
+ bpp = surface->format->BytesPerPixel;
+
+
+ /* Set a pointer to the exact location in memory of the pixel
+ in question: */
+
+ p = (Uint8 *) (surface->pixels + /* Start at beginning of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * bpp)); /* Go in X pixels */
+
+
+ /* Assuming the X/Y values are within the bounds of this surface... */
+
+ if (x >= 0 && y >= 0 && x < surface->w && y < surface->h)
+ {
+ /* Set the (correctly-sized) piece of data in the surface's RAM
+ to the pixel value sent in: */
+
+ if (bpp == 1)
+ *p = pixel;
+ else if (bpp == 2)
+ *(Uint16 *)p = pixel;
+ else if (bpp == 3)
+ {
+ if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
+ {
+ p[0] = (pixel >> 16) & 0xff;
+ p[1] = (pixel >> 8) & 0xff;
+ p[2] = pixel & 0xff;
+ }
+ else
+ {
+ p[0] = pixel & 0xff;
+ p[1] = (pixel >> 8) & 0xff;
+ p[2] = (pixel >> 16) & 0xff;
+ }
+ }
+ else if (bpp == 4)
+ {
+ *(Uint32 *)p = pixel;
+ }
+ }
+#else
+ SDL_Rect dest;
+
+ dest.x = x;
+ dest.y = y;
+ dest.w = 3;
+ dest.h = 4;
+
+ SDL_FillRect(surface, &dest, pixel);
+#endif
+}
+
+
+/* Draw image at lower center of screen: */
+void draw_console_image(int i)
+{
+ SDL_Rect dest;
+
+ dest.x = (screen->w - images[i]->w) / 2;
+ dest.y = (screen->h - images[i]->h);
+ dest.w = images[i]->w;
+ dest.h = images[i]->h;
+
+ SDL_BlitSurface(images[i], NULL, screen, &dest);
+}
+
+
+void draw_question_counter(void)
+{
+ int questions_left;
+ int comet_img;
+ int nums_width;
+ int nums_x;
+ int comet_width;
+ int comet_x;
+
+ char str[64];
+ SDL_Rect dest;
+
+ /* Calculate placement based on image widths: */
+ nums_width = (images[IMG_NUMBERS]->w / 10) * 4; /* displaying 4 digits */
+ comet_width = images[IMG_MINI_COMET1]->w;
+ comet_x = (screen->w)/2 - (comet_width + nums_width)/2;
+ nums_x = comet_x + comet_width;
+
+ /* Draw mini comet symbol: */
+ /* Decide which image to display: */
+ comet_img = IMG_MINI_COMET1 + (frame % 3);
+ /* Draw it! */
+ dest.x = comet_x;
+ dest.y = 0;
+ dest.w = comet_width;
+ dest.h = images[comet_img]->h;
+
+ SDL_BlitSurface(images[comet_img], NULL, screen, &dest);
+
+ /* draw number of remaining questions: */
+ if(Opts_LanMode())
+ questions_left = total_questions_left;
+ else
+ questions_left = MC_TotalQuestionsLeft();
+
+ sprintf(str, "%.4d", questions_left);
+ draw_numbers(str, nums_x, 0);
+}
+
+/* FIXME very confusing having this function draw console */
+void draw_led_console(void)
+{
+ int i;
+ SDL_Rect src, dest;
+ int y;
+
+ /* draw new console image with "monitor" for LED numbers: */
+ draw_console_image(IMG_CONSOLE_LED);
+ /* set y to draw LED numbers into Tux's "monitor": */
+ y = (screen->h
+ - images[IMG_CONSOLE_LED]->h
+ + 4); /* "monitor" has 4 pixel margin */
+
+ /* begin drawing so as to center display depending on whether minus */
+ /* sign needed (4 digit slots) or not (3 digit slots) DSB */
+ if (MC_GetOpt(ALLOW_NEGATIVES) )
+ dest.x = ((screen->w - ((images[IMG_LEDNUMS]->w) / 10) * 4) / 2);
+ else
+ dest.x = ((screen->w - ((images[IMG_LEDNUMS]->w) / 10) * 3) / 2);
+
+ for (i = -1; i < MC_MAX_DIGITS; i++) /* -1 is special case to allow minus sign */
+ /* with minimal modification of existing code DSB */
+ {
+ if (-1 == i)
+ {
+ if (MC_GetOpt(ALLOW_NEGATIVES))
+ {
+ if (neg_answer_picked)
+ src.x = (images[IMG_LED_NEG_SIGN]->w) / 2;
+ else
+ src.x = 0;
+
+ src.y = 0;
+ src.w = (images[IMG_LED_NEG_SIGN]->w) / 2;
+ src.h = images[IMG_LED_NEG_SIGN]->h;
+
+ dest.y = y;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_LED_NEG_SIGN], &src, screen, &dest);
+ /* move "cursor" */
+ dest.x += src.w;
+ }
+ }
+ else
+ {
+ src.x = digits[i] * ((images[IMG_LEDNUMS]->w) / 10);
+ src.y = 0;
+ src.w = (images[IMG_LEDNUMS]->w) / 10;
+ src.h = images[IMG_LEDNUMS]->h;
+
+ /* dest.x already set */
+ dest.y = y;
+ dest.w = src.w;
+ dest.h = src.h;
+
+ SDL_BlitSurface(images[IMG_LEDNUMS], &src, screen, &dest);
+ /* move "cursor" */
+ dest.x += src.w;
+ }
+ }
+}
+
+/* Translates mouse events into keyboard events when on-screen keypad used */
+/* or when exit button clicked. */
+void game_mouse_event(SDL_Event event)
+{
+ int keypad_w, keypad_h, x, y, row, column;
+ SDLKey key = SDLK_UNKNOWN;
+ SDLMod mod = event.key.keysym.mod;
+ keypad_w = 0;
+ keypad_h = 0;
+
+ /* Check to see if user clicked exit button: */
+ /* The exit button is in the upper right corner of the screen: */
+ if ((event.button.x >= (screen->w - images[IMG_STOP]->w))
+ &&(event.button.y <= images[IMG_STOP]->h))
+ {
+ key = SDLK_ESCAPE;
+ game_key_event(key, mod);
+ return;
+ }
+
+ /* get out unless we really are using keypad */
+ if ( level_start_wait
+ || Opts_DemoMode()
+ || !Opts_GetGlobalOpt(USE_KEYPAD))
+ {
+ return;
+ }
+
+
+ /* make sure keypad image is valid and has non-zero dimensions: */
+ /* FIXME maybe this checking should be done once at the start */
+ /* of game() rather than with every mouse click */
+ if (MC_GetOpt(ALLOW_NEGATIVES))
+ {
+ if (!images[IMG_KEYPAD])
+ return;
+ else
+ {
+ keypad_w = images[IMG_KEYPAD]->w;
+ keypad_h = images[IMG_KEYPAD]->h;
+ }
+ }
+ else
+ {
+ if (!images[IMG_KEYPAD_NO_NEG])
+ return;
+ else
+ {
+ keypad_w = images[IMG_KEYPAD]->w;
+ keypad_h = images[IMG_KEYPAD]->h;
+ }
+ }
+
+ if (!keypad_w || !keypad_h)
+ {
+ return;
+ }
+
+
+ /* only proceed if click falls within keypad: */
+ if (!((event.button.x >=
+ (screen->w / 2) - (keypad_w / 2) &&
+ event.button.x <=
+ (screen->w / 2) + (keypad_w / 2) &&
+ event.button.y >=
+ (screen->h / 2) - (keypad_h / 2) &&
+ event.button.y <=
+ (screen->h / 2) + (keypad_h / 2))))
+ /* click outside of keypad - do nothing */
+ {
+ return;
+ }
+
+ else /* click was within keypad */
+ {
+ x = (event.button.x - ((screen->w / 2) - (keypad_w / 2)));
+ y = (event.button.y - ((screen->h / 2) - (keypad_h / 2)));
+
+ /* Now determine what onscreen key was pressed */
+ /* */
+ /* The on-screen keypad has a 4 x 4 layout: */
+ /* */
+ /* ********************************* */
+ /* * * * * * */
+ /* * 7 * 8 * 9 * - * */
+ /* * * * * * */
+ /* ********************************* */
+ /* * * * * * */
+ /* * 4 * 5 * 6 * * */
+ /* * * * * * */
+ /* ************************* + * */
+ /* * * * * * */
+ /* * 1 * 2 * 3 * * */
+ /* * * * * * */
+ /* ********************************* */
+ /* * * * */
+ /* * 0 * Enter * */
+ /* * * * */
+ /* ********************************* */
+ /* */
+ /* The following code simply figures out the */
+ /* row and column based on x and y and looks */
+ /* up the SDlKey accordingly. */
+
+ column = x/((keypad_w)/4);
+ row = y/((keypad_h)/4);
+
+ /* make sure row and column are sane */
+ if (column < 0
+ || column > 3
+ || row < 0
+ || row > 3)
+ {
+ printf("\nIllegal row or column value!\n");
+ return;
+ }
+
+ /* simple but tedious - I am sure this could be done more elegantly */
+
+ if (0 == row)
+ {
+ if (0 == column)
+ key = SDLK_7;
+ if (1 == column)
+ key = SDLK_8;
+ if (2 == column)
+ key = SDLK_9;
+ if (3 == column)
+ key = SDLK_MINUS;
+ }
+ if (1 == row)
+ {
+ if (0 == column)
+ key = SDLK_4;
+ if (1 == column)
+ key = SDLK_5;
+ if (2 == column)
+ key = SDLK_6;
+ if (3 == column)
+ key = SDLK_PLUS;
+ }
+ if (2 == row)
+ {
+ if (0 == column)
+ key = SDLK_1;
+ if (1 == column)
+ key = SDLK_2;
+ if (2 == column)
+ key = SDLK_3;
+ if (3 == column)
+ key = SDLK_PLUS;
+ }
+ if (3 == row)
+ {
+ if (0 == column)
+ key = SDLK_0;
+ if (1 == column)
+ key = SDLK_RETURN;
+ if (2 == column)
+ key = SDLK_RETURN;
+ if (3 == column)
+ key = SDLK_RETURN;
+ }
+
+ if (key == SDLK_UNKNOWN)
+ {
+ return;
+ }
+
+ /* now can proceed as if keyboard was used */
+ game_key_event(key, mod);
+ }
+}
+
+/* called by either key presses or mouse clicks on */
+/* on-screen keypad */
+void game_key_event(SDLKey key, SDLMod mod)
+{
+ int i;
+ key_pressed = 1; // Signal back in cases where waiting on any key
+
+ if (key == SDLK_ESCAPE)
+ {
+ /* Escape key - quit! */
+ user_quit_received = GAME_OVER_ESCAPE;
+ }
+ DEBUGCODE(debug_game)
+ {
+ if (key == SDLK_LEFTBRACKET) //a nice nonobvious/unused key
+ {
+ user_quit_received = GAME_OVER_CHEATER;
+ }
+ }
+ else if (key == SDLK_TAB
+ || key == SDLK_p)
+ {
+ /* [TAB] or [P]: Pause! (if settings allow) */
+ if (Opts_AllowPause())
+ {
+ paused = 1;
+ }
+ }
+
+ /* Adjust speed if settings allow: */
+ else if (key == SDLK_UP)
+ {
+ if (Opts_AllowPause())
+ {
+ speed *= 1.2;
+ }
+ }
+
+ else if (key == SDLK_DOWN)
+ {
+ if (Opts_AllowPause())
+ {
+ speed /= 1.2;
+ }
+ }
+
+
+ /* Toggle screen mode: */
+ else if (key == SDLK_F10)
+ {
+ Opts_SetGlobalOpt(FULLSCREEN, !Opts_GetGlobalOpt(FULLSCREEN) );
+ SwitchScreenMode();
+ game_recalc_positions();
+ }
+
+ /* Toggle music: */
+#ifndef NOSOUND
+ else if (key == SDLK_F11)
+ {
+ if (Opts_UsingSound())
+ {
+ if (Mix_PlayingMusic())
+ {
+ Mix_HaltMusic();
+ }
+ else
+ {
+ Mix_PlayMusic(musics[MUS_GAME + (rand() % 3)], 0);
+ }
+ }
+ }
+#endif
+
+
+ if (level_start_wait > 0 || Opts_DemoMode() || !help_controls.laser_enabled)
+ {
+ /* Eat other keys until level start wait has passed,
+ or if game is in demo mode: */
+ key = SDLK_UNKNOWN;
+ }
+
+
+ /* The rest of the keys control the numeric answer console: */
+
+ if (key >= SDLK_0 && key <= SDLK_9)
+ {
+ /* [0]-[9]: Add a new digit: */
+ for (i = 0; i < MC_MAX_DIGITS-1; ++i)
+ digits[i] = digits[i+1];
+ digits[MC_MAX_DIGITS-1] = key - SDLK_0;
+
+// digits[0] = digits[1];
+// digits[1] = digits[2];
+// digits[2] = key - SDLK_0;
+ tux_pressing = 1;
+ }
+ else if (key >= SDLK_KP0 && key <= SDLK_KP9)
+ {
+ /* Keypad [0]-[9]: Add a new digit: */
+ for (i = 0; i < MC_MAX_DIGITS-1; ++i)
+ digits[i] = digits[i+1];
+ digits[MC_MAX_DIGITS-1] = key - SDLK_KP0;
+
+// digits[0] = digits[1];
+// digits[1] = digits[2];
+// digits[2] = key - SDLK_KP0;
+ tux_pressing = 1;
+ }
+ /* support for negative answer input DSB */
+ else if ((key == SDLK_MINUS || key == SDLK_KP_MINUS)
+ && MC_GetOpt(ALLOW_NEGATIVES) ) /* do nothing unless neg answers allowed */
+ {
+ /* allow player to make answer negative: */
+ neg_answer_picked = 1;
+ tux_pressing = 1;
+ }
+ else if ( /* Effort to make logical operators clear: */
+ (
+ ( /* HACK this hard-codes the plus sign to the US layout: */
+ (key == SDLK_EQUALS) && (mod & KMOD_SHIFT)
+ )
+ ||
+ (
+ key == SDLK_KP_PLUS
+ )
+ )
+ &&
+ MC_GetOpt(ALLOW_NEGATIVES)
+ ) /* do nothing unless neg answers allowed */
+ {
+ /* allow player to make answer positive: */
+ printf("SDKL_PLUS received\n");
+ neg_answer_picked = 0;
+ tux_pressing = 1;
+ }
+ else if (key == SDLK_BACKSPACE ||
+ key == SDLK_CLEAR ||
+ key == SDLK_DELETE)
+ {
+ /* [BKSP]: Clear digits! */
+ for (i = 0; i < MC_MAX_DIGITS; ++i)
+ digits[i] = 0;
+ tux_pressing = 1;
+ }
+ else if (key == SDLK_RETURN ||
+ key == SDLK_KP_ENTER ||
+ key == SDLK_SPACE)
+ {
+ /* [ENTER]: Accept digits! */
+ doing_answer = 1;
+ }
+}
+
+/* Increment score: */
+
+void add_score(int inc)
+{
+ score += inc;
+ DEBUGMSG(debug_game,"Score is now: %d\n", score);
+}
+
+
+
+void reset_comets(void)
+{
+ int i = 0;
+ comet_counter = 0;
+
+ for (i = 0; i < Opts_MaxComets(); i++)
+ {
+ comets[i].alive = 0;
+ comets[i].expl = -1;
+ comets[i].city = 0;
+ comets[i].x = 0;
+ comets[i].y = 0;
+ comets[i].answer = 0;
+ MC_ResetFlashCard(&(comets[i].flashcard) );
+ comets[i].bonus = 0;
+ }
+}
+
+
+void print_status(void)
+{
+ int i;
+
+ printf("\nCities:");
+ printf("\nHits left: ");
+ for (i = 0; i < NUM_CITIES; i++)
+ printf("%02d ",cities[i].hits_left);
+ printf("\nStatus: ");
+ for (i = 0; i < NUM_CITIES; i++)
+ printf("%02d ",cities[i].status);
+
+ printf("\nPenguins:");
+ printf("\nStatus: ");
+ for (i = 0; i < NUM_CITIES; i++)
+ printf("%02d ",penguins[i].status);
+
+ printf("\nCloud:");
+ printf("\nStatus: %d",cloud.status);
+ printf("\nCity: %d",cloud.city);
+ printf("\n");
+}
+
+
+void free_on_exit(void)
+{
+ int i;
+ for (i = 0; i < MAX_MAX_COMETS; ++i)
+ MC_FreeFlashcard(&(comets[i].flashcard));
+ free(comets);
+ free(cities);
+ free(penguins);
+ free(steam);
+}
+
+/* Recalculate on-screen city & comet locations when screen dimensions change */
+void game_recalc_positions(void)
+{
+ int i, img;
+ int old_city_expl_height = city_expl_height;
+
+ DEBUGMSG(debug_game,"Recalculating positions\n");
+
+ if (Opts_GetGlobalOpt(USE_IGLOOS))
+ img = IMG_IGLOO_INTACT;
+ else
+ img = IMG_CITY_BLUE;
+
+ for (i = 0; i < NUM_CITIES; ++i)
+ {
+ /* Left vs. Right - makes room for Tux and the console */
+ if (i < NUM_CITIES / 2)
+ {
+ cities[i].x = (((screen->w / (NUM_CITIES + 1)) * i) +
+ ((images[img] -> w) / 2));
+ DEBUGMSG(debug_game,"%d,", cities[i].x);
+ }
+ else
+ {
+ cities[i].x = screen->w -
+ (screen->w / (NUM_CITIES + 1) *
+ (i - NUM_CITIES / 2) +
+ images[img]->w / 2);
+ DEBUGMSG(debug_game,"%d,", cities[i].x);
+ }
+
+ penguins[i].x = cities[i].x;
+ }
+
+ city_expl_height = screen->h - images[IMG_CITY_BLUE]->h;
+ //move comets to a location 'equivalent' to where they were
+ //i.e. with the same amount of time left before impact
+ for (i = 0; i < Opts_MaxComets(); ++i)
+ {
+ if (!comets[i].alive)
+ continue;
+
+ comets[i].x = cities[comets[i].city].x;
+ //if (Opts_GetGlobalOpt(FULLSCREEN) )
+ comets[i].y = comets[i].y * city_expl_height / old_city_expl_height;
+ //else
+ // comets[i].y = comets[i].y * RES_Y / screen->h;
+ }
+}
+
+static int num_comets_alive()
+{
+ int i = 0;
+ int living = 0;
+ for(i = 0; i < Opts_MaxComets(); i++)
+ if(comets[i].alive)
+ living++;
+ return living;
+}
+
diff --git a/src/game.h b/src/game.h
new file mode 100644
index 0000000..fc804d6
--- /dev/null
+++ b/src/game.h
@@ -0,0 +1,152 @@
+/*
+ game.h
+
+ For TuxMath
+ The main game loop!
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - February 18, 2004
+*/
+
+
+#ifndef GAME_H
+#define GAME_H
+
+#define MAX_COMETS 10
+#define NUM_CITIES 4 /* MUST BE AN EVEN NUMBER! */
+
+#define NUM_BKGDS 8
+
+#define MAX_CITY_COLORS 4
+
+typedef struct laser_type {
+ int alive;
+ int x1, y1;
+ int x2, y2;
+} laser_type;
+
+/* Note: both igloos and the original "cities" graphics are handled
+ with the "cities" structure.
+ hits_left holds the number of hits it can withstand before
+ being "dead". If using the original cities graphics,
+ 2 = with shield,
+ 1 = without shield,
+ 0 = dead
+ If using the igloo graphics,
+ 2 = intact,
+ 1 = half-melted
+ 0 = melted
+*/
+
+/* For both cities/igloos & penguins, the animation state is
+ controlled by "status", and "counter" is used for timing. We also
+ have "img" and "layer" so that the image can be pre-planned to have
+ a specific rendering order (so that foreground/background issues
+ are handled properly). Layer 0 is rendered first, then layer 1, and
+ so on. */
+
+typedef struct city_type {
+ int hits_left;
+ int status, counter;
+ int threatened; /* true if a comet is near */
+ int x;
+ int img,layer;
+} city_type;
+
+typedef struct penguin_type {
+ int status, counter;
+ int x;
+ int img,layer;
+} penguin_type;
+
+typedef struct steam_type {
+ int status, counter;
+ int img,layer;
+} steam_type;
+
+#define NUM_SNOWFLAKES 100
+
+typedef struct cloud_type {
+ int status;
+ int city;
+ int x,y;
+ int snowflake_x[NUM_SNOWFLAKES];
+ int snowflake_y[NUM_SNOWFLAKES];
+ int snowflake_size[NUM_SNOWFLAKES];
+} cloud_type;
+
+#define GAME_MESSAGE_LENGTH 100
+
+typedef struct {
+ int x,y;
+ int alpha;
+ char message[GAME_MESSAGE_LENGTH];
+} game_message;
+
+enum {
+ GAME_IN_PROGRESS,
+ GAME_OVER_WON,
+ GAME_OVER_LOST,
+ GAME_OVER_OTHER,
+ GAME_OVER_ESCAPE,
+ GAME_OVER_WINDOW_CLOSE,
+ GAME_OVER_CHEATER,
+ GAME_OVER_ERROR
+};
+
+/* City animation status types */
+enum {
+ CITY_PRESENT,
+ CITY_EXPLODING,
+ CITY_EVAPORATING,
+ CITY_REBUILDING,
+ CITY_GONE
+};
+
+/* Penguin animation status types */
+enum {
+ PENGUIN_OFFSCREEN,
+ PENGUIN_HAPPY,
+ PENGUIN_FLAPPING,
+ PENGUIN_DUCKING,
+ PENGUIN_GRUMPY,
+ PENGUIN_WORRIED,
+ PENGUIN_WALKING_OFF,
+ PENGUIN_WALKING_ON,
+ PENGUIN_STANDING_UP,
+ PENGUIN_SITTING_DOWN,
+ PENGUIN_BOWING
+};
+
+/* Steam animation status types */
+enum {
+ STEAM_OFF,
+ STEAM_ON
+};
+
+/* Cloud & snowflake animation types */
+enum {
+ EXTRA_LIFE_OFF,
+ EXTRA_LIFE_ON
+};
+
+int game(void);
+void game_set_start_message(const char*, const char*, const char*, const char*);
+
+/* draw_nums() is used in options.c and factoroids.c/h so need extern linkage */
+void draw_nums(const char* str, int x, int y);
+
+/*used in factoroids.c/h*/
+int pause_game(void);
+//void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel);
+void draw_line(int x1, int y1, int x2, int y2, int r, int g, int b);
+void draw_numbers(const char* str, int x, int y);
+
+#endif
diff --git a/src/generate_lesson.c b/src/generate_lesson.c
new file mode 100644
index 0000000..50fb389
--- /dev/null
+++ b/src/generate_lesson.c
@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "globals.h"
+#include "options.h"
+#include "mathcards.h"
+#include "fileops.h"
+
+/* Compile this with the following statement:
+
+gcc -lm -o generate_lesson -DDATA_PREFIX=\"/usr/local/share/tuxmath\" generate_lesson.c mathcards.c options.c fileops.c lesson.c
+
+Usage: generate_lesson configfile1 configfile2 ...
+
+*/
+
+/* Declarations needed for the auxillary functions */
+char **lesson_list_titles = NULL;
+char **lesson_list_filenames = NULL;
+int num_lessons = 0;
+
+int read_high_scores_fp(FILE* fp)
+{
+ /* This is a stub to let things compile */
+ return 1;
+}
+
+void initialize_scores(void)
+{
+ /* This is a stub to let things compile */
+}
+
+int main(int argc,char *argv[])
+{
+ int i;
+
+ /* Initialize MathCards backend for math questions: */
+ if (!MC_Initialize())
+ {
+ printf("\nUnable to initialize MathCards\n");
+ fprintf(stderr, "\nUnable to initialize MathCards\n");
+ exit(1);
+ }
+
+ /* initialize game_options struct with defaults DSB */
+ if (!Opts_Initialize())
+ {
+ fprintf(stderr, "\nUnable to initialize game_options\n");
+ exit(1);
+ }
+
+ /* This next bit allows multiple config files to be read in sequence, since
+ this is something that happens in the ordinary course of events
+ in tuxmath itself. */
+ for (i = 1; i < argc; i++) {
+ printf("Reading %s\n",argv[i]);
+ read_named_config_file(argv[i]);
+ }
+ printf("All done reading!\n");
+
+ MC_StartGame();
+ MC_PrintQuestionList(stdout);
+ return 0;
+}
diff --git a/src/gettext.h b/src/gettext.h
new file mode 100644
index 0000000..29c572f
--- /dev/null
+++ b/src/gettext.h
@@ -0,0 +1,264 @@
+/* Convenience header for conditional use of GNU <libintl.h>.
+ Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ USA. */
+
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option. */
+#if ENABLE_NLS
+/* Get declarations of GNU message catalog functions. */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+ the gettext() and ngettext() macros. This is an alternative to calling
+ textdomain(), and is useful for libraries. */
+# ifdef DEFAULT_TEXT_DOMAIN
+# undef gettext
+# define gettext(Msgid) \
+ dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+ chokes if dcgettext is defined as a macro. So include it now, to make
+ later inclusions of <locale.h> a NOP. We don't include <libintl.h>
+ as well because people using "gettext.h" will not include <libintl.h>,
+ and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+ is OK. */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+ <libintl.h>, which chokes if dcgettext is defined as a macro. So include
+ it now, to make later inclusions of <libintl.h> a NOP. */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+# include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+ The casts to 'const char *' serve the purpose of producing warnings
+ for invalid uses of the value returned from these functions.
+ On pre-ANSI systems without 'const', the config.h file is supposed to
+ contain "#define const". */
+# define gettext(Msgid) ((const char *) (Msgid))
+# define dgettext(Domainname, Msgid) ((const char *) (Msgid))
+# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid))
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2))
+# define textdomain(Domainname) ((const char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset))
+
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+ extraction of messages, but does not call gettext(). The run-time
+ translation is done at a different place in the code.
+ The argument, String, should be a literal string. Concatenated strings
+ and other string expressions won't work.
+ The macro's expansion is not parenthesized, so that it is suitable as
+ initializer for static 'char[]' or 'const char[]' variables. */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file. */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+ MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
+ short and rarely need to change.
+ The letter 'p' stands for 'particular' or 'special'. */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+ const char *msg_ctxt_id, const char *msgid,
+ int category)
+{
+ const char *translation = dcgettext (domain, msg_ctxt_id, category);
+ if (translation == msg_ctxt_id)
+ return msgid;
+ else
+ return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+npgettext_aux (const char *domain,
+ const char *msg_ctxt_id, const char *msgid,
+ const char *msgid_plural, unsigned long int n,
+ int category)
+{
+ const char *translation =
+ dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+ if (translation == msg_ctxt_id || translation == msgid_plural)
+ return (n == 1 ? msgid : msgid_plural);
+ else
+ return translation;
+}
+
+/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
+ can be arbitrary expressions. But for string literals these macros are
+ less efficient than those above. */
+
+#include <string.h>
+
+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+ (__GNUC__ >= 3 || __GNUG__ >= 2 /* || __STDC_VERSION__ >= 199901L */ )
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+ const char *msgctxt, const char *msgid,
+ int category)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ if (msg_ctxt_id != buf)
+ free (msg_ctxt_id);
+#endif
+ if (translation != msg_ctxt_id)
+ return translation;
+ }
+ return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcnpgettext_expr (const char *domain,
+ const char *msgctxt, const char *msgid,
+ const char *msgid_plural, unsigned long int n,
+ int category)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ if (msg_ctxt_id != buf)
+ free (msg_ctxt_id);
+#endif
+ if (!(translation == msg_ctxt_id || translation == msgid_plural))
+ return translation;
+ }
+ return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/src/globals.h b/src/globals.h
new file mode 100644
index 0000000..238355e
--- /dev/null
+++ b/src/globals.h
@@ -0,0 +1,168 @@
+/*
+ globals.h
+
+ For TuxMath
+
+ Contains global data for configuration of math questions and for
+ general game options, as well as constants and defaults. Nothing
+ depending on SDL should be in here; put any SDL-related items into
+ tuxmath.h.
+
+ Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2006
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ Added March 2, 2006
+
+ Copyright: See COPYING file that comes with this distribution
+ (briefly - GNU GPL v2 or later)
+*/
+
+
+
+#ifndef GLOBALS_H
+#define GLOBALS_H
+
+//#include "config.h"
+#include "config.h"
+
+// Translation stuff (now works for Mac and Win too!):
+#include "gettext.h"
+#include <locale.h>
+#define _(String) gettext (String)
+#define gettext_noop(String) String
+#define N_(String) gettext_noop (String)
+
+#include <wchar.h>
+
+typedef enum { false, true } bool;
+
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
+
+/* for Tim's feedback speed control code */
+//#define FEEDBACK_DEBUG
+//#define LINEBREAK
+
+/* debug data (declared in options.c) */
+extern int debug_status;
+
+/* bitmasks for debugging options (declared in options.c) */
+extern const int debug_setup;
+extern const int debug_fileops;
+extern const int debug_loaders;
+extern const int debug_titlescreen;
+extern const int debug_menu;
+extern const int debug_menu_parser;
+extern const int debug_game;
+extern const int debug_factoroids;
+extern const int debug_lan;
+extern const int debug_mathcards;
+extern const int debug_sdl;
+extern const int debug_lessons;
+extern const int debug_highscore;
+extern const int debug_options;
+extern const int debug_convert_utf;
+extern const int debug_multiplayer;
+extern const int debug_all;
+
+/* debug macros */
+#define DEBUGCODE(mask) if((mask) & debug_status)
+#define DEBUGMSG(mask, ...) if((mask) & debug_status){ fprintf(stderr, __VA_ARGS__); fflush(stderr); }
+
+/* Maximum length of file path: */
+#define PATH_MAX 4096
+
+/* Error code if game_options not valid: */
+#define GAME_OPTS_INVALID 9999
+
+/* Default values for game_options */
+/* They can be changed in the struct to other values at run-time */
+#define DEFAULT_PER_USER_CONFIG 1
+#define DEFAULT_USE_SOUND 1
+#define DEFAULT_MENU_SOUND 1
+#define DEFAULT_MENU_MUSIC 1
+#define DEFAULT_FULLSCREEN 1
+#define DEFAULT_LAN_MODE 0
+#define DEFAULT_USE_BKGD 1
+#define DEFAULT_HELP_MODE 0
+#define DEFAULT_DEMO_MODE 0
+#define DEFAULT_OPER_OVERRIDE 0
+#define DEFAULT_USE_KEYPAD 0
+#define DEFAULT_ALLOW_PAUSE 1
+#define DEFAULT_BONUS_SPEED_RATIO 1.5
+#define DEFAULT_BONUS_COMET_INTERVAL 10
+#define DEFAULT_SPEED 1
+#define DEFAULT_ALLOW_SPEEDUP 1
+#define DEFAULT_SPEEDUP_FACTOR 1.2
+#define DEFAULT_MAX_SPEED 10
+#define DEFAULT_SLOW_AFTER_WRONG 0
+#define DEFAULT_STARTING_COMETS 2
+#define DEFAULT_EXTRA_COMETS_PER_WAVE 2
+#define DEFAULT_MAX_COMETS 10
+#define DEFAULT_SAVE_SUMMARY 1
+#define DEFAULT_SOUND_HW_AVAILABLE 1
+#define DEFAULT_USE_IGLOOS 1
+#define DEFAULT_USE_FEEDBACK 0
+#define DEFAULT_DANGER_LEVEL 0.35
+#define DEFAULT_DANGER_LEVEL_SPEEDUP 1.1
+#define DEFAULT_DANGER_LEVEL_MAX 0.9
+#define DEFAULT_CITY_EXPL_HANDICAP 0
+#define DEFAULT_LAST_SCORE 0
+
+/* These values are hard-coded and used 'as is' by the program */
+/* (i.e. these behaviors require recompilation to change) */
+#define DEFAULT_NUM_CITIES 4 /* MUST BE AN EVEN NUMBER! */
+#define DEFAULT_MAX_CITY_COLORS 4
+
+#define MINIMUM_SPEED 0.8
+#define MAX_MAX_SPEED 20.0
+#define MIN_SPEEDUP_FACTOR 1.0
+#define MAX_SPEEDUP_FACTOR 2.0
+#define MAX_BONUS_SPEED_RATIO 3.0
+#define MIN_COMETS 1
+#define MAX_MAX_COMETS 100
+#define SCORE_COEFFICIENT 100
+
+#define DEFAULT_FONT_NAME "AndikaDesRevG.ttf"
+#define FONT_NAME_LENGTH 64
+#define DEFAULT_MENU_FONT_SIZE 18
+#define DEFAULT_HELP_FONT_SIZE 32
+
+
+#define HIGH_SCORES_SAVED 10
+#define HIGH_SCORE_NAME_LENGTH 32
+
+#define REG_RGBA 16,16,96,96
+#define SEL_RGBA 16,16,128,128
+
+#define PIXEL_BITS 32
+
+enum {
+ CADET_HIGH_SCORE,
+ SCOUT_HIGH_SCORE,
+ RANGER_HIGH_SCORE,
+ ACE_HIGH_SCORE,
+ COMMANDO_HIGH_SCORE,
+ NUM_MATH_COMMAND_LEVELS
+};
+
+enum {
+ FACTORS_HIGH_SCORE = NUM_MATH_COMMAND_LEVELS,
+ FRACTIONS_HIGH_SCORE,
+ NUM_HIGH_SCORE_LEVELS
+};
+
+
+
+#define NAME_BUF_SIZE 200
+
+/* data for 'Training Academy' lessons: */
+extern char **lesson_list_titles;
+extern char **lesson_list_filenames;
+extern int* lesson_list_goldstars;
+extern int num_lessons;
+
+#endif
diff --git a/src/highscore.c b/src/highscore.c
new file mode 100644
index 0000000..64fe2f4
--- /dev/null
+++ b/src/highscore.c
@@ -0,0 +1,1172 @@
+/*
+* C Implementation: highscore.c
+*
+* Description: Implementation of high score tables for tuxmath.
+*
+*
+* Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2007
+*
+* Copyright: See COPYING file that comes with this distribution
+* (Briefly, GNU GPL version 2 or greater).
+*/
+#include <string.h>
+
+#include "tuxmath.h"
+#include "highscore.h"
+#include "menu.h"
+#include "titlescreen.h"
+#include "fileops.h"
+#include "setup.h"
+#include "options.h"
+#include "SDL_extras.h"
+#include "convert_utf.h"
+#include "transtruct.h"
+#include "network.h"
+#include "throttle.h"
+
+
+typedef struct high_score_entry {
+ int score;
+ char name[HIGH_SCORE_NAME_LENGTH];
+} high_score_entry;
+
+
+high_score_entry high_scores[NUM_HIGH_SCORE_LEVELS][HIGH_SCORES_SAVED];
+
+/* Local function prototypes: */
+
+
+
+/* Display high scores: */
+void DisplayHighScores(int level)
+{
+ int i = 0;
+ int finished = 0;
+ Uint32 frame = 0;
+ Uint32 start = 0;
+
+ int diff_level = level;
+ int old_diff_level = -1; //So table gets refreshed first time through
+ /* Surfaces, char buffers, and rects for table: */
+ SDL_Surface* score_surfs[HIGH_SCORES_SAVED] = {NULL};
+
+ /* 10 spaces should be enough room for place and score on each line: */
+ char score_strings[HIGH_SCORES_SAVED][HIGH_SCORE_NAME_LENGTH + 10] = {{'\0'}};
+
+ SDL_Rect score_rects[HIGH_SCORES_SAVED];
+ SDL_Rect table_bg;
+
+ const int max_width = 300;
+ int score_table_y = 100;
+
+ const int title_font_size = 32;
+ const int player_font_size = 14;
+
+ while (!finished)
+ {
+ start = SDL_GetTicks();
+
+ /* Check for user events: */
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ }
+
+ /* "Left" button - go to previous page: */
+ if (inRect(prev_rect, event.button.x, event.button.y))
+ {
+ if (diff_level > CADET_HIGH_SCORE)
+ {
+ diff_level--;
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ {
+ playsound(SND_TOCK);
+ }
+ }
+ }
+
+ /* "Right" button - go to next page: */
+ if (inRect(next_rect, event.button.x, event.button.y ))
+ {
+ if (diff_level < (NUM_HIGH_SCORE_LEVELS-1))
+ {
+ diff_level++;
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ {
+ playsound(SND_TOCK);
+ }
+ }
+ }
+ break;
+ }
+
+
+ case SDL_KEYDOWN:
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ }
+ }
+ }
+
+
+ /* If needed, redraw: */
+ if (diff_level != old_diff_level)
+ {
+ DrawTitleScreen();
+ /* Draw controls: */
+ if (stop_button)
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+ /* Draw regular or grayed-out left arrow: */
+ if (diff_level == CADET_HIGH_SCORE)
+ {
+ if (prev_gray)
+ SDL_BlitSurface(prev_gray, NULL, screen, &prev_rect);
+ }
+ else
+ {
+ if (prev_arrow)
+ SDL_BlitSurface(prev_arrow, NULL, screen, &prev_rect);
+ }
+ /* Draw regular or grayed-out right arrow: */
+ if (diff_level == NUM_HIGH_SCORE_LEVELS - 1)
+ {
+ if (next_gray)
+ SDL_BlitSurface(next_gray, NULL, screen, &next_rect);
+ }
+ else
+ {
+ if (next_arrow)
+ SDL_BlitSurface(next_arrow, NULL, screen, &next_rect);
+ }
+
+ /* Draw background shading for table: */
+ table_bg.x = (screen->w)/2 - (max_width + 20)/2 + 50; //don't draw over Tux
+ table_bg.y = 5;
+ table_bg.w = max_width + 20;
+ table_bg.h = screen->h - 10 - images[IMG_RIGHT]->h;
+ DrawButton(&table_bg, 25, SEL_RGBA);
+
+ /* Draw difficulty level heading: */
+ {
+ SDL_Surface* srfc = NULL;
+ SDL_Rect text_rect, button_rect;
+
+ srfc = BlackOutline(_("Hall Of Fame"), title_font_size, &yellow);
+ if (srfc)
+ {
+ button_rect.x = text_rect.x = (screen->w)/2 - (srfc->w)/2 + 50;
+ button_rect.y = text_rect.y = 10;
+ button_rect.w = text_rect.w = srfc->w;
+ button_rect.h = text_rect.h = srfc->h;
+ /* add margin to button and draw: */
+ button_rect.x -= 10;
+ button_rect.w += 20;
+ DrawButton(&button_rect, 15, 0, 0, 32, 192);
+ /* Now blit text and free surface: */
+ SDL_BlitSurface(srfc, NULL, screen, &text_rect);
+ SDL_FreeSurface(srfc);
+ srfc = NULL;
+ }
+
+ switch (diff_level)
+ {
+ case CADET_HIGH_SCORE:
+ srfc = BlackOutline(_("Space Cadet"), title_font_size, &white);
+ break;
+ case SCOUT_HIGH_SCORE:
+ srfc = BlackOutline(_("Scout"), title_font_size, &white);
+ break;
+ case RANGER_HIGH_SCORE:
+ srfc = BlackOutline(_("Ranger"), title_font_size, &white);
+ break;
+ case ACE_HIGH_SCORE:
+ srfc = BlackOutline(_("Ace"), title_font_size, &white);
+ break;
+ case COMMANDO_HIGH_SCORE:
+ srfc = BlackOutline(_("Commando"), title_font_size, &white);
+ break;
+ case FACTORS_HIGH_SCORE:
+ srfc = BlackOutline(_("Factors"), title_font_size, &white);
+ break;
+ case FRACTIONS_HIGH_SCORE:
+ srfc = BlackOutline(_("Fractions"), title_font_size, &white);
+ break;
+ default:
+ srfc = BlackOutline(_("Space Cadet"), title_font_size, &white);
+ }
+
+ if (srfc)
+ {
+ text_rect.x = (screen->w)/2 - (srfc->w)/2 + 50;
+ text_rect.y += text_rect.h; /* go to bottom of first line */
+ text_rect.w = srfc->w;
+ text_rect.h = srfc->h;
+ SDL_BlitSurface(srfc, NULL, screen, &text_rect);
+ SDL_FreeSurface(srfc);
+ srfc = NULL;
+ /* note where score table will start: */
+ score_table_y = text_rect.y + text_rect.h;
+ }
+ }
+
+
+ /* Generate and draw desired table: */
+
+ for (i = 0; i < HIGH_SCORES_SAVED; i++)
+ {
+ /* Get data for entries: */
+ sprintf(score_strings[i],
+ "%d. %d %s",
+ i + 1, /* Add one to get common-language place number */
+ HS_Score(diff_level, i),
+ HS_Name(diff_level, i));
+
+ /* Clear out old surfaces and update: */
+ if (score_surfs[i]) /* this should not happen! */
+ SDL_FreeSurface(score_surfs[i]);
+ if (HS_Score(diff_level, i) == Opts_LastScore() && frame % 5 < 2)
+ score_surfs[i] = BlackOutline(N_(score_strings[i]), player_font_size, &yellow);
+ else
+ score_surfs[i] = BlackOutline(N_(score_strings[i]), player_font_size, &white);
+
+ /* Get out if BlackOutline() fails: */
+ if (!score_surfs[i])
+ continue;
+ /* Set up entries in vertical column: */
+ if (0 == i)
+ score_rects[i].y = score_table_y;
+ else
+ score_rects[i].y = score_rects[i - 1].y + score_rects[i - 1].h;
+
+ score_rects[i].x = (screen->w)/2 - max_width/2 + 50;
+ score_rects[i].h = score_surfs[i]->h;
+ score_rects[i].w = max_width;
+
+ SDL_BlitSurface(score_surfs[i], NULL, screen, &score_rects[i]);
+ SDL_FreeSurface(score_surfs[i]);
+ score_surfs[i] = NULL;
+ }
+ /* Update screen: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+ old_diff_level = diff_level;
+ }
+
+ HandleTitleScreenAnimations();
+
+ /* Wait so we keep frame rate constant: */
+ while ((SDL_GetTicks() - start) < 33)
+ {
+ SDL_Delay(20);
+ }
+ frame++;
+ } // End of while (!finished) loop
+}
+
+
+/* Display screen to allow player to enter name for high score table: */
+/* The pl_name argument *must* point to a validly allocated string array */
+/* at least three times HIGH_SCORE_NAME_LENGTH because UTF-8 is a */
+/* multibyte encoding. */
+void HighScoreNameEntry(char* pl_name)
+{
+ NameEntry(pl_name, _("You Are In The Hall of Fame!"), _("Enter Your Name:"));
+}
+
+void NameEntry(char* pl_name, const char* heading, const char* sub)
+{
+ char UTF8_buf[HIGH_SCORE_NAME_LENGTH * 3] = {'\0'};
+
+ SDL_Rect loc;
+ SDL_Rect redraw_rect;
+
+ int redraw = 0;
+ int first_draw = 1;
+ int finished = 0;
+ Uint32 frame = 0;
+ Uint32 start = 0;
+ wchar_t wchar_buf[HIGH_SCORE_NAME_LENGTH + 1] = {'\0'};
+ const int NAME_FONT_SIZE = 32;
+ const int BG_Y = 100;
+ const int BG_WIDTH = 400;
+ const int BG_HEIGHT = 200;
+
+ if (!pl_name)
+ return;
+
+ /* We need to get Unicode vals from SDL keysyms */
+ SDL_EnableUNICODE(SDL_ENABLE);
+
+ DEBUGMSG(debug_highscore, "Enter HighScoreNameEntry()\n" );
+
+ DrawTitleScreen();
+
+ /* Red "Stop" circle in upper right corner to go back to main menu: */
+ if (stop_button)
+ {
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+ }
+
+ /* Draw translucent background for text: */
+ {
+ SDL_Rect bg_rect;
+ bg_rect.x = (screen->w)/2 - BG_WIDTH/2;
+ bg_rect.y = BG_Y;
+ bg_rect.w = BG_WIDTH;
+ bg_rect.h = BG_HEIGHT;
+ DrawButton(&bg_rect, 15, REG_RGBA);
+
+ bg_rect.x += 10;
+ bg_rect.y += 10;
+ bg_rect.w -= 20;
+ bg_rect.h = 60;
+ DrawButton(&bg_rect, 10, SEL_RGBA);
+ }
+
+ /* Draw heading: */
+ {
+ SDL_Surface* s = BlackOutline(_(heading),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 110;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+
+ s = BlackOutline(_(sub),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 140;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+ while (!finished)
+ {
+ start = SDL_GetTicks();
+
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ }
+ case SDL_KEYDOWN:
+ {
+ DEBUGMSG(debug_highscore, "Before keypress, string is %S\tlength = %d\n",
+ wchar_buf, (int)wcslen(wchar_buf));
+ switch (event.key.keysym.sym)
+ {
+ case SDLK_ESCAPE:
+ case SDLK_RETURN:
+ case SDLK_KP_ENTER:
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ case SDLK_BACKSPACE:
+ {
+ if (wcslen(wchar_buf) > 0)
+ wchar_buf[(int)wcslen(wchar_buf) - 1] = '\0';
+ redraw = 1;
+ break;
+ }
+
+ /* For any other keys, if the key has a Unicode value, */
+ /* we add it to our string: */
+ default:
+ {
+ if ((event.key.keysym.unicode > 0)
+ && (wcslen(wchar_buf) < HIGH_SCORE_NAME_LENGTH))
+ {
+ wchar_buf[(int)wcslen(wchar_buf)] = event.key.keysym.unicode;
+ redraw = 1;
+ }
+ }
+ } /* end 'switch (event.key.keysym.sym)' */
+
+ DEBUGMSG(debug_highscore, "After keypress, string is %S\tlength = %d\n",
+ wchar_buf, (int)wcslen(wchar_buf));
+ /* Now draw name, if needed: */
+ if (redraw)
+ {
+ SDL_Surface* s = NULL;
+ redraw = 0;
+
+ /* Convert text to UTF-8 so BlackOutline() can handle it: */
+ // wcstombs((char*) UTF8_buf, wchar_buf, HIGH_SCORE_NAME_LENGTH * 3);
+ ConvertToUTF8(wchar_buf, UTF8_buf, HIGH_SCORE_NAME_LENGTH * 3);
+ /* Redraw background and shading in area where we drew text last time: */
+ if (!first_draw)
+ {
+ SDL_BlitSurface(current_bkg(), &redraw_rect, screen, &redraw_rect);
+ DrawButton(&redraw_rect, 0, REG_RGBA);
+ SDL_UpdateRect(screen,
+ redraw_rect.x,
+ redraw_rect.y,
+ redraw_rect.w,
+ redraw_rect.h);
+ }
+
+ s = BlackOutline(UTF8_buf, NAME_FONT_SIZE, &yellow);
+ if (s)
+ {
+ /* set up loc and blit: */
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 200;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+
+ /* Remember where we drew so we can update background next time through: */
+ /* (for some reason we need to update a wider area to get clean image) */
+ redraw_rect.x = loc.x - 20;
+ redraw_rect.y = loc.y - 10;
+ redraw_rect.h = s->h + 20;
+ redraw_rect.w = s->w + 40;
+ first_draw = 0;
+
+ SDL_UpdateRect(screen,
+ redraw_rect.x,
+ redraw_rect.y,
+ redraw_rect.w,
+ redraw_rect.h);
+ SDL_FreeSurface(s);
+ s = NULL;
+ }
+ }
+ }
+ }
+ }
+
+ HandleTitleScreenAnimations();
+
+ /* Wait so we keep frame rate constant: */
+ while ((SDL_GetTicks() - start) < 33)
+ {
+ SDL_Delay(20);
+ }
+ frame++;
+ } // End of while (!finished) loop
+
+ /* Turn off SDL Unicode lookup (because has some overhead): */
+ SDL_EnableUNICODE(SDL_DISABLE);
+
+ /* Now copy name into location pointed to by arg: */
+ strncpy(pl_name, UTF8_buf, HIGH_SCORE_NAME_LENGTH * 3);
+}
+
+
+
+
+/* Zero-out the array before use: */
+void initialize_scores(void)
+{
+ int i, j;
+ for (i = 0; i < NUM_HIGH_SCORE_LEVELS; i++)
+ {
+ for (j = 0; j < HIGH_SCORES_SAVED; j++)
+ {
+ high_scores[i][j].score = 0;
+ strcpy(high_scores[i][j].name, "");
+ }
+ }
+}
+
+/* Test to see where a new score ranks on the list. */
+/* The return value is the index value - add one to get */
+/* the common-language place on the list. */
+int check_score_place(int diff_level, int new_score)
+{
+ int i = 0;
+
+ /* Make sure diff_level is valid: */
+ if (diff_level < 0
+ || diff_level >= NUM_HIGH_SCORE_LEVELS)
+ {
+ fprintf(stderr, "In insert_score(), diff_level invalid!\n");
+ return 0;
+ }
+
+ /* Find correct place in list: */
+ for (i = 0; i < HIGH_SCORES_SAVED; i++)
+ {
+ if (new_score > high_scores[diff_level][i].score)
+ break;
+ }
+
+ return i; /* So if we return HIGH_SCORES_SAVED, the score did not */
+ /* make the list. */
+}
+
+/* Put a new high score entry into the table for the corresponding */
+/* difficulty level - returns 1 if successful. */
+int insert_score(char* playername, int diff_level, int new_score)
+{
+ int i = 0;
+ int insert_place;
+
+ insert_place = check_score_place(diff_level, new_score);
+
+ if (HIGH_SCORES_SAVED == insert_place) /* Score didn't make the top 10 */
+ {
+ return 0;
+ }
+
+ /* Move lower entries down: */
+ for (i = HIGH_SCORES_SAVED - 1; i > insert_place; i--)
+ {
+ high_scores[diff_level][i].score =
+ high_scores[diff_level][i - 1].score;
+ strncpy(high_scores[diff_level][i].name,
+ high_scores[diff_level][i - 1].name,
+ HIGH_SCORE_NAME_LENGTH);
+ }
+
+ /* Now put in new entry: */
+ high_scores[diff_level][insert_place].score = new_score;
+ strncpy(high_scores[diff_level][insert_place].name,
+ playername,
+ HIGH_SCORE_NAME_LENGTH);
+ return 1;
+}
+
+
+void print_high_scores(FILE* fp)
+{
+ int i, j;
+
+ fprintf(fp, "\nHigh Scores:\n");
+
+ for (i = 0; i < NUM_HIGH_SCORE_LEVELS; i++)
+ {
+ switch(i)
+ {
+ case CADET_HIGH_SCORE:
+ {
+ fprintf(fp, "\nSpace Cadet:\n");
+ break;
+ }
+ case SCOUT_HIGH_SCORE:
+ {
+ fprintf(fp, "\nScout:\n");
+ break;
+ }
+ case RANGER_HIGH_SCORE:
+ {
+ fprintf(fp, "\nRanger:\n");
+ break;
+ }
+ case ACE_HIGH_SCORE:
+ {
+ fprintf(fp, "\nAce:\n");
+ break;
+ }
+ case COMMANDO_HIGH_SCORE:
+ {
+ fprintf(fp, "\nCommando:\n");
+ break;
+ }
+ case FACTORS_HIGH_SCORE:
+ {
+ fprintf(fp, "\nFactors:\n");
+ break;
+ }
+ case FRACTIONS_HIGH_SCORE:
+ {
+ fprintf(fp, "\nFractions:\n");
+ break;
+ }
+ }
+
+ for (j = 0; j < HIGH_SCORES_SAVED; j++)
+ {
+ fprintf(fp, "%d.\t%s\t%d\n",
+ j + 1, //Convert to common-language ordinals
+ high_scores[i][j].name,
+ high_scores[i][j].score);
+ }
+ }
+}
+
+
+int read_high_scores_fp(FILE* fp)
+{
+ char buf[PATH_MAX];
+ char* token;
+ const char delimiters[] = "\t";
+
+ char* name_read;
+ int score_read;
+ int diff_level;
+
+ DEBUGMSG(debug_highscore, "Entering read_high_scores_fp()\n");
+
+ /* get out if file pointer invalid: */
+ if(!fp)
+ {
+ fprintf(stderr, "In read_high_scores_fp(), file pointer invalid!\n");
+ return 0;
+ }
+
+ /* make sure we start at beginning: */
+ rewind(fp);
+
+ /* read in a line at a time: */
+ while (fgets (buf, PATH_MAX, fp))
+ {
+ /* Ignore comment lines: */
+ if ((buf[0] == ';') || (buf[0] == '#'))
+ {
+ continue;
+ }
+ /* Split up line with strtok()to get needed values, */
+ /* then call insert_score() for each line. */
+ token = strtok(buf, delimiters);
+ if (!token)
+ continue;
+ diff_level = atoi(token);
+ if (diff_level >= NUM_HIGH_SCORE_LEVELS)
+ continue;
+
+ token = strtok(NULL, delimiters);
+ if (!token)
+ continue;
+ score_read = atoi(token);
+ /* Note that name can contain spaces - \t is only delimiter: */
+ name_read = strtok(NULL, delimiters);
+ /* Now insert entry: */
+ insert_score(name_read, diff_level, score_read);
+ }
+ return 1;
+}
+
+
+/* Return the score associated with a table entry: */
+/* Note: the place is given as the array index, i.e. */
+/* 0 for the top of the list. */
+int HS_Score(int diff_level, int place)
+{
+ /* Make sure diff_level is valid: */
+ if (diff_level < 0
+ || diff_level >= NUM_HIGH_SCORE_LEVELS)
+ {
+ fprintf(stderr, "In HS_Score(), diff_level = %d, invalid!\n", diff_level);
+ return -1;
+ }
+
+ /* Make sure place is valid: */
+ if (place < 0
+ || place >= HIGH_SCORES_SAVED)
+ {
+ fprintf(stderr, "In HS_Score(), place invalid!\n");
+ return -1;
+ }
+
+ return high_scores[diff_level][place].score;
+}
+
+
+/* Return (pointer to) the name associated with a table entry: */
+char* HS_Name(int diff_level, int place)
+{
+ /* Make sure diff_level is valid: */
+ if (diff_level < 0
+ || diff_level >= NUM_HIGH_SCORE_LEVELS)
+ {
+ fprintf(stderr, "In HS_Score(), diff_level invalid!\n");
+ return NULL;
+ }
+
+ /* Make sure place is valid: */
+ if (place < 0
+ || place >= HIGH_SCORES_SAVED)
+ {
+ fprintf(stderr, "In HS_Score(), place invalid!\n");
+ return NULL;
+ }
+
+ return high_scores[diff_level][place].name;
+}
+
+
+int Ready(const char* heading)
+{
+ SDL_Rect loc;
+ SDL_Rect okRect;
+ int finished = 0;
+ Uint32 frame = 0;
+ Uint32 timer = 0;
+ const int BG_Y = 100;
+ const int BG_WIDTH = 400;
+ const int BG_HEIGHT = 200;
+
+ DEBUGMSG(debug_highscore, "Enter Ready()\n" );
+
+ DrawTitleScreen();
+
+ /* Draw translucent background for text: */
+ {
+ SDL_Rect bg_rect;
+ bg_rect.x = (screen->w)/2 - BG_WIDTH/2;
+ bg_rect.y = BG_Y;
+ bg_rect.w = BG_WIDTH;
+ bg_rect.h = BG_HEIGHT;
+ DrawButton(&bg_rect, 15, REG_RGBA);
+
+ bg_rect.x += 10;
+ bg_rect.y += 10;
+ bg_rect.w -= 20;
+ bg_rect.h = 60;
+ DrawButton(&bg_rect, 10, SEL_RGBA);
+ }
+
+ /* Draw heading: */
+ {
+ SDL_Surface* s = BlackOutline(_(heading),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 110;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+ }
+
+ /* Red "Stop" circle in upper right corner to go back to main menu: */
+ if (stop_button)
+ {
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+ }
+
+ /* "Next_arrow" to indicate ready to proceed: */
+ if (next_arrow)
+ {
+ okRect.x = (screen->w)/2;
+ okRect.y = 240;
+ SDL_BlitSurface(next_arrow, NULL, screen, &okRect);
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+ while (!finished)
+ {
+ /* Handle user events: */
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ finished = -1;
+ playsound(SND_TOCK);
+ break;
+ }
+ else if (inRect(okRect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+
+ }
+ case SDL_KEYDOWN:
+ {
+ switch (event.key.keysym.sym)
+ {
+ case SDLK_ESCAPE:
+ case SDLK_BACKSPACE:
+ {
+ finished = -2;
+ playsound(SND_TOCK);
+ break;
+ }
+ case SDLK_RETURN:
+ case SDLK_KP_ENTER:
+ case SDLK_SPACE:
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ default:
+ {
+ //Do nothing - event. add support for toggle fullscreen, etc.
+ }
+ }
+ }
+ }
+ }
+
+ HandleTitleScreenAnimations();
+ Throttle(20, &timer);
+ frame++;
+ } // End of while (!finished) loop
+
+ DEBUGMSG(debug_highscore, "Leave Ready()\n" );
+
+ /* 1 means we start game, -1 means we go back to menu */
+ return finished;
+}
+
+
+int Standby(const char* heading, const char* sub)
+{
+#ifndef HAVE_LIBSDL_NET
+ return 0;
+#else
+ SDL_Rect loc;
+ int finished = 0;
+ Uint32 frame = 0;
+ Uint32 timer = 0;
+ const int BG_Y = 100;
+ const int BG_WIDTH = 400;
+ const int BG_HEIGHT = 200;
+
+ char buf[NET_BUF_LEN];
+
+ DEBUGMSG(debug_highscore, "Enter Standby()\n" );
+
+ DrawTitleScreen();
+
+ /* Draw translucent background for text: */
+ {
+ SDL_Rect bg_rect;
+ bg_rect.x = (screen->w)/2 - BG_WIDTH/2;
+ bg_rect.y = BG_Y;
+ bg_rect.w = BG_WIDTH;
+ bg_rect.h = BG_HEIGHT;
+ DrawButton(&bg_rect, 15, REG_RGBA);
+
+ bg_rect.x += 10;
+ bg_rect.y += 10;
+ bg_rect.w -= 20;
+ bg_rect.h = 60;
+ DrawButton(&bg_rect, 10, SEL_RGBA);
+ }
+
+ /* Draw heading: */
+ {
+ SDL_Surface* s = BlackOutline(_(heading),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 110;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+
+ s = BlackOutline(_(sub),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 140;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+ }
+
+ /* Red "Stop" circle in upper right corner to go back to main menu: */
+ if (stop_button)
+ {
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+
+ while (!finished)
+ {
+ /* Handle user events: */
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ }
+ case SDL_KEYDOWN:
+ {
+ switch (event.key.keysym.sym)
+ {
+ case SDLK_ESCAPE:
+ case SDLK_BACKSPACE:
+ {
+ finished = -2;
+ playsound(SND_TOCK);
+ break;
+ }
+
+ default:
+ {
+ //Do nothing - event. add support for toggle fullscreen, etc.
+ }
+ }
+ }
+ }
+ }
+
+ /* Handle server messages: */
+ while(!check_messages(buf))
+ {
+ if(strncmp(buf,"GO_TO_GAME", strlen("GO_TO_GAME")) == 0)
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ else if(strncmp(buf, "GAME_IN_PROGRESS", strlen("GAME_IN_PROGRESS")) == 0)
+ {
+ finished = -1;
+ playsound(SND_TOCK);
+ break;
+ }
+ else
+ {
+ DEBUGMSG(debug_highscore, "Unrecognized message from server: %s\n", buf);
+ continue;
+ }
+ }
+
+ HandleTitleScreenAnimations();
+ Throttle(20, &timer);
+ frame++;
+ } // End of while (!finished) loop
+
+ DEBUGMSG(debug_highscore, "Leave Standby()\n" );
+
+ /* 1 means we start game, -1 means we go back to menu */
+ return finished;
+#endif
+}
+
+
+
+int detecting_servers(const char* heading, const char* sub)
+{
+#ifndef HAVE_LIBSDL_NET
+ return 0;
+#else
+ SDL_Rect loc;
+ SDL_Rect TuxRect,
+ stopRect;
+
+ int finished = 0;
+ int tux_frame = 0;
+ Uint32 frame = 0;
+ Uint32 start = 0;
+ Uint32 timer = 0;
+ int servers_found = 0;
+ sprite* Tux = NULL;
+
+ DEBUGMSG(debug_lan, "\nEnter detecting_servers()\n");
+
+ /* FIXME it takes several seconds to load this sprite on a */
+ /* Dell Mini 9 netbook, probably longer on many school */
+ /* machines. Perhaps we should load this ahead of time... */
+ Tux = LoadSprite("tux/bigtux", IMG_ALPHA);
+
+ /* We need to get Unicode vals from SDL keysyms */
+ SDL_EnableUNICODE(SDL_ENABLE);
+
+ /* Draw background: */
+ if (current_bkg())
+ SDL_BlitSurface(current_bkg(), NULL, screen, NULL);
+
+ /* Red "Stop" circle in upper right corner to go back to main menu: */
+ if (images[IMG_STOP])
+ {
+ stopRect.w = images[IMG_STOP]->w;
+ stopRect.h = images[IMG_STOP]->h;
+ stopRect.x = screen->w - images[IMG_STOP]->w;
+ stopRect.y = 0;
+ SDL_BlitSurface(images[IMG_STOP], NULL, screen, &stopRect);
+ }
+
+ if (Tux && Tux->frame[0]) /* make sure sprite has at least one frame */
+ {
+ TuxRect.w = Tux->frame[0]->w;
+ TuxRect.h = Tux->frame[0]->h;
+ TuxRect.x = 0;
+ TuxRect.y = screen->h - Tux->frame[0]->h;
+ }
+
+ /* Draw heading: */
+ {
+ SDL_Surface* s = BlackOutline(_(heading),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 110;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+
+ s = BlackOutline(_(sub),
+ DEFAULT_MENU_FONT_SIZE, &white);
+ if (s)
+ {
+ loc.x = (screen->w/2) - (s->w/2);
+ loc.y = 140;
+ SDL_BlitSurface(s, NULL, screen, &loc);
+ SDL_FreeSurface(s);
+ }
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+ while (!finished)
+ {
+ start = SDL_GetTicks();
+
+ //Scan local network to find running server:
+ servers_found = LAN_DetectServers();
+ if(servers_found < 1)
+ {
+ printf("No server could be found - returning.\n");
+ /* Turn off SDL Unicode lookup (because has some overhead): */
+ SDL_EnableUNICODE(SDL_DISABLE);
+ FreeSprite(Tux);
+ return 0;
+ }
+ else if(servers_found == 1) //One server - connect without player intervention
+ {
+ printf("Single server found - connecting automatically...");
+
+ if(!LAN_AutoSetup(0)) //i.e.first (and only) entry in list
+ {
+ printf("LAN_AutoSetup() failed - returning.\n");
+ /* Turn off SDL Unicode lookup (because has some overhead): */
+ SDL_EnableUNICODE(SDL_DISABLE);
+ FreeSprite(Tux);
+ return 0;
+ }
+
+
+ finished = 1;
+ break; //So we quit scanning as soon as we connect
+ printf("connected\n");
+ } else if (servers_found > 1)
+ {
+ //TODO display list of servers for player to choose from:
+ }
+
+
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stopRect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ }
+ }
+ }
+
+ /* --- make tux blink --- */
+ switch (frame % TUX6)
+ {
+ case 0: tux_frame = 1; break;
+ case TUX1: tux_frame = 2; break;
+ case TUX2: tux_frame = 3; break;
+ case TUX3: tux_frame = 4; break;
+ case TUX4: tux_frame = 3; break;
+ case TUX5: tux_frame = 2; break;
+ default: tux_frame = 0;
+ }
+
+ if (Tux && tux_frame)
+ {
+ SDL_BlitSurface(Tux->frame[tux_frame - 1], NULL, screen, &TuxRect);
+ SDL_UpdateRect(screen, TuxRect.x, TuxRect.y, TuxRect.w, TuxRect.h);
+ }
+
+ /* Wait so we keep frame rate constant: */
+ Throttle(20, &timer);
+ frame++;
+ } // End of while (!finished) loop
+
+
+ /* Turn off SDL Unicode lookup (because has some overhead): */
+ SDL_EnableUNICODE(SDL_DISABLE);
+ FreeSprite(Tux);
+
+ return 1;
+
+#endif
+}
+
diff --git a/src/highscore.h b/src/highscore.h
new file mode 100644
index 0000000..c07ec12
--- /dev/null
+++ b/src/highscore.h
@@ -0,0 +1,38 @@
+//
+// C Interface: highscore
+//
+// Description:
+//
+//
+// Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+// (Briefly, GNU GPL version 2 or greater).
+//
+
+#ifndef HIGHSCORE_H
+#define HIGHSCORE_H
+
+
+#include "globals.h"
+
+
+void DisplayHighScores(int level);
+void HighScoreNameEntry(char* pl_name);
+void NameEntry(char* pl_name, const char* heading, const char* sub);
+/* FIXME the next three don't have anything to do with high scores */
+/* and don't really belong here: */
+int Standby(const char* heading, const char* sub);
+int detecting_servers(const char* heading, const char* sub);
+int Ready(const char* heading);
+
+int check_score_place(int diff_level, int new_score);
+int insert_score(char* playername, int diff_level, int new_score);
+void initialize_scores(void);
+void print_high_scores(FILE* fp);
+int read_high_scores_fp(FILE* fp);
+/* Note: for writing, use append_high_score in fileops.c */
+
+int HS_Score(int diff_level, int place);
+char* HS_Name(int diff_level, int place);
+#endif
diff --git a/src/lessons.c b/src/lessons.c
new file mode 100644
index 0000000..12359ae
--- /dev/null
+++ b/src/lessons.c
@@ -0,0 +1,139 @@
+/*
+* C Implementation: lessons
+*
+* Description:
+*
+*
+* Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2007
+*
+* Copyright: See COPYING file that comes with this distribution
+*
+*/
+#include <stdio.h>
+//for strtok()
+#include <string.h>
+#include "lessons.h"
+//for basename(), if available
+#ifdef HAVE_LIBGEN_H
+#include <libgen.h>
+#endif
+
+// extern unsigned char **lesson_list_titles;
+// extern unsigned char **lesson_list_filenames;
+int* lesson_list_goldstars = NULL;
+// extern int num_lessons;
+
+/* local function prototypes: */
+static int filename_comp(const char* s1, const char* s2);
+
+/* Reads the file pointed to by the arg and sets */
+/* lesson_list_goldstars* accordingly: */
+int read_goldstars_fp(FILE* fp)
+{
+ char buf[PATH_MAX];
+ char* token;
+ const char delimiters[] = "\t\n\r"; /* this will keep newline chars out of string */
+ int i;
+
+ DEBUGMSG(debug_lessons, "Entering read_goldstars_fp()\n");
+
+ /* get out if file pointer invalid: */
+ if(!fp)
+ {
+ fprintf(stderr, "In read_goldstars_fp(), file pointer invalid!\n");
+ return 0;
+ }
+
+ if (num_lessons <= 0)
+ {
+ perror("no lessons - returning");
+ num_lessons = 0;
+ return 0;
+ }
+
+
+
+ /* make sure we start at beginning: */
+ rewind(fp);
+
+ /* read in a line at a time: */
+ while (fgets (buf, PATH_MAX, fp))
+ {
+ /* Ignore comment lines: */
+ if ((buf[0] == ';') || (buf[0] == '#'))
+ {
+ continue;
+ }
+
+ /* Split up line with strtok()to get needed values - */
+ /* for now, each line just contains a lesson file name, */
+ /* but eventually there may be more fields (e.g date, % correct) */
+ token = strtok(buf, delimiters);
+ if (!token)
+ continue;
+
+ /* Now set "goldstar" to 1 if we find a matching lesson: */
+ for (i = 0; i < num_lessons; i++)
+ {
+ /* compare basenames only, not entire path (see below): */
+ if (0 == filename_comp(token, lesson_list_filenames[i]))
+ {
+ lesson_list_goldstars[i] = 1;
+ break; //should not have to worry about duplicates
+ }
+ }
+ }
+ return 1;
+}
+
+
+/* Write lessons gold star list to the provided FILE* in format */
+/* compatible with read_goldstars_fp () above. */
+
+void write_goldstars_fp(FILE* fp)
+{
+ int i = 0;
+
+ DEBUGMSG(debug_lessons, "Entering write_goldstars_fp()\n");
+
+ /* get out if file pointer invalid: */
+ if(!fp)
+ {
+ fprintf(stderr, "In write_goldstars_fp(), file pointer invalid!\n");
+ return;
+ }
+
+ /* make sure we start at beginning: */
+ rewind(fp);
+
+ for (i = 0; i < num_lessons; i++)
+ {
+ DEBUGMSG(debug_lessons, "i = %d\nfilename = %s\ngoldstar = %d\n",
+ i, lesson_list_filenames[i],
+ lesson_list_goldstars[i]);
+
+ if(lesson_list_goldstars[i] == 1)
+ {
+ fprintf(fp, "%s\n", lesson_list_filenames[i]);
+ }
+ }
+ return;
+}
+
+
+/* Perform a strcasecmp() on two path strings, stripping away all the */
+/* dirs in the path and just comparing the filenames themselves: */
+/* FIXME: basename() may not be available on all platforms. */
+/* If not available, just compare the full paths. Consider including */
+/* our own implementation at some point. Note that the docs say */
+/* basename() takes a const char*, but the actual header is char*, */
+/* hence the casts to reassure the compiler. */
+static int filename_comp(const char* s1, const char* s2)
+{
+#ifdef HAVE_BASENAME
+ return strcasecmp(basename((char*)s1), basename((char*)s2));
+#else
+ return strcasecmp(s1, s2);
+#endif
+}
+
diff --git a/src/lessons.h b/src/lessons.h
new file mode 100644
index 0000000..dc9473b
--- /dev/null
+++ b/src/lessons.h
@@ -0,0 +1,21 @@
+//
+// C Interface: lessons
+//
+// Description: Code for reading and parsing the lessons directory,
+// as well as keeping track of the player's progress
+//
+//
+// Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+// (Briefly, GNU GPL version 2 or greater).
+//
+#ifndef LESSONS_H
+#define LESSONS_H
+
+#include "globals.h"
+
+int read_goldstars_fp(FILE* fp);
+void write_goldstars_fp(FILE* fp);
+
+#endif
diff --git a/src/linewrap.c b/src/linewrap.c
new file mode 100644
index 0000000..2e75dbe
--- /dev/null
+++ b/src/linewrap.c
@@ -0,0 +1,131 @@
+/* Internationalized line wrapping for TuxMath.
+
+ - file: linewrap.c
+ - description: convenience API for libgettextpo's linebreak routine
+ ------------------
+ begin : Feb 3 2009
+ copyright : (C) 2009 by Timothy E. Holy
+ email : tuxmath-devel at lists.sourceforge.net
+
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+//#include <locale.h>
+#include "gettext.h"
+
+#include "../linebreak/linebreak.h"
+#include "linewrap.h"
+
+static char wrapped_lines0[MAX_LINES][MAX_LINEWIDTH]; // for internal storage
+char wrapped_lines[MAX_LINES][MAX_LINEWIDTH]; // publicly available!
+
+
+
+int linewrap(const char *input, char str_list[MAX_LINES][MAX_LINEWIDTH],
+ int width, int max_lines, int max_width)
+{
+ int length = strlen (input);
+// char *breaks = malloc (length);
+ char breaks[MAX_LINES * MAX_LINEWIDTH];
+
+ int i;
+ int listIndex;
+ int strIndex;
+
+ if (length > MAX_LINES * MAX_LINEWIDTH)
+ {
+ fprintf(stderr, "warning: in linewrap(), length of input %d exceeds maximum %d, truncating\n",
+ length, MAX_LINES * MAX_LINEWIDTH);
+ length = MAX_LINES * MAX_LINEWIDTH;
+ }
+
+ // Generate the positions with line breaks
+ //mbs_width_linebreaks (input, length, width, 0, 0, NULL, locale_charset (), breaks);
+ mbs_width_linebreaks (input, length, width, 0, 0, NULL, "UTF-8", breaks);
+
+ // Load characters into the string list. "breaks" holds "true"
+ // values at the first character of the next line, not at the space
+ // between words.
+ listIndex = 0;
+ for (strIndex = 0, i = 0; i < length; strIndex++, i++)
+ {
+ if (breaks[i] == UC_BREAK_POSSIBLE
+ || breaks[i] == UC_BREAK_MANDATORY)
+ {
+ str_list[listIndex][strIndex] = '\0'; // terminate the previous string
+ strIndex = 0; // start the next line
+ listIndex++;
+ if (listIndex >= max_lines)
+ break;
+ }
+ if (strIndex < max_width)
+ str_list[listIndex][strIndex] = input[i];
+ }
+ str_list[listIndex][strIndex] = '\0';
+
+// free(breaks);
+
+ // Return the number of lines
+ if (listIndex < max_lines)
+ return listIndex + 1;
+ else
+ return max_lines;
+}
+
+void linewrap_list(const char input[MAX_LINES][MAX_LINEWIDTH],
+ char str_list[MAX_LINES][MAX_LINEWIDTH],
+ int width, int max_lines, int max_width)
+{
+ int inputIndex;
+ int outputIndex;
+ int intermedIndex;
+ int n_lines;
+
+ outputIndex = 0;
+ for (inputIndex = 0; strlen(input[inputIndex]) > 0 && outputIndex < max_lines-1; inputIndex++)
+ {
+ printf("inputIndex = %d, outputIndex = %d, String: %s\n",
+ inputIndex, outputIndex, input[inputIndex]);
+
+ /* Handle blank strings */
+ if (strcmp(input[inputIndex], " ") == 0)
+ {
+ strcpy(str_list[outputIndex++]," ");
+ printf("Blank (%d)\n",inputIndex);
+ continue;
+ }
+
+ /* Handle real strings */
+ printf("Not blank. Translated: %s\n",gettext(input[inputIndex]));
+ n_lines = linewrap(gettext(input[inputIndex]), wrapped_lines0, width, max_lines, max_width);
+ printf("Wrapped to %d lines.\n", n_lines);
+
+ for (intermedIndex = 0;
+ intermedIndex < n_lines && outputIndex < max_lines-1;
+ intermedIndex++, outputIndex++)
+ {
+ printf("intermedIndex %d, outputIndex %d, string %s\n",intermedIndex,outputIndex, wrapped_lines0[intermedIndex]);
+ strncpy(str_list[outputIndex], wrapped_lines0[intermedIndex], max_width);
+ }
+ }
+
+ printf("All done (outputIndex = %d)\n",outputIndex);
+
+ for (; outputIndex < max_lines; outputIndex++)
+ {
+ //printf(" blanking %d\n", outputIndex);
+ str_list[outputIndex][0] = '\0';
+ }
+ printf("All done.\n");
+}
diff --git a/src/linewrap.h b/src/linewrap.h
new file mode 100644
index 0000000..22e2b8f
--- /dev/null
+++ b/src/linewrap.h
@@ -0,0 +1,34 @@
+#ifndef LINEWRAP_H
+#define LINEWRAP_H
+
+
+/* Storage for linewrapping */
+#define MAX_LINES 128
+#define MAX_LINEWIDTH 256
+
+extern char wrapped_lines[MAX_LINES][MAX_LINEWIDTH];
+
+/* linewrap takes an input string (can be in essentially arbitrary
+ encoding) and loads it into an array of strings, each corresponding
+ to one line of output text. Arguments:
+
+ input: a null-terminated input string
+ str_list: a PRE-ALLOCATED array of character pointers. This must be
+ at least of size str_list[max_lines][max_width]
+ width: the desired number of characters per line. Note that words
+ with more characters than "width" are not hypenated, so it's
+ possible to get a line that is longer than "width."
+ max_lines and max_width: memory-safety parameters for str_list
+ (see above)
+
+ On output, linewrap returns the number of lines used to format the
+ string.
+*/
+extern int linewrap(const char* input, char str_list[MAX_LINES][MAX_LINEWIDTH], int width, int max_lines, int max_width);
+
+/* This takes a NULL-terminated array of strings and performs
+ translation and linewrapping, outputting another NULL-terminated
+ array. */
+extern void linewrap_list(const char input[MAX_LINES][MAX_LINEWIDTH], char str_list[MAX_LINES][MAX_LINEWIDTH], int width, int max_lines, int max_width);
+
+#endif
diff --git a/src/loaders.c b/src/loaders.c
new file mode 100644
index 0000000..742305f
--- /dev/null
+++ b/src/loaders.c
@@ -0,0 +1,656 @@
+/*
+ loaders.c
+
+ Functions responsible for loading multimedia.
+
+ begin : Thu May 4 2000
+ copyright : (C) 2000 by Sam Hart
+ : (C) 2003 by Jesse Andrews
+ email : tuxtype-dev at tux4kids.net
+
+ Modified for use in tuxmath by David Bruce - 2006.
+ email : <davidstuartbruce at gmail.com>
+ <tuxmath-devel at lists.sourceforge.net>
+
+ Modified to support SVG by Boleslaw Kulbabinski - 2009
+ email : <bkulbabinski at gmail.com>
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#include "loaders.h"
+#include "globals.h"
+#include "tuxmath.h"
+#include "setup.h" // for cleanup_on_error()
+#include "SDL_extras.h"
+
+#ifdef HAVE_RSVG
+#include<librsvg/rsvg.h>
+#include<librsvg/rsvg-cairo.h>
+#endif
+
+/* local functions */
+int check_file(const char* file);
+
+#ifdef HAVE_RSVG
+SDL_Surface* load_svg(const char* file_name, int width, int height, const char* layer_name);
+sprite* load_svg_sprite(const char* file_name, int width, int height);
+SDL_Surface* render_svg_from_handle(RsvgHandle* file_handle, int width, int height, const char* layer_name);
+void get_svg_dimensions(const char* file_name, int* width, int* height);
+#endif
+
+SDL_Surface* load_image(const char* file_name, int mode, int w, int h, bool proportional);
+void fit_in_rectangle(int* width, int* height, int max_width, int max_height);
+SDL_Surface* set_format(SDL_Surface* img, int mode);
+sprite* load_sprite(const char* name, int mode, int w, int h, bool proportional);
+
+
+
+/* check to see if file exists, if so return true */
+// int checkFile( const char *file ) {
+// static struct stat fileStats;
+// fileStats.st_mode = 0;
+// stat( file, &fileStats );
+// return (S_IFREG & fileStats.st_mode);
+// }
+
+
+/* Returns 1 if valid file, 2 if valid dir, 0 if neither: */
+int check_file(const char* file)
+{
+ FILE* fp = NULL;
+ DIR* dp = NULL;
+
+ if (!file)
+ {
+ DEBUGMSG(debug_loaders, "check_file(): invalid char* argument!\n");
+ return 0;
+ }
+
+ DEBUGMSG(debug_loaders, "check_file(): checking: %s\n", file);
+
+ dp = opendir(file);
+ if (dp)
+ {
+ DEBUGMSG(debug_loaders, "check_file(): Opened successfully as DIR\n");
+ closedir(dp);
+ return 2;
+ }
+
+ fp = fopen(file, "r");
+ if (fp)
+ {
+ DEBUGMSG(debug_loaders, "check_file(): Opened successfully as FILE\n");
+ fclose(fp);
+ return 1;
+ }
+
+ DEBUGMSG(debug_loaders, "check_file(): Unable to open '%s' as either FILE or DIR\n", file);
+ return 0;
+}
+
+
+#ifdef HAVE_RSVG
+
+/* Load a layer of SVG file and resize it to given dimensions.
+ If width or height is negative no resizing is applied.
+ If layer = NULL then the whole image is loaded.
+ layer_name must be preceded with a '#' symbol.
+ Return NULL on failure.
+ (partly based on TuxPaint's SVG loading function) */
+SDL_Surface* load_svg(const char* file_name, int width, int height, const char* layer_name)
+{
+ SDL_Surface* dest;
+ RsvgHandle* file_handle;
+
+ DEBUGMSG(debug_loaders, "load_svg(): loading %s\n", file_name);
+
+ rsvg_init();
+
+ file_handle = rsvg_handle_new_from_file(file_name, NULL);
+ if(NULL == file_handle)
+ {
+ DEBUGMSG(debug_loaders, "load_svg(): file %s not found\n", file_name);
+ rsvg_term();
+ return NULL;
+ }
+
+ dest = render_svg_from_handle(file_handle, width, height, layer_name);
+
+ g_object_unref(file_handle);
+ rsvg_term();
+
+ return dest;
+}
+
+sprite* load_svg_sprite(const char* file_name, int width, int height)
+{
+ RsvgHandle* file_handle;
+ sprite* new_sprite;
+ char lay_name[20];
+ int i;
+
+ DEBUGMSG(debug_loaders, "load_svg_sprite(): loading sprite from %s\n", file_name);
+
+ rsvg_init();
+
+ file_handle = rsvg_handle_new_from_file(file_name, NULL);
+ if(NULL == file_handle)
+ {
+ DEBUGMSG(debug_loaders, "load_svg_sprite(): file %s not found\n", file_name);
+ rsvg_term();
+ return NULL;
+ }
+
+ new_sprite = malloc(sizeof(sprite));
+ new_sprite->default_img = render_svg_from_handle(file_handle, width, height, "#default");
+
+ /* get number of frames from description */
+ sscanf(rsvg_handle_get_desc(file_handle), "%d", &new_sprite->num_frames);
+ DEBUGMSG(debug_loaders, "load_svg_sprite(): loading %d frames\n", new_sprite->num_frames);
+
+ for(i = 0; i < new_sprite->num_frames; i++)
+ {
+ sprintf(lay_name, "#frame%d", i);
+ new_sprite->frame[i] = render_svg_from_handle(file_handle, width, height, lay_name);
+ }
+
+ g_object_unref(file_handle);
+ rsvg_term();
+
+ return new_sprite;
+}
+
+/* render a layer of SVG file and resize it to given dimensions.
+ If width or height is negative no resizing is applied. */
+SDL_Surface* render_svg_from_handle(RsvgHandle* file_handle, int width, int height, const char* layer_name)
+{
+ RsvgDimensionData dimensions;
+ cairo_surface_t* temp_surf;
+ cairo_t* context;
+ SDL_Surface* dest;
+ float scale_x, scale_y;
+ Uint32 Rmask, Gmask, Bmask, Amask;
+
+ rsvg_handle_get_dimensions(file_handle, &dimensions);
+
+ /* set scale_x and scale_y */
+ if(width < 0 || height < 0)
+ {
+ width = dimensions.width;
+ height = dimensions.height;
+ scale_x = 1.0;
+ scale_y = 1.0;
+ }
+ else
+ {
+ scale_x = (float)width / dimensions.width;
+ scale_y = (float)height / dimensions.height;
+ }
+
+ /* set color masks */
+ Rmask = screen->format->Rmask;
+ Gmask = screen->format->Gmask;
+ Bmask = screen->format->Bmask;
+ if(screen->format->Amask == 0)
+ /* find a free byte to use for Amask */
+ Amask = ~(Rmask | Gmask | Bmask);
+ else
+ Amask = screen->format->Amask;
+
+ DEBUGMSG(debug_loaders, "render_svg_from_handle(): color masks: R=%u, G=%u, B=%u, A=%u\n",
+ Rmask, Gmask, Bmask, Amask);
+
+ dest = SDL_CreateRGBSurface(SDL_SWSURFACE | SDL_SRCALPHA,
+ width, height, screen->format->BitsPerPixel, Rmask, Gmask, Bmask, Amask);
+
+ SDL_LockSurface(dest);
+ temp_surf = cairo_image_surface_create_for_data(dest->pixels,
+ CAIRO_FORMAT_ARGB32, dest->w, dest->h, dest->pitch);
+
+ context = cairo_create(temp_surf);
+ if(cairo_status(context) != CAIRO_STATUS_SUCCESS)
+ {
+ DEBUGMSG(debug_loaders, "render_svg_from_handle(): error rendering SVG\n");
+ cairo_surface_destroy(temp_surf);
+ return NULL;
+ }
+
+ cairo_scale(context, scale_x, scale_y);
+
+ /* render appropriate layer */
+ rsvg_handle_render_cairo_sub(file_handle, context, layer_name);
+
+ SDL_UnlockSurface(dest);
+ cairo_surface_destroy(temp_surf);
+ cairo_destroy(context);
+
+ return dest;
+}
+
+void get_svg_dimensions(const char* file_name, int* width, int* height)
+{
+ RsvgHandle* file_handle;
+ RsvgDimensionData dimensions;
+
+ rsvg_init();
+
+ file_handle = rsvg_handle_new_from_file(file_name, NULL);
+ if(file_handle == NULL)
+ {
+ DEBUGMSG(debug_loaders, "get_svg_dimensions(): file %s not found\n", file_name);
+ rsvg_term();
+ return;
+ }
+
+ rsvg_handle_get_dimensions(file_handle, &dimensions);
+
+ *width = dimensions.width;
+ *height = dimensions.height;
+
+ g_object_unref(file_handle);
+ rsvg_term();
+}
+
+#endif /* HAVE_RSVG */
+
+/* Load an image without resizing it */
+SDL_Surface* LoadImage(const char* file_name, int mode)
+{
+ return LoadScaledImage(file_name, mode, -1, -1);
+}
+
+/* LoadScaledImage : Load an image and resize it to given dimensions.
+ If width or height is negative no resizing is applied.
+ The loader (load_svg() or IMG_Load()) is chosen depending on file extension,
+ If an SVG file is not found try to load its PNG equivalent
+ (unless IMG_NO_PNG_FALLBACK is set) */
+SDL_Surface* LoadScaledImage(const char* file_name, int mode, int width, int height)
+{
+ return load_image(file_name, mode, width, height, false);
+}
+
+/* LoadImageOfBoundingBox : Same as LoadScaledImage but preserve image proportions
+ and fit it into max_width x max_height rectangle.
+ Returned surface is not necessarily max_width x max_height ! */
+SDL_Surface* LoadImageOfBoundingBox(const char* file_name, int mode, int max_width, int max_height)
+{
+ return load_image(file_name, mode, max_width, max_height, true);
+}
+
+
+/* load_image : helper function used by LoadScaledImage and LoadImageOfBoundingBox */
+SDL_Surface* load_image(const char* file_name, int mode, int w, int h, bool proportional)
+{
+ SDL_Surface* loaded_pic = NULL;
+ SDL_Surface* final_pic = NULL;
+ char fn[PATH_MAX];
+ int fn_len;
+ int width = -1, height = -1;
+ bool is_svg = true;
+
+ if(NULL == file_name)
+ {
+ DEBUGMSG(debug_loaders, "load_image(): file_name is NULL, exiting.\n");
+ return NULL;
+ }
+
+ /* run loader depending on file extension */
+
+ /* add path prefix */
+ snprintf(fn, PATH_MAX, "%s/images/%s", DATA_PREFIX, file_name);
+ fn_len = strlen(fn);
+
+ if(strcmp(fn + fn_len - 4, ".svg"))
+ {
+ DEBUGMSG(debug_loaders, "load_image(): %s is not an SVG, loading using IMG_Load()\n", fn);
+ loaded_pic = IMG_Load(fn);
+ is_svg = false;
+ if (NULL == loaded_pic)
+ {
+ is_svg = true;
+ DEBUGMSG(debug_loaders, "load_image(): Trying to load SVG equivalent of %s\n", fn);
+ sprintf(strrchr(fn, '.'), ".svg");
+ }
+ }
+ if (is_svg)
+ {
+#ifdef HAVE_RSVG
+ DEBUGMSG(debug_loaders, "load_image(): trying to load %s as SVG.\n", fn);
+ if(proportional)
+ {
+ get_svg_dimensions(fn, &width, &height);
+ if(width > 0 && height > 0)
+ fit_in_rectangle(&width, &height, w, h);
+ }
+ else
+ {
+ width = w;
+ height = h;
+ }
+ loaded_pic = load_svg(fn, width, height, NULL);
+#endif
+
+ if(loaded_pic == NULL)
+ {
+#ifdef HAVE_RSVG
+ DEBUGMSG(debug_loaders, "load_image(): failed to load %s as SVG.\n", fn);
+#else
+ DEBUGMSG(debug_loaders, "load_image(): SVG support not available.\n");
+#endif
+ if(mode & IMG_NO_PNG_FALLBACK)
+ {
+ DEBUGMSG(debug_loaders, "load_image(): %s : IMG_NO_PNG_FALLBACK is set.\n", fn);
+ }
+ else
+ {
+ DEBUGMSG(debug_loaders, "load_image(): Trying to load PNG equivalent of %s\n", fn);
+ strcpy(fn + fn_len - 3, "png");
+
+ loaded_pic = IMG_Load(fn);
+ is_svg = false;
+ }
+ }
+ }
+
+ if (NULL == loaded_pic) /* Could not load image: */
+ {
+ if (mode & IMG_NOT_REQUIRED)
+ {
+ DEBUGMSG(debug_loaders, "load_image(): Warning: could not load optional graphics file %s\n", file_name);
+ return NULL; /* Allow program to continue */
+ }
+ /* If image was required, exit from program: */
+ fprintf(stderr, "load_image(): ERROR could not load required graphics file %s\n", file_name);
+ fprintf(stderr, "%s", SDL_GetError() );
+ cleanup_on_error();
+ }
+ else if(!is_svg && w > 0 && h > 0)
+ {
+ if(proportional)
+ {
+ width = loaded_pic->w;
+ height = loaded_pic->h;
+ fit_in_rectangle(&width, &height, w, h);
+ }
+ else
+ {
+ width = w;
+ height = h;
+ }
+ final_pic = zoom(loaded_pic, width, height);
+ SDL_FreeSurface(loaded_pic);
+ loaded_pic = final_pic;
+ final_pic = NULL;
+ }
+
+ final_pic = set_format(loaded_pic, mode);
+ SDL_FreeSurface(loaded_pic);
+ DEBUGMSG(debug_loaders, "Leaving load_image()\n\n");
+
+ return final_pic;
+}
+
+/* adjust width and height to fit in max_width x max_height rectangle
+ but preserve their proportion */
+void fit_in_rectangle(int* width, int* height, int max_width, int max_height)
+{
+ float scale_w, scale_h;
+
+ if(width != 0 && height != 0)
+ {
+ scale_w = (float) max_width / (*width);
+ scale_h = (float) max_height / (*height);
+ *width *= min(scale_w, scale_h);
+ *height *= min(scale_w, scale_h);
+ }
+}
+
+SDL_Surface* set_format(SDL_Surface* img, int mode)
+{
+ switch (mode & IMG_MODES)
+ {
+ case IMG_REGULAR:
+ {
+ DEBUGMSG(debug_loaders, "set_format(): handling IMG_REGULAR mode.\n");
+ return SDL_DisplayFormat(img);
+ }
+
+ case IMG_ALPHA:
+ {
+ DEBUGMSG(debug_loaders, "set_format(): handling IMG_ALPHA mode.\n");
+ return SDL_DisplayFormatAlpha(img);
+ }
+
+ case IMG_COLORKEY:
+ {
+ DEBUGMSG(debug_loaders, "set_format(): handling IMG_COLORKEY mode.\n");
+ SDL_LockSurface(img);
+ SDL_SetColorKey(img, (SDL_SRCCOLORKEY | SDL_RLEACCEL),
+ SDL_MapRGB(img->format, 255, 255, 0));
+ return SDL_DisplayFormat(img);
+ }
+
+ default:
+ {
+ DEBUGMSG(debug_loaders, "set_format(): Image mode not recognized\n");
+ }
+ }
+
+ return NULL;
+}
+
+
+/* LoadBkgd() : a wrapper for LoadImage() that optimizes
+ the format of background image */
+SDL_Surface* LoadBkgd(const char* file_name, int width, int height)
+{
+ SDL_Surface* orig = NULL;
+ SDL_Surface* final_pic = NULL;
+
+ orig = LoadScaledImage(file_name, IMG_REGULAR, width, height);
+
+ if (!orig)
+ {
+ DEBUGMSG(debug_loaders, "In LoadBkgd(), LoadImage() returned NULL on %s\n",
+ file_name);
+ return NULL;
+ }
+
+ /* turn off transparency, since it's the background */
+ SDL_SetAlpha(orig, SDL_RLEACCEL, SDL_ALPHA_OPAQUE);
+ final_pic = SDL_DisplayFormat(orig); /* optimize the format */
+ SDL_FreeSurface(orig);
+
+ return final_pic;
+}
+
+/* LoadBothBkgds() : loads two scaled images: one for the fullscreen mode
+ (fs_res_x,fs_rex_y) and one for the windowed mode (win_res_x,win_rex_y)
+ Now we also optimize the format for best performance */
+void LoadBothBkgds(const char* file_name, SDL_Surface** fs_bkgd, SDL_Surface** win_bkgd)
+{
+ DEBUGMSG(debug_loaders, "Entering LoadBothBkgds()\n");
+ *fs_bkgd = LoadBkgd(file_name, fs_res_x, fs_res_y);
+ *win_bkgd = LoadBkgd(file_name, win_res_x, win_res_y);
+}
+
+
+sprite* LoadSprite(const char* name, int mode)
+{
+ return LoadScaledSprite(name, mode, -1, -1);
+}
+
+sprite* LoadScaledSprite(const char* name, int mode, int width, int height)
+{
+ return load_sprite(name, mode, width, height, false);
+}
+
+sprite* LoadSpriteOfBoundingBox(const char* name, int mode, int max_width, int max_height)
+{
+ return load_sprite(name, mode, max_width, max_height, true);
+}
+
+sprite* load_sprite(const char* name, int mode, int w, int h, bool proportional)
+{
+ sprite *new_sprite = NULL;
+ char fn[PATH_MAX];
+ int i, width, height;
+
+#ifdef HAVE_RSVG
+ /* check if SVG sprite file is present */
+ sprintf(fn, "%s/images/%s.svg", DATA_PREFIX, name);
+ if(1 == check_file(fn))
+ {
+ if(proportional)
+ {
+ get_svg_dimensions(fn, &width, &height);
+ if(width > 0 && height > 0)
+ fit_in_rectangle(&width, &height, w, h);
+ }
+ else
+ {
+ width = w;
+ height = h;
+ }
+
+ new_sprite = load_svg_sprite(fn, width, height);
+
+ if(new_sprite)
+ {
+ set_format(new_sprite->default_img, mode);
+ for(i = 0; i < new_sprite->num_frames; i++)
+ set_format(new_sprite->frame[i], mode);
+ new_sprite->cur = 0;
+ }
+ }
+#endif
+
+ if(!new_sprite)
+ {
+ /* SVG sprite was not loaded, try to load it frame by frame from PNG files */
+ new_sprite = malloc(sizeof(sprite));
+
+ sprintf(fn, "%sd.png", name); // The 'd' means the default image
+ if(proportional)
+ new_sprite->default_img = LoadImageOfBoundingBox(fn, mode | IMG_NOT_REQUIRED, w, h);
+ else
+ new_sprite->default_img = LoadScaledImage(fn, mode | IMG_NOT_REQUIRED, w, h);
+
+ if(!new_sprite->default_img)
+ DEBUGMSG(debug_loaders, "load_sprite(): failed to load default image for %s\n", name);
+
+ for(i = 0; i < MAX_SPRITE_FRAMES; i++)
+ {
+ sprintf(fn, "%s%d.png", name, i);
+ if(proportional)
+ new_sprite->frame[i] = LoadImageOfBoundingBox(fn, mode | IMG_NOT_REQUIRED, w, h);
+ else
+ new_sprite->frame[i] = LoadScaledImage(fn, mode | IMG_NOT_REQUIRED, w, h);
+
+ if(new_sprite->frame[i] == NULL)
+ {
+ new_sprite->cur = 0;
+ new_sprite->num_frames = i;
+ break;
+ }
+ else
+ DEBUGMSG(debug_loaders, "load_sprite(): loaded frame %d of %s\n", i, name);
+ }
+ }
+
+ return new_sprite;
+}
+
+sprite* FlipSprite(sprite* in, int X, int Y)
+{
+ sprite *out;
+
+ out = malloc(sizeof(sprite));
+ if (in->default_img != NULL)
+ out->default_img = Flip( in->default_img, X, Y );
+ else
+ out->default_img = NULL;
+ for( out->num_frames=0; out->num_frames<in->num_frames; out->num_frames++ )
+ out->frame[out->num_frames] = Flip( in->frame[out->num_frames], X, Y );
+ out->cur = 0;
+ return out;
+}
+
+void FreeSprite(sprite* gfx)
+{
+ int x;
+ if (!gfx)
+ return;
+
+ DEBUGMSG(debug_loaders, "Freeing image at %p", gfx);
+ for (x = 0; x < gfx->num_frames; x++)
+ {
+ DEBUGMSG(debug_loaders, ".");
+ if (gfx->frame[x])
+ {
+ SDL_FreeSurface(gfx->frame[x]);
+ gfx->frame[x] = NULL;
+ }
+ }
+
+ if (gfx->default_img)
+ {
+ SDL_FreeSurface(gfx->default_img);
+ gfx->default_img = NULL;
+ }
+
+ DEBUGMSG(debug_loaders, "FreeSprite() - done\n");
+ free(gfx);
+}
+
+void NextFrame(sprite* s)
+{
+ if (s && s->num_frames)
+ s->cur = (s->cur + 1) % s->num_frames;
+}
+
+
+
+/* LoadSound : Load a sound/music patch from a file. */
+Mix_Chunk* LoadSound( char *datafile )
+{
+ Mix_Chunk* tempChunk = NULL;
+ char fn[PATH_MAX];
+
+// sprintf(fn , "%s/sounds/%s", realPath[i], datafile);
+ sprintf(fn , "%s/sounds/%s", DATA_PREFIX, datafile);
+ tempChunk = Mix_LoadWAV(fn);
+ if (!tempChunk)
+ {
+ fprintf(stderr, "LoadSound(): %s not found\n\n", fn);
+ }
+ return tempChunk;
+}
+
+/* LoadMusic : Load music from a datafile */
+Mix_Music* LoadMusic(char *datafile )
+{
+ char fn[PATH_MAX];
+ Mix_Music* tempMusic = NULL;
+
+ sprintf( fn , "%s/sounds/%s", DATA_PREFIX, datafile );
+ if (1 != check_file(fn))
+ {
+ fprintf(stderr, "LoadMusic(): %s not found\n\n", fn);
+ return NULL;
+ }
+
+ tempMusic = Mix_LoadMUS(fn);
+
+ if (!tempMusic)
+ {
+ fprintf(stderr, "LoadMusic(): %s not loaded successfully\n", fn);
+ printf("Error was: %s\n\n", Mix_GetError());
+ }
+ return tempMusic;
+}
+
diff --git a/src/loaders.h b/src/loaders.h
new file mode 100644
index 0000000..3839e9f
--- /dev/null
+++ b/src/loaders.h
@@ -0,0 +1,56 @@
+/*
+ loaders.h
+
+ Functions responsible for loading multimedia.
+ (interface)
+
+ Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2009
+ Boleslaw Kulbabinski <bkulbabinski at gmail.com>, (C) 2009
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#ifndef LOADERS_H
+#define LOADERS_H
+
+#include "tuxmath.h"
+
+#include <string.h>
+#include <math.h>
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <dirent.h>
+
+
+#define IMG_REGULAR 0x01
+#define IMG_COLORKEY 0x02
+#define IMG_ALPHA 0x04
+#define IMG_MODES 0x07
+
+#define IMG_NOT_REQUIRED 0x10
+#define IMG_NO_PNG_FALLBACK 0x20
+
+
+SDL_Surface* LoadImage(const char* file_name, int mode);
+SDL_Surface* LoadScaledImage(const char* file_name, int mode, int width, int height);
+SDL_Surface* LoadImageOfBoundingBox(const char* file_name, int mode, int max_width, int max_height);
+
+SDL_Surface* LoadBkgd(const char* file_name, int width, int height);
+void LoadBothBkgds(const char* file_name, SDL_Surface** fs_bkgd, SDL_Surface** win_bkgd);
+
+sprite* LoadSprite(const char* name, int mode);
+sprite* LoadScaledSprite(const char* name, int mode, int width, int height);
+sprite* LoadSpriteOfBoundingBox(const char* name, int mode, int max_width, int max_height);
+sprite* FlipSprite(sprite* in, int X, int Y);
+void FreeSprite(sprite* gfx);
+void NextFrame(sprite* s);
+
+Mix_Chunk* LoadSound(char* datafile);
+Mix_Music* LoadMusic(char *datafile);
+
+#endif /* LOADERS_H */
diff --git a/src/mathcards.c b/src/mathcards.c
new file mode 100644
index 0000000..2b17564
--- /dev/null
+++ b/src/mathcards.c
@@ -0,0 +1,2550 @@
+/*
+* C Implementation: mathcards.c
+*
+* Description: implementation of backend for a flashcard-type math game.
+ Developed as an enhancement to Bill Kendrick's "Tux of Math Command"
+ (aka tuxmath). (If tuxmath were a C++ program, this would be a C++ class).
+ MathCards could be used as the basis for similar games using a different interface.
+
+*
+*
+* Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2005
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*
+* Revised extensively in 2008 by Brendan Luchen, Tim Holy, and David Bruce
+* Revised more in 2009 by David Bruce
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <time.h>
+
+
+#include "transtruct.h"
+#include "mathcards.h"
+#include "globals.h"
+
+/* extern'd constants */
+
+const char* const MC_OPTION_TEXT[NOPTS+1] = {
+"PLAY_THROUGH_LIST",
+"QUESTION_COPIES",
+"REPEAT_WRONGS",
+"COPIES_REPEATED_WRONGS",
+"ALLOW_NEGATIVES",
+"MAX_ANSWER",
+"MAX_QUESTIONS",
+"MAX_FORMULA_NUMS",
+"MIN_FORMULA_NUMS",
+
+"FORMAT_ANSWER_LAST",
+"FORMAT_ANSWER_FIRST",
+"FORMAT_ANSWER_MIDDLE",
+"FORMAT_ADD_ANSWER_LAST",
+"FORMAT_ADD_ANSWER_FIRST",
+"FORMAT_ADD_ANSWER_MIDDLE",
+"FORMAT_SUB_ANSWER_LAST",
+"FORMAT_SUB_ANSWER_FIRST",
+"FORMAT_SUB_ANSWER_MIDDLE",
+"FORMAT_MULT_ANSWER_LAST",
+"FORMAT_MULT_ANSWER_FIRST",
+"FORMAT_MULT_ANSWER_MIDDLE",
+"FORMAT_DIV_ANSWER_LAST",
+"FORMAT_DIV_ANSWER_FIRST",
+"FORMAT_DIV_ANSWER_MIDDLE",
+
+"ADDITION_ALLOWED",
+"SUBTRACTION_ALLOWED",
+"MULTIPLICATION_ALLOWED",
+"DIVISION_ALLOWED",
+"TYPING_PRACTICE_ALLOWED",
+"ARITHMETIC_ALLOWED",
+"COMPARISON_ALLOWED",
+
+"MIN_AUGEND",
+"MAX_AUGEND",
+"MIN_ADDEND",
+"MAX_ADDEND",
+
+"MIN_MINUEND",
+"MAX_MINUEND",
+"MIN_SUBTRAHEND",
+"MAX_SUBTRAHEND",
+
+"MIN_MULTIPLIER",
+"MAX_MULTIPLIER",
+"MIN_MULTIPLICAND",
+"MAX_MULTIPLICAND",
+
+"MIN_DIVISOR",
+"MAX_DIVISOR",
+"MIN_QUOTIENT",
+"MAX_QUOTIENT",
+
+"MIN_TYPING_NUM",
+"MAX_TYPING_NUM",
+
+"MIN_COMPARATOR" ,
+"MAX_COMPARATOR" ,
+"MIN_COMPARISAND",
+"MAX_COMPARISAND",
+
+"RANDOMIZE",
+
+"COMPREHENSIVE",
+"AVG_LIST_LENGTH",
+"VARY_LIST_LENGTH",
+
+"END_OF_OPTS"
+};
+
+
+
+const int MC_DEFAULTS[] = {
+ 1, //PLAY_THROUGH_LIST
+ 1, //QUESTION_COPIES
+ 1, //REPEAT_WRONGS
+ 1, //COPIES_REPEATED_WRONGS
+ 0, //ALLOW_NEGATIVES
+ 999, //MAX_ANSWER
+ 5000, //MAX_QUESTIONS
+ 2, //MAX_FORMULA_NUMS
+ 2, //MIN_FORMULA_NUMS
+ //
+ 1, //FORMAT_ANSWER_LAST
+ 0, //FORMAT_ANSWER_FIRST
+ 0, //FORMAT_ANSWER_MIDDLE
+ 1, //FORMAT_ADD_ANSWER_LAST
+ 0, //FORMAT_ADD_ANSWER_FIRST
+ 0, //FORMAT_ADD_ANSWER_MIDDLE
+ 1, //FORMAT_SUB_ANSWER_LAST
+ 0, //FORMAT_SUB_ANSWER_FIRST
+ 0, //FORMAT_SUB_ANSWER_MIDDLE
+ 1, //FORMAT_MULT_ANSWER_LAST
+ 0, //FORMAT_MULT_ANSWER_FIRST
+ 0, //FORMAT_MULT_ANSWER_MIDDLE
+ 1, //FORMAT_DIV_ANSWER_LAST
+ 0, //FORMAT_DIV_ANSWER_FIRST
+ 0, //FORMAT_DIV_ANSWER_MIDDLE
+ //
+ 1, //ADDITION_ALLOWED
+ 1, //SUBTRACTION_ALLOWED
+ 1, //MULTIPLICATION_ALLOWED
+ 1, //DIVISION_ALLOWED
+
+ 0, //TYPING_PRACTICE_ALLOWED
+ 1, //ARITHMETIC_ALLOWED
+ 0, //COMPARISON_ALLOWED
+ //
+ 0, //MIN_AUGEND
+ 12, //MAX_AUGEND
+ 0, //MIN_ADDEND
+ 12, //MAX_ADDEND
+ //
+ 0, //MIN_MINUEND
+ 12, //MAX_MINUEND
+ 0, //MIN_SUBTRAHEND
+ 12, //MAX_SUBTRAHEND
+ //
+ 0, //MIN_MULTIPLIER
+ 12, //MAX_MULTIPLIER
+ 0, //MIN_MULTIPLICAND
+ 12, //MAX_MULTIPLICAND
+ //
+ 0, //MIN_DIVISOR
+ 12, //MAX_DIVISOR
+ 0, //MIN_QUOTIENT
+ 12, //MAX_QUOTIENT
+ //
+ 0, //MIN_TYPING_NUM
+ 12, //MAX_TYPING_NUM
+ //
+ 0, //MIN_COMPARATOR
+ 12, //MAX_COMPARATOR
+ 0, //MIN_COMPARISAND
+ 12, //MAX_COMPARISAND
+
+ 1, //RANDOMIZE
+
+ 0, //COMPREHENSIVE
+
+ //NOTE if "comprehensive" is off, we randomly generate a set of
+ //"avg list length" questions one by one. If "vary list length"
+ //is on, that length is also randomized somewhat
+ 100, //AVG_LIST_LENGTH
+ 0 //VARY_LIST_LENGTH
+};
+
+
+
+/* "Globals" for mathcards.c: */
+#define PI_VAL 3.1415927
+#define NPRIMES 9
+const int smallprimes[NPRIMES] = {2, 3, 5 ,7, 11, 13, 17, 19, 23};
+const char operchars[4] = "+-*/";
+
+MC_Options* math_opts = NULL;
+MC_MathQuestion* question_list = NULL;
+MC_MathQuestion* wrong_quests = NULL;
+MC_MathQuestion* active_quests = NULL;
+MC_MathQuestion* next_wrong_quest = NULL;
+int initialized = 0;
+int quest_list_length = 0;
+int answered_correctly = 0;
+int answered_wrong = 0;
+int questions_pending = 0;
+int unanswered = 0;
+int starting_length = 0;
+static int id = 0;
+
+/* For keeping track of timing data */
+float* time_per_question_list = NULL;
+int length_time_per_question_list = 0;
+int length_alloc_time_per_question_list = 0;
+
+const MC_FlashCard DEFAULT_CARD = {{'\0'}, {'\0'}, 0, 0, 0}; //empty card to signal error
+
+/* "private" function prototypes: */
+/* */
+/* these are for internal use by MathCards only - like */
+/* the private functions of a C++ class. Declared static */
+/* to give file scope rather than extern scope. */
+
+static MC_MathQuestion* generate_list(void);
+static void clear_negatives(void);
+//static int validate_question(int n1, int n2, int n3);
+//static MC_MathQuestion* create_node(int n1, int n2, int op, int ans, int f);
+//static MC_MathQuestion* create_node_from_card(const MC_FlashCard* flashcard);
+static MC_MathQuestion* create_node_copy(MC_MathQuestion* other);
+static MC_MathQuestion* insert_node(MC_MathQuestion* first, MC_MathQuestion* current, MC_MathQuestion* new_node);
+static MC_MathQuestion* append_node(MC_MathQuestion* list, MC_MathQuestion* new_node);
+static MC_MathQuestion* remove_node(MC_MathQuestion* first, MC_MathQuestion* n);
+static MC_MathQuestion* delete_list(MC_MathQuestion* list);
+//static int copy_node(MC_MathQuestion* original, MC_MathQuestion* copy);
+static int list_length(MC_MathQuestion* list);
+static int randomize_list(MC_MathQuestion** list);
+
+int comp_randomizer(const void* a, const void* b);
+static MC_MathQuestion* pick_random(int length, MC_MathQuestion* list);
+static int compare_node(MC_MathQuestion* first, MC_MathQuestion* other);
+static int already_in_list(MC_MathQuestion* list, MC_MathQuestion* ptr);
+//static int int_to_bool(int i);
+//static int sane_value(int i);
+//static int abs_value(int i);
+static int floatCompare(const void* v1,const void* v2);
+
+static void print_list(FILE* fp,MC_MathQuestion* list);
+void print_vect_list(FILE* fp, MC_MathQuestion** vect, int length);
+
+static void print_counters(void);
+//static MC_FlashCard create_card_from_node(MC_MathQuestion* node);
+
+
+/* Functions for new mathcards architecture */
+static void free_node(MC_MathQuestion* mq); //wrapper for free() that also frees card
+static MC_FlashCard generate_random_flashcard(void);
+static MC_FlashCard generate_random_ooo_card_of_length(int length, int reformat);
+static MC_MathQuestion* allocate_node(void); //allocate space for a node
+static int compare_card(const MC_FlashCard* a, const MC_FlashCard* b); //test for identical cards
+static int find_divisor(int a); //return a random positive divisor of a
+static int calc_num_valid_questions(void);
+static MC_MathQuestion* add_all_valid(MC_ProblemType pt, MC_MathQuestion* list, MC_MathQuestion** end_of_list);
+static MC_MathQuestion* find_node(MC_MathQuestion* list, int num);
+//Determine how many points to give player based on question
+//difficulty and how fast it was answered.
+//TODO we may want to play with this a bit
+static int calc_score(int difficulty, float t);
+
+
+
+
+
+
+/* MC_Initialize() sets up the struct containing all of */
+/* settings regarding math questions. It should be */
+/* called before any other function. Many of the other */
+/* functions will not work properly if MC_Initialize() */
+/* has not been called. It only needs to be called once, */
+/* i.e when the program is starting, not at the beginning*/
+/* of each math game for the player. Returns 1 if */
+/* successful, 0 otherwise. */
+int MC_Initialize(void)
+{
+ int i;
+
+ DEBUGMSG(debug_mathcards,"\nEntering MC_Initialize()");
+ /* check flag to see if we did this already */
+ if (initialized)
+ {
+
+ DEBUGCODE(debug_mathcards)
+ {
+ printf("\nAlready initialized");
+ MC_PrintMathOptions(stdout, 0);
+ printf("\nLeaving MC_Initialize()\n");
+ }
+
+ return 1;
+ }
+ math_opts = malloc(sizeof(MC_Options));
+ /* bail out if no struct */
+ if (!math_opts)
+ {
+ DEBUGMSG(debug_mathcards,"\nError: malloc couldn't allocate math_opts for some reason\n");
+ DEBUGMSG(debug_mathcards,"\nLeaving MC_Initialize()\n");
+
+ fprintf(stderr, "\nUnable to initialize math_options");
+ return 0;
+ }
+
+ /* set defaults */
+ for (i = 0; i < NOPTS; ++i)
+ {
+ math_opts->iopts[i] = MC_DEFAULTS[i];
+ }
+
+ /* if no negatives to be used, reset any negatives to 0 */
+ if (!math_opts->iopts[ALLOW_NEGATIVES])
+ {
+ clear_negatives();
+ }
+
+ initialized = 1;
+
+ DEBUGCODE(debug_mathcards)
+ {
+ MC_PrintMathOptions(stdout, 0);
+ printf("\nLeaving MC_Initialize()\n");
+ }
+
+ return 1;
+}
+
+
+
+/* MC_StartGame() generates the list of math questions */
+/* based on existing settings. It should be called at */
+/* the beginning of each math game for the player. */
+/* Returns 1 if resultant list contains 1 or more */
+/* questions, 0 if list empty or not generated */
+/* successfully. */
+int MC_StartGame(void)
+{
+
+ DEBUGMSG(debug_mathcards,"\nEntering MC_StartGame()");
+
+ /* if math_opts not set up yet, initialize it: */
+ if (!initialized)
+ {
+ DEBUGMSG(debug_mathcards, "\nNot initialized - calling MC_Initialize()");
+ MC_Initialize();
+ }
+
+ if (!math_opts)
+ {
+ DEBUGMSG(debug_mathcards, "\nCould not initialize - bailing out");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_StartGame()\n");
+ return 0;
+ }
+
+ /* we know math_opts exists if we make it to here */
+ srand(time(NULL));
+
+ /* clear out old lists if starting another game: (if not done already) */
+ delete_list(question_list);
+ question_list = NULL;
+ delete_list(wrong_quests);
+ wrong_quests = NULL;
+ delete_list(active_quests);
+ active_quests = NULL;
+
+ /* clear the time list */
+ if (time_per_question_list != NULL)
+ {
+ free(time_per_question_list);
+ time_per_question_list = NULL;
+ length_time_per_question_list = 0;
+ length_alloc_time_per_question_list = 0;
+ }
+
+ question_list = generate_list();
+ next_wrong_quest = NULL;
+ /* initialize counters for new game: */
+ quest_list_length = list_length(question_list);
+
+
+ /* Note: the distinction between quest_list_length and */
+ /* unanswered is that the latter includes questions */
+ /* that are currently "in play" by the user interface - */
+ /* it is only decremented when an answer to the question*/
+ /* is received. */
+ unanswered = starting_length = quest_list_length;
+ answered_correctly = 0;
+ answered_wrong = 0;
+ questions_pending = 0;
+
+ if (debug_status & debug_mathcards) {
+ print_counters();
+ }
+
+/* make sure list now exists and has non-zero length: */
+ if (question_list && quest_list_length)
+ {
+ DEBUGMSG(debug_mathcards, "\nGame set up successfully");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_StartGame()\n");
+
+ return 1;
+ }
+ else
+ {
+ DEBUGMSG(debug_mathcards, "\nGame NOT set up successfully - no valid list");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_StartGame()\n");
+
+ return 0;
+ }
+}
+
+/* MC_StartGameUsingWrongs() is like MC_StartGame(), */
+/* but uses the incorrectly answered questions from the */
+/* previous game for the question list as a review form */
+/* of learning. If there were no wrong answers (or no */
+/* previous game), it behaves just like MC_StartGame(). */
+/* FIXME wonder if it should return a different value if */
+/* the list is created from settings because there is no */
+/* valid wrong question list? */
+int MC_StartGameUsingWrongs(void)
+{
+ DEBUGMSG(debug_mathcards, "\nEntering MC_StartGameUsingWrongs()");
+
+ /* Note: if not initialized, control will pass to */
+ /* MC_StartGame() via else clause so don't need to test */
+ /* for initialization here */
+ if (wrong_quests &&
+ list_length(wrong_quests))
+ {
+ DEBUGMSG(debug_mathcards, "\nNon-zero length wrong_quests list found, will");
+ DEBUGMSG(debug_mathcards, "\nuse for new game list:");
+
+ /* initialize lists for new game: */
+ delete_list(question_list);
+ if(!randomize_list(&wrong_quests))
+ {
+ fprintf(stderr, "Error during randomization of wrong_quests!\n");
+ /* Punt on trying wrong question list, just run normal game */
+ return MC_StartGame();
+ }
+ question_list = wrong_quests;
+ wrong_quests = 0;
+ next_wrong_quest = 0;
+ delete_list(active_quests);
+ active_quests = 0;
+ /* initialize counters for new game: */
+ quest_list_length = list_length(question_list);
+ unanswered = starting_length = quest_list_length;
+ answered_correctly = 0;
+ answered_wrong = 0;
+ questions_pending = 0;
+
+ if (debug_status & debug_mathcards) {
+ print_counters();
+ print_list(stdout, question_list);
+ printf("\nLeaving MC_StartGameUsingWrongs()\n");
+ }
+
+ return 1;
+ }
+ else /* if no wrong_quests list, go to MC_StartGame() */
+ /* to set up list based on math_opts */
+ {
+ DEBUGMSG(debug_mathcards, "\nNo wrong questions to review - generate list from math_opts\n");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_StartGameUsingWrongs()\n");
+
+ return MC_StartGame();
+ }
+}
+
+
+/* MC_NextQuestion() takes a pointer to an allocated */
+/* MC_FlashCard struct and fills in the fields for */
+/* use by the user interface program. It basically is */
+/* like taking the next flashcard from the pile. The */
+/* node containing the question is removed from the list. */
+/* Returns 1 if question found, 0 if list empty/invalid */
+/* or if argument pointer is invalid. */
+int MC_NextQuestion(MC_FlashCard* fc)
+{
+ DEBUGMSG(debug_mathcards, "\nEntering MC_NextQuestion()\n");
+
+ /* (so we can move the node into active_quests:) */
+ MC_MathQuestion* ptr;
+
+ if (!fc )
+ {
+ fprintf(stderr, "\nNull MC_FlashCard* argument!\n");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_NextQuestion()\n");
+ return 0;
+ }
+
+ if (!question_list ||
+/* !next_question || */
+ !list_length(question_list) )
+ {
+ DEBUGMSG(debug_mathcards, "\nquestion_list invalid or empty");
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_NextQuestion()\n");
+
+ return 0;
+ }
+
+ /* 'draw' - copy over the first question */
+ MC_CopyCard(&question_list->card, fc);
+
+ /* take first question node out of list and move it into active_quests list: */
+ ptr = question_list;
+ question_list = remove_node(question_list, ptr);
+// free_node(ptr);
+ quest_list_length--;
+ questions_pending++;
+ active_quests = append_node(active_quests, ptr);
+
+ if (debug_status & debug_mathcards) {
+ printf("\nnext question is:");
+ print_card(*fc);
+ print_counters();
+ printf("\n\nLeaving MC_NextQuestion()\n");
+ }
+
+ return 1;
+}
+
+
+
+/* MC_AnsweredCorrectly() is how the user interface */
+/* tells MathCards that the question has been answered */
+/* correctly. Returns the number of points earned. */
+int MC_AnsweredCorrectly(int id, float t)
+{
+ DEBUGMSG(debug_mathcards, "\nEntering MC_AnsweredCorrectly()");
+
+ MC_MathQuestion* quest = NULL;
+ int points = 0;
+
+ if(!active_quests) // No questions currently "in play" - something is wrong:
+ {
+ fprintf(stderr, "MC_AnsweredCorrectly() - active_quests empty\n");
+ return 0;
+ }
+
+ DEBUGMSG(debug_mathcards, "\nQuestion id was: %d\n", id);
+
+ //First take the question out of the active_quests list
+ quest = active_quests;
+ // Loop until quest is NULL or we find card with same id:
+ while(quest && (id != quest->card.question_id))
+ quest = quest->next;
+ if(!quest) // Means we didn't find matching card - something is wrong:
+ {
+ fprintf(stderr, "MC_AnsweredCorrectly() - matching question not found!\n");
+ return 0;
+ }
+
+ /* Calculate how many points the player should receive, based on */
+ /* difficulty and time required to answer it: */
+ points = calc_score(quest->card.difficulty, t);
+
+ DEBUGCODE(debug_mathcards)
+ {
+ printf("\nQuestion was:");
+ print_card(quest->card);
+ printf("Player recieves %d points\n", points);
+ }
+
+
+ //We found a matching question, now we take it out of the
+ //"active_quests" list and either put it back into the
+ //main question list in a random location, or delete it:
+ active_quests = remove_node(active_quests, quest);
+ questions_pending--; //the length of the 'active_quests' list
+ answered_correctly++;
+
+ if (!math_opts->iopts[PLAY_THROUGH_LIST])
+ /* reinsert question into question list at random location */
+ {
+ DEBUGMSG(debug_mathcards, "\nReinserting question into list");
+
+ MC_MathQuestion* rand_spot;
+ /* put it into list */
+ rand_spot = pick_random(quest_list_length, question_list);
+ question_list = insert_node(question_list, rand_spot, quest);
+ quest_list_length++;
+ /* unanswered does not change - was not decremented when */
+ /* question allocated! */
+ }
+ else
+ {
+ DEBUGMSG(debug_mathcards, "\nNot reinserting question into list");
+ free_node(quest);
+ /* not recycling questions so fewer questions remain: */
+ unanswered--;
+ }
+
+ DEBUGCODE(debug_mathcards)
+ {
+ print_counters();
+ printf("\nLeaving MC_AnsweredCorrectly()\n");
+ }
+
+ /* Record the time it took to answer: */
+ MC_AddTimeToList(t);
+
+ return points;
+}
+
+
+
+
+
+/* MC_NotAnsweredCorrectly() is how the user interface */
+/* tells MathCards that the player failed to answer the */
+/* question correctly. Returns 1 if no errors. */
+/* Note: this gets triggered only if a player's igloo/city */
+/* gets hit by a question, not if they "miss". */
+int MC_NotAnsweredCorrectly(int id)
+{
+ DEBUGMSG(debug_mathcards, "\nEntering MC_NotAnsweredCorrectly()");
+
+ MC_MathQuestion* quest = NULL;
+
+ if(!active_quests) // No questions currently "in play" - something is wrong:
+ {
+ fprintf(stderr, "MC_NotAnsweredCorrectly() - active_quests empty\n");
+ return 0;
+ }
+
+ DEBUGMSG(debug_mathcards, "\nQuestion id was: %d\n", id);
+
+ //First take the question out of the active_quests list
+ quest = active_quests;
+ // Loop until quest is NULL or we find card with same id:
+ while(quest && (id != quest->card.question_id))
+ quest = quest->next;
+ if(!quest) // Means we didn't find matching card - something is wrong:
+ {
+ fprintf(stderr, "MC_NotAnsweredCorrectly() - matching question not found!\n");
+ return 0;
+ }
+
+ DEBUGMSG(debug_mathcards, "\nMatching question is:");
+ print_card(quest->card);
+
+
+ /* if desired, put question back in list so student sees it again */
+ if (math_opts->iopts[REPEAT_WRONGS])
+ {
+ int i;
+ MC_MathQuestion* quest_copy;
+ MC_MathQuestion* rand_loc;
+
+ DEBUGMSG(debug_mathcards, "\nAdding %d copies to question_list:", math_opts->iopts[COPIES_REPEATED_WRONGS]);
+
+ DEBUGCODE(debug_mathcards)
+ {
+ print_counters();
+ printf("\nLeaving MC_AnsweredCorrectly()\n");
+ }
+
+ /* can put in more than one copy (to drive the point home!) */
+ for (i = 0; i < math_opts->iopts[COPIES_REPEATED_WRONGS]; i++)
+ {
+ quest_copy = create_node_copy(quest);
+ rand_loc = pick_random(quest_list_length, question_list);
+ question_list = insert_node(question_list, rand_loc, quest_copy);
+ quest_list_length++;
+ }
+ /* unanswered stays the same if a single copy recycled or */
+ /* increases by 1 for each "extra" copy reinserted: */
+ unanswered += (math_opts->iopts[COPIES_REPEATED_WRONGS] - 1);
+ }
+ else
+ {
+ DEBUGMSG(debug_mathcards, "\nNot repeating wrong answers\n");
+ /* not repeating questions so list gets shorter: */
+ unanswered--;
+ }
+
+ //Take the question out of the active_quests list and add it to
+ //the wrong_quests list, unless an identical question is already
+ //in the wrong_quests list:
+ active_quests = remove_node(active_quests, quest);
+ questions_pending--; //the length of the 'active_quests' list
+ answered_wrong++;
+
+ /* add question to wrong_quests list: */
+ if (!already_in_list(wrong_quests, quest)) /* avoid duplicates */
+ {
+ DEBUGMSG(debug_mathcards, "\nAdding to wrong_quests list");
+ wrong_quests = append_node(wrong_quests, quest);
+ }
+ else /* avoid memory leak */
+ {
+ free_node(quest);
+ }
+
+ DEBUGCODE(debug_mathcards)
+ {
+ print_counters();
+ printf("\nLeaving MC_NotAnswered_Correctly()\n");
+ }
+
+ return 1;
+}
+
+
+
+
+
+
+/* Tells user interface if all questions have been answered correctly! */
+/* Requires that at list contained at least one question to start with */
+/* and that wrongly answered questions have been recycled. */
+int MC_MissionAccomplished(void)
+{
+ if (starting_length
+ && math_opts->iopts[REPEAT_WRONGS]
+ && !unanswered)
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+
+/* Returns number of questions left (either in list */
+/* or "in play") */
+int MC_TotalQuestionsLeft(void)
+{
+ return unanswered;
+}
+
+/* Returns number of questions left in list, NOT */
+/* including questions currently "in play". */
+int MC_ListQuestionsLeft(void)
+{
+ return quest_list_length;
+}
+
+
+/* Store the amount of time a given flashcard was */
+/* visible on the screen. Returns 1 if the request */
+/* succeeds, 0 otherwise. */
+int MC_AddTimeToList(float t)
+{
+ int newsize = 0;
+ float *newlist;
+
+ //Bail if time invalid:
+ if(t < 0)
+ return 0;
+
+ /* This list will be allocated in an STL-like manner: when the */
+ /* list gets full, allocate an additional amount of storage equal */
+ /* to the current size of the list, so that only O(logN) allocations */
+ /* will ever be needed. We therefore have to keep track of 2 sizes: */
+ /* the allocated size, and the actual number of items currently on */
+ /* the list. */
+ if (length_time_per_question_list >= length_alloc_time_per_question_list) {
+ /* The list is full, allocate more space */
+ newsize = 2*length_time_per_question_list;
+ if (newsize == 0)
+ newsize = 100;
+ newlist = realloc(time_per_question_list, newsize*sizeof(float));
+ if (newlist == NULL)
+ {
+ DEBUGMSG(debug_mathcards,"\nError: allocation for time_per_question_list failed\n");
+ return 0;
+ }
+ time_per_question_list = newlist;
+ length_alloc_time_per_question_list = newsize;
+ }
+
+ /* Append the time to the list */
+ time_per_question_list[length_time_per_question_list++] = t;
+ return 1;
+}
+
+/* Frees heap memory used in program: */
+void MC_EndGame(void)
+{
+ delete_list(question_list);
+ question_list = 0;
+ delete_list(wrong_quests);
+ wrong_quests = 0;
+
+ if (math_opts)
+ {
+ free(math_opts);
+ math_opts = 0;
+ }
+
+ free(time_per_question_list);
+ time_per_question_list = NULL;
+ length_alloc_time_per_question_list = 0;
+ length_time_per_question_list = 0;
+
+ initialized = 0;
+}
+
+
+
+/* prints struct to file */
+void MC_PrintMathOptions(FILE* fp, int verbose)
+{
+ int i, vcommentsprimed = 0;
+ //comments when writing out verbose...perhaps they can go somewhere less conspicuous
+ static char* vcomments[NOPTS];
+ if (!vcommentsprimed) //we only want to initialize these once
+ {
+ vcommentsprimed = 1;
+ for (i = 0; i < NOPTS; ++i)
+ vcomments[i] = NULL;
+ vcomments[PLAY_THROUGH_LIST] =
+ "\n############################################################\n"
+ "# #\n"
+ "# General Math Options #\n"
+ "# #\n"
+ "# If 'play_through_list' is true, Tuxmath will ask each #\n"
+ "# question in an internally-generated list. The list is #\n"
+ "# generated based on the question ranges selected below. #\n"
+ "# The game ends when no questions remain. #\n"
+ "# If 'play_through_list' is false, the game continues #\n"
+ "# until all cities are destroyed. #\n"
+ "# Default is 1 (i.e. 'true' or 'yes'). #\n"
+ "# #\n"
+ "# 'question_copies' is the number of times each question #\n"
+ "# will be asked. It can be 1 to 10 - Default is 1. #\n"
+ "# #\n"
+ "# 'repeat_wrongs' tells Tuxmath whether to reinsert #\n"
+ "# incorrectly answered questions into the list to be #\n"
+ "# asked again. Default is 1 (yes). #\n"
+ "# #\n"
+ "# 'copies_repeated_wrongs' gives the number of times an #\n"
+ "# incorrectly answered question will reappear. Default #\n"
+ "# is 1. #\n"
+ "# #\n"
+ "# The defaults for these values result in a 'mission' #\n"
+ "# for Tux that is accomplished by answering all #\n"
+ "# questions correctly with at least one surviving city. #\n"
+ "############################################################\n\n";
+
+ vcomments[FORMAT_ADD_ANSWER_LAST] =
+ "\n############################################################\n"
+ "# The 'format_<op>_answer_<place> options control #\n"
+ "# generation of questions with the answer in different #\n"
+ "# places in the equation. i.e.: #\n"
+ "# #\n"
+ "# format_add_answer_last: 2 + 2 = ? #\n"
+ "# format_add_answer_first: ? + 2 = 4 #\n"
+ "# format_add_answer_middle: 2 + ? = 4 #\n"
+ "# #\n"
+ "# By default, 'format_answer_first' is enabled and the #\n"
+ "# other two formats are disabled. Note that the options #\n"
+ "# are not mutually exclusive - the question list may #\n"
+ "# contain questions with different formats. #\n"
+ "# #\n"
+ "# The formats are set independently for each of the four #\n"
+ "# math operations. #\n"
+ "############################################################\n\n";
+
+ vcomments[ALLOW_NEGATIVES] =
+ "\n############################################################\n"
+ "# 'allow_negatives' allows or disallows use of negative #\n"
+ "# numbers as both operands and answers. Default is 0 #\n"
+ "# (no), which disallows questions like: #\n"
+ "# 2 - 4 = ? #\n"
+ "# Note: this option must be enabled in order to set the #\n"
+ "# operand ranges to include negatives (see below). If it #\n"
+ "# is changed from 1 (yes) to 0 (no), any negative #\n"
+ "# operand limits will be reset to 0. #\n"
+ "############################################################\n\n";
+
+ vcomments[MAX_ANSWER] =
+ "\n############################################################\n"
+ "# 'max_answer' is the largest absolute value allowed in #\n"
+ "# any value in a question (not only the answer). Default #\n"
+ "# is 144. It can be set as high as 999. #\n"
+ "############################################################\n\n";
+
+ vcomments[MAX_QUESTIONS] =
+ "\n############################################################\n"
+ "# 'max_questions' is limit of the length of the question #\n"
+ "# list. Default is 5000 - only severe taskmasters will #\n"
+ "# need to raise it. #\n"
+ "############################################################\n\n";
+
+ vcomments[RANDOMIZE] =
+ "\n############################################################\n"
+ "# If 'randomize' selected, the list will be shuffled #\n"
+ "# at the start of the game. Default is 1 (yes). #\n"
+ "############################################################\n\n";
+
+ vcomments[ADDITION_ALLOWED] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Math Operations Allowed #\n"
+ "# #\n"
+ "# These options enable questions for each of the four math #\n"
+ "# operations. All are 1 (yes) by default. #\n"
+ "############################################################\n\n";
+
+ vcomments[MIN_AUGEND] =
+ "\n############################################################\n"
+ "# #\n"
+ "# Minimum and Maximum Values for Operand Ranges #\n"
+ "# #\n"
+ "# Operand limits can be set to any integer up to the #\n"
+ "# value of 'max_answer'. If 'allow_negatives' is set to 1 #\n"
+ "# (yes), either negative or positive values can be used. #\n"
+ "# Tuxmath will generate questions for every value in the #\n"
+ "# specified range. The maximum must be greater than or #\n"
+ "# equal to the corresponding minimum for any questions to #\n"
+ "# be generated for that operation. #\n"
+ "############################################################\n\n";
+
+ }
+
+
+ DEBUGMSG(debug_mathcards, "\nEntering MC_PrintMathOptions()\n");
+
+ /* bail out if no struct */
+ if (!math_opts)
+ {
+ fprintf(stderr, "\nMath Options struct does not exist!\n");
+ return;
+ }
+
+ for (i = 0; i < NOPTS; ++i)
+ {
+ if (verbose && vcomments[i] != NULL)
+ fprintf(fp, "%s", vcomments[i]);
+ fprintf(fp, "%s = %d\n", MC_OPTION_TEXT[i], math_opts->iopts[i]);
+ }
+ DEBUGMSG(debug_mathcards, "\nLeaving MC_PrintMathOptions()\n");
+}
+
+
+
+int MC_PrintQuestionList(FILE* fp)
+{
+ if (fp && question_list)
+ {
+ print_list(fp, question_list);
+ return 1;
+ }
+ else
+ {
+ fprintf(stderr, "\nFile pointer and/or question list invalid\n");
+ return 0;
+ }
+}
+
+int MC_PrintWrongList(FILE* fp)
+{
+ if (!fp)
+ {
+ fprintf(stderr, "File pointer invalid\n");
+ return 0;
+ }
+
+ if (wrong_quests)
+ {
+ print_list(fp, wrong_quests);
+ }
+ else
+ {
+ fprintf(fp, "\nNo wrong questions!\n");
+ }
+
+ return 1;
+}
+
+
+int MC_StartingListLength(void)
+{
+ return starting_length;
+}
+
+
+int MC_WrongListLength(void)
+{
+ return list_length(wrong_quests);
+}
+
+int MC_NumAnsweredCorrectly(void)
+{
+ return answered_correctly;
+}
+
+
+int MC_NumNotAnsweredCorrectly(void)
+{
+ return answered_wrong;
+}
+
+
+/* Report the median time per question */
+float MC_MedianTimePerQuestion(void)
+{
+ if (length_time_per_question_list == 0)
+ return 0;
+
+ qsort(time_per_question_list,length_time_per_question_list,sizeof(float),floatCompare);
+ return time_per_question_list[length_time_per_question_list/2];
+}
+
+
+
+
+/* Implementation of "private methods" - (cannot be called from outside
+of this file) */
+
+
+
+/* Resets negative values to zero - used when allow_negatives deselected. */
+void clear_negatives(void)
+{
+ int i;
+ for (i = MIN_AUGEND; i <= MAX_TYPING_NUM; ++i)
+ if (math_opts->iopts[i]< 0)
+ math_opts->iopts[i]= 0;
+}
+
+// /* this is used by generate_list to see if a possible question */
+// /* meets criteria to be added to the list or not: */
+// int validate_question(int n1, int n2, int n3)
+// {
+// /* make sure none of values exceeds max_answer using absolute */
+// /* value comparison: */
+// if (abs_value(n1) > abs_value(math_opts->iopts[MAX_ANSWER])
+// || abs_value(n2) > abs_value(math_opts->iopts[MAX_ANSWER])
+// || abs_value(n3) > abs_value(math_opts->iopts[MAX_ANSWER]))
+// {
+// return 0;
+// }
+// /* make sure none of values are negative if negatives not allowed: */
+// if (!math_opts->iopts[ALLOW_NEGATIVES])
+// {
+// if (n1 < 0 || n2 < 0 || n3 < 0)
+// {
+// return 0;
+// }
+// }
+// return 1;
+// }
+
+
+
+// MC_MathQuestion* create_node_from_card(const MC_FlashCard* flashcard)
+// {
+// MC_MathQuestion* ret = allocate_node();
+// MC_CopyCard(flashcard, &(ret->card));
+// return ret;
+// }
+
+// /* FIXME take care of strings */
+// /* this one copies the contents, including pointers; both nodes must be allocated */
+// int copy_node(MC_MathQuestion* original, MC_MathQuestion* copy)
+// {
+// if (!original)
+// {
+// fprintf(stderr, "\nIn copy_node(): invalid 'original' pointer arg.\n");
+// return 0;
+// }
+// if (!copy)
+// {
+// fprintf(stderr, "\nIn copy_node(): invalid 'copy' pointer arg.\n");
+// return 0;
+// }
+//
+// copy_card(&(original->card), &(copy->card) );
+//
+// copy->next = original->next;
+// copy->previous = original->previous;
+// copy->randomizer = original->randomizer;
+// return 1;
+// }
+
+
+
+
+/* this puts the node into the list AFTER the node pointed to by current */
+/* and returns a pointer to the top of the modified list */
+MC_MathQuestion* insert_node(MC_MathQuestion* first,
+ MC_MathQuestion* current,
+ MC_MathQuestion* new_node)
+{
+ /* return pointer to list unchanged if new_node doesn't exist*/
+ if (!new_node)
+ return first;
+ /* if current doesn't exist, new_node is first */
+ if (!current)
+ {
+ new_node->previous = 0;
+ new_node->next =0;
+ first = new_node;
+ return first;
+ }
+
+ if (current->next) /* avoid error if at end of list */
+ current->next->previous = new_node;
+ new_node->next = current->next;
+ current->next = new_node;
+ new_node->previous = current;
+ return first;
+}
+
+
+
+/* adds the new node to the end of the list */
+MC_MathQuestion* append_node(MC_MathQuestion* list, MC_MathQuestion* new_node)
+{
+ MC_MathQuestion* ptr;
+ /* return pointer to list unchanged if new_node doesn't exist*/
+ if (!new_node)
+ {
+ return list;
+ }
+
+ /* if list does not exist, new_node is the first (and only) node */
+ if (!list)
+ {
+ return new_node;
+ }
+ /* otherwise, go to end of list */
+ ptr = list;
+ while (ptr->next)
+ {
+ ptr = ptr->next;
+ }
+
+ ptr->next = new_node;
+ new_node->previous = ptr;
+ new_node->next = 0;
+ return list;
+}
+
+
+
+/* this takes the node out of the list but does not delete it */
+/* and returns a pointer to the top of the modified list */
+MC_MathQuestion* remove_node(MC_MathQuestion* first, MC_MathQuestion* n)
+{
+ if (!n || !first)
+ return first;
+ /* special case if first node being removed */
+ if (n == first)
+ first = first->next;
+
+ if (n->previous)
+ n->previous->next = n->next;
+ if (n->next)
+ n->next->previous = n->previous;
+ n->previous = 0;
+ n->next = 0;
+ return first;
+}
+
+
+
+/* frees memory for entire list and returns null pointer */
+MC_MathQuestion* delete_list(MC_MathQuestion* list)
+{
+ MC_MathQuestion* tmp_ptr;
+ while (list)
+ {
+ tmp_ptr = list->next;
+ free_node (list);
+ list = tmp_ptr;
+ }
+ return list;
+}
+
+
+
+void print_list(FILE* fp, MC_MathQuestion* list)
+{
+ if (!list)
+ {
+ fprintf(fp, "\nprint_list(): list empty or pointer invalid\n");
+ return;
+ }
+
+ MC_MathQuestion* ptr = list;
+ while (ptr)
+ {
+ fprintf(fp, "%s\n", ptr->card.formula_string);
+ ptr = ptr->next;
+ }
+}
+
+
+void print_vect_list(FILE* fp, MC_MathQuestion** vect, int length)
+{
+ if (!vect)
+ {
+ fprintf(fp, "\nprint_vect_list(): list empty or pointer invalid\n");
+ return;
+ }
+
+ int i = 0;
+ DEBUGMSG(debug_mathcards, "Entering print_vect_list()\n");
+ for(i = 0; i < length; i++)
+ fprintf(fp, "%s\n", vect[i]->card.formula_string);
+
+ DEBUGMSG(debug_mathcards, "Leaving print_vect_list()\n");
+}
+
+
+
+void print_card(MC_FlashCard card)
+{
+ printf("\nprint_card():\n");
+ printf("question_id: %d\nformula_string: %s\nanswer_string: %s\n"
+ "answer: %d\ndifficulty: %d\n\n",
+ card.question_id,
+ card.formula_string,
+ card.answer_string,
+ card.answer,
+ card.difficulty);
+}
+
+/* This sends the values of all "global" counters and the */
+/* lengths of the question lists to stdout - for debugging */
+void print_counters(void)
+{
+ printf("\nquest_list_length = \t%d", quest_list_length);
+ printf("\nlist_length(question_list) = \t%d", list_length(question_list));
+ printf("\nstarting_length = \t%d", starting_length);
+ printf("\nunanswered = \t%d", unanswered);
+ printf("\nanswered_correctly = \t%d", answered_correctly);
+ printf("\nanswered_wrong = \t%d", answered_wrong);
+ printf("\nlist_length(wrong_quests) = \t%d", list_length(wrong_quests));
+ printf("\nquestions_pending = \t%d", questions_pending);
+ printf("\nlist_length(active_quests) = \t%d", list_length(active_quests));
+}
+
+
+
+
+
+
+//
+// /* FIXME take care of strings */
+//
+// MC_FlashCard create_card_from_node(MC_MathQuestion* node)
+// {
+// MC_FlashCard fc;
+// if (!node)
+// return DEFAULT_CARD;
+// fc = MC_AllocateFlashcard();
+// copy_card(&(node->card), &fc);
+// return fc;
+// }
+
+
+
+/* a "copy constructor", so to speak */
+/* FIXME perhaps should return newly allocated list if more than one node DSB */
+MC_MathQuestion* create_node_copy(MC_MathQuestion* other)
+{
+ MC_MathQuestion* ret = allocate_node();
+ if (ret)
+ MC_CopyCard(&(other->card), &(ret->card) );
+ return ret;
+}
+
+
+int list_length(MC_MathQuestion* list)
+{
+ int length = 0;
+ while (list)
+ {
+ length++;
+ list = list->next;
+ }
+ return length;
+}
+
+
+
+
+
+
+/* This is a new implementation written in an attempt to avoid */
+/* the O(n^2) performance problems seen with the old randomization */
+/* function. The list is created as a vector, but is for now still */
+/* made a linked list to minimize changes needed elsewhere. */
+/* The argument is a pointer to the top of the old list. This extra */
+/* level of indirection allows the list to be shuffled "in-place". */
+/* The function returns 1 if successful, 0 on errors. */
+
+static int randomize_list(MC_MathQuestion** old_list)
+{
+ MC_MathQuestion* old_tmp = *old_list;
+ MC_MathQuestion** tmp_vect = NULL;
+
+ int i = 0;
+ if (!old_list || !*old_list) //invalid/empty list
+ return 0;
+
+ int old_length = list_length(old_tmp);
+
+ /* set random seed: */
+ srand(time(0));
+
+
+ /* Allocate vector and set ptrs to nodes in old list: */
+
+ /* Allocate a list of pointers, not space for the nodes themselves: */
+ tmp_vect = (MC_MathQuestion**)malloc(sizeof(MC_MathQuestion*) * old_length);
+ /* Set each pointer in the vector to the corresponding node: */
+ for (i = 0; i < old_length; i++)
+ {
+ tmp_vect[i] = old_tmp;
+ tmp_vect[i]->randomizer = rand();
+ old_tmp = old_tmp->next;
+ }
+
+ /* Now simply sort on 'tmp_vect[i]->randomizer' to shuffle list: */
+ qsort(tmp_vect, old_length,
+ sizeof(MC_MathQuestion*),
+ comp_randomizer);
+
+ /* Re-create pointers to provide linked-list functionality: */
+ /* (stop at 'old_length-1' because we dereference tmp_vect[i+1]) */
+ for(i = 0; i < old_length - 1; i++)
+ {
+ if (!tmp_vect[i])
+ {
+ fprintf(stderr, "Invalid pointer!\n");
+ return 0;
+ }
+ tmp_vect[i]->next = tmp_vect[i+1];
+ tmp_vect[i+1]->previous = tmp_vect[i];
+ }
+ /* Handle end cases: */
+ tmp_vect[0]->previous = NULL;
+ tmp_vect[old_length-1]->next = NULL;
+
+ /* Now arrange for arg pointer to indirectly point to first element! */
+ *old_list = tmp_vect[0];
+ free(tmp_vect);
+ return 1;
+}
+
+
+
+/* This is needed for qsort(): */
+int comp_randomizer (const void* a, const void* b)
+{
+
+ int int1 = (*(const struct MC_MathQuestion **) a)->randomizer;
+ int int2 = (*(const struct MC_MathQuestion **) b)->randomizer;
+
+ if (int1 > int2)
+ return 1;
+ else if (int1 == int2)
+ return 0;
+ else
+ return -1;
+}
+
+MC_MathQuestion* pick_random(int length, MC_MathQuestion* list)
+{
+ int i;
+ int rand_node;
+
+ /* set random seed DSB */
+ srand(time(0));
+
+ /* if length is zero, get out to avoid divide-by-zero error */
+ if (0 == length)
+ {
+ return list;
+ }
+
+ rand_node = rand() % length;
+
+ for (i=1; i < rand_node; i++)
+ {
+ if (list)
+ list = list->next;
+ }
+
+ return list;
+}
+
+/* compares fields other than pointers */
+int compare_node(MC_MathQuestion* first, MC_MathQuestion* other)
+{
+ if (!first || !other)
+ return 0;
+ if (compare_card(&(first->card), &(first->card) ) ) //cards are equal
+ return 1;
+ else
+ return 0;
+}
+
+/* check to see if list already contains an identical node */
+int already_in_list(MC_MathQuestion* list, MC_MathQuestion* ptr)
+{
+ if (!list || !ptr)
+ return 0;
+
+ while (list)
+ {
+ if (compare_node(list, ptr))
+ return 1;
+ list = list->next;
+ }
+ return 0;
+}
+
+// /* to prevent option settings in math_opts from getting set to */
+// /* values other than 0 or 1 */
+// int int_to_bool(int i)
+// {
+// if (i)
+// return 1;
+// else
+// return 0;
+// }
+
+// /* prevent values from getting into math_opts that are outside */
+// /* the range that can be handled by the program (i.e. more */
+// /* than three digits; also disallow negatives if that has been */
+// /* selected. */
+// int sane_value(int i)
+// {
+// if (i > MC_GLOBAL_MAX)
+// i = MC_GLOBAL_MAX;
+// else if (i < -MC_GLOBAL_MAX)
+// i = -MC_GLOBAL_MAX;
+//
+// if (i < 0
+// && math_opts
+// && !math_opts->iopts[ALLOW_NEGATIVES])
+// {
+// i = 0;
+// }
+//
+// return i;
+// }
+
+// int abs_value(int i)
+// {
+// if (i > 0)
+// return i;
+// else
+// return -i;
+// }
+
+
+/* Compares two floats (needed for sorting in MC_MedianTimePerQuestion) */
+int floatCompare(const void *v1,const void *v2)
+{
+ float f1,f2;
+
+ f1 = *((float *) v1);
+ f2 = *((float *) v2);
+
+ if (f1 < f2)
+ return -1;
+ else if (f1 > f2)
+ return 1;
+ else
+ return 0;
+}
+
+
+
+/****************************************************
+Functions for new mathcards architecture
+****************************************************/
+
+void MC_CopyCard(const MC_FlashCard* src, MC_FlashCard* dest)
+{
+ if (!src || !dest)
+ return;
+ DEBUGMSG(debug_mathcards, "Copying '%s' to '%s', ", src->formula_string,dest->formula_string);
+ DEBUGMSG(debug_mathcards, "copying '%s' to '%s'\n", src->answer_string, dest->answer_string);
+ strncpy(dest->formula_string, src->formula_string, MC_FORMULA_LEN);
+ strncpy(dest->answer_string, src->answer_string, MC_ANSWER_LEN);
+ DEBUGMSG(debug_mathcards, "Card is: '%s', '%s'\n", dest->formula_string, dest->answer_string);
+ dest->answer = src->answer;
+ dest->difficulty = src->difficulty;
+ dest->question_id = src->question_id;
+}
+
+void free_node(MC_MathQuestion* mq) //no, not that freenode.
+{
+ if (!mq)
+ return;
+ MC_FreeFlashcard(&(mq->card) );
+ free(mq);
+}
+
+MC_MathQuestion* allocate_node()
+{
+ MC_MathQuestion* ret = NULL;
+ ret = malloc(sizeof(MC_MathQuestion) );
+ if (!ret)
+ {
+ printf("Could not allocate space for a new node!\n");
+ return NULL;
+ }
+
+ ret->card = MC_AllocateFlashcard();
+ ret->next = ret->previous = NULL;
+
+ return ret;
+}
+
+/*
+The function that does the central dirty work pertaining to flashcard
+creation. Extensible to just about any kind of math problem, perhaps
+with the exception of those with multiple answers, such as "8 + 2 > ?"
+Simply specify how the problem is presented to the user, and the
+answer the game should look for, as strings.
+*/
+MC_FlashCard generate_random_flashcard(void)
+{
+ int num;
+ int length;
+ MC_ProblemType pt;
+ MC_FlashCard ret;
+ static int generate_random_flashcard_id=0;
+
+ generate_random_flashcard_id+=1;
+ DEBUGMSG(debug_mathcards, "Entering generate_random_flashcard()\n");
+ DEBUGMSG(debug_mathcards, "ID is %d\n",generate_random_flashcard_id);
+
+ //choose a problem type
+ do
+ pt = rand() % MC_NUM_PTYPES;
+ while ( (pt == MC_PT_TYPING && !MC_GetOpt(TYPING_PRACTICE_ALLOWED) ) ||
+ (pt == MC_PT_ARITHMETIC && !MC_GetOpt(ADDITION_ALLOWED) &&
+ !MC_GetOpt(SUBTRACTION_ALLOWED) &&
+ !MC_GetOpt(MULTIPLICATION_ALLOWED) &&
+ !MC_GetOpt(DIVISION_ALLOWED) ) ||
+ (pt == MC_PT_COMPARISON && !MC_GetOpt(COMPARISON_ALLOWED) )
+ );
+
+ if (pt == MC_PT_TYPING) //typing practice
+ {
+ DEBUGMSG(debug_mathcards, "Generating typing question\n");
+ ret = MC_AllocateFlashcard();
+ num = rand() % (MC_GetOpt(MAX_TYPING_NUM)-MC_GetOpt(MIN_TYPING_NUM) + 1)
+ + MC_GetOpt(MIN_TYPING_NUM);
+ snprintf(ret.formula_string, MC_FORMULA_LEN, "%d", num);
+ snprintf(ret.answer_string, MC_ANSWER_LEN, "%d", num);
+ ret.answer = num;
+ ret.difficulty = 10;
+ ret.question_id=generate_random_flashcard_id;
+ }
+ else //if (pt == MC_PT_ARITHMETIC)
+ {
+ DEBUGMSG(debug_mathcards, "Generating arithmetic question");
+ length = rand() % (MC_GetOpt(MAX_FORMULA_NUMS) -
+ MC_GetOpt(MIN_FORMULA_NUMS) + 1) //avoid div by 0
+ + MC_GetOpt(MIN_FORMULA_NUMS);
+ DEBUGMSG(debug_mathcards, " of length %d", length);
+ ret = generate_random_ooo_card_of_length(length, 1);
+
+ if (debug_status & debug_mathcards) {
+ print_card(ret);
+ }
+ }
+ //TODO comparison problems (e.g. "6 ? 9", "<")
+
+ DEBUGMSG(debug_mathcards, "Exiting generate_random_flashcard()\n");
+
+ return ret;
+}
+
+/*
+Recursively generate an order of operations problem. Hopefully this won't
+raise performance issues. Difficulty is calculated based on the length of
+the formula and on the operators used. Problems have a 'base' difficulty of
+1 for binary operations, 3 for 3 numbers, 6, 10, etc. Each operator adds to
+the score: 0, 1, 2, and 3 respectively for addition, subtraction,
+multiplication and division.If reformat is 0, FORMAT_ANS_LAST will be used,
+otherwise a format is chosen at random.
+*/
+
+/* FIXME we should consider rewriting this - it currently generates some
+questions with indeterminate answers (e.g. ? * 0 = 0) that seem to be
+impossible to prevent using the current scheme with recursive string
+operations.
+*/
+
+MC_FlashCard generate_random_ooo_card_of_length(int length, int reformat)
+{
+ int format = 0;
+ int r1 = 0;
+ int r2 = 0;
+ int ans = 0;
+ char tempstr[MC_FORMULA_LEN];
+ MC_FlashCard ret;
+ MC_Operation op;
+
+ id += 1;
+ DEBUGMSG(debug_mathcards, ".");
+ if (length > MAX_FORMULA_NUMS)
+ return DEFAULT_CARD;
+ if (length <= 2)
+ {
+ DEBUGMSG(debug_mathcards, "\n");
+ ret = MC_AllocateFlashcard();
+ for (op = rand() % MC_NUM_OPERS; //pick a random operation
+ MC_GetOpt(op + ADDITION_ALLOWED) == 0; //make sure it's allowed
+ op = rand() % MC_NUM_OPERS);
+
+ DEBUGMSG(debug_mathcards, "Operation is %c\n", operchars[op]);
+ /*
+ if (op == MC_OPER_ADD)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_AUGEND] - math_opts->iopts[MIN_AUGEND] + 1) + math_opts->iopts[MIN_AUGEND];
+ r2 = rand() % (math_opts->iopts[MAX_ADDEND] - math_opts->iopts[MIN_ADDEND] + 1) + math_opts->iopts[MIN_ADDEND];
+ ans = r1 + r2;
+ }
+ else if (op == MC_OPER_SUB)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_MINUEND] - math_opts->iopts[MIN_MINUEND] + 1) + math_opts->iopts[MIN_MINUEND];
+ r2 = rand() % (math_opts->iopts[MAX_SUBTRAHEND] - math_opts->iopts[MIN_SUBTRAHEND] + 1) + math_opts->iopts[MIN_SUBTRAHEND];
+ ans = r1 - r2;
+ }
+ else if (op == MC_OPER_MULT)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_MULTIPLIER] - math_opts->iopts[MIN_MULTIPLIER] + 1) + math_opts->iopts[MIN_MULTIPLIER];
+ r2 = rand() % (math_opts->iopts[MAX_MULTIPLICAND] - math_opts->iopts[MIN_MULTIPLICAND] + 1) + math_opts->iopts[MIN_MULTIPLICAND];
+ ans = r1 * r2;
+ }
+ else if (op == MC_OPER_DIV)
+ {
+ ans = rand() % (math_opts->iopts[MAX_QUOTIENT] - math_opts->iopts[MIN_QUOTIENT] + 1) + math_opts->iopts[MIN_QUOTIENT];
+ r2 = rand() % (math_opts->iopts[MAX_DIVISOR] - math_opts->iopts[MIN_DIVISOR] + 1) + math_opts->iopts[MIN_DIVISOR];
+ if (r2 == 0)
+ r2 = 1;
+ r1 = ans * r2;
+ }
+ */
+ if (op > MC_OPER_DIV || op < MC_OPER_ADD)
+ {
+ DEBUGMSG(debug_mathcards, "Invalid operator: value %d\n", op);
+ return DEFAULT_CARD;
+ }
+ //choose two numbers in the proper range and get their result
+
+ else do
+ {
+ r1 = rand() % (math_opts->iopts[MAX_AUGEND+4*op] - math_opts->iopts[MIN_AUGEND+4*op] + 1) + math_opts->iopts[MIN_AUGEND+4*op];
+ r2 = rand() % (math_opts->iopts[MAX_ADDEND+4*op] - math_opts->iopts[MIN_ADDEND+4*op] + 1) + math_opts->iopts[MIN_ADDEND+4*op];
+
+ if (op == MC_OPER_ADD)
+ ans = r1 + r2;
+ if (op == MC_OPER_SUB)
+ ans = r1 - r2;
+ if (op == MC_OPER_MULT)
+ ans = r1 * r2;
+ if (op == MC_OPER_DIV)
+ {
+ if (r2 == 0)
+ r2 = 1;
+ ret.difficulty = r1;
+ r1 *= r2;
+ ans = ret.difficulty;
+ }
+ } while ( (ans < 0 && !MC_GetOpt(ALLOW_NEGATIVES)) || ans > MC_GetOpt(MAX_ANSWER) );
+
+
+ DEBUGMSG(debug_mathcards, "Constructing answer_string\n");
+ snprintf(ret.answer_string, MC_ANSWER_LEN, "%d", ans);
+ DEBUGMSG(debug_mathcards, "Constructing formula_string\n");
+ snprintf(ret.formula_string, MC_FORMULA_LEN, "%d %c %d",
+ r1, operchars[op], r2);
+ ret.answer = ans;
+ DEBUGMSG(debug_mathcards, "int answer is %d\n", ret.answer);
+ ret.difficulty = op + 1;
+
+ }
+ else //recurse
+ {
+ ret = generate_random_ooo_card_of_length(length - 1, 0);
+
+ if (strchr(ret.formula_string, '+') || strchr(ret.formula_string, '-') )
+ {
+ //if the expression has addition or subtraction, we can't assume that
+ //introducing multiplication or division will produce a predictable
+ //result, so we'll limit ourselves to more addition/subtraction
+ for (op = rand() % 2 ? MC_OPER_ADD : MC_OPER_SUB;
+ MC_GetOpt(op + ADDITION_ALLOWED) == 0;
+ op = rand() % 2 ? MC_OPER_ADD : MC_OPER_SUB);
+
+ }
+ else
+ {
+ //the existing expression can be treated as a number in itself, so we
+ //can do anything to it and be confident of the result.
+ for (op = rand() % MC_NUM_OPERS; //pick a random operation
+ MC_GetOpt(op + ADDITION_ALLOWED) == 0; //make sure it's allowed
+ op = rand() % MC_NUM_OPERS);
+ }
+ DEBUGMSG(debug_mathcards, "Next operation is %c,", operchars[op]);
+
+ //pick the next operand
+ if (op == MC_OPER_ADD)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_AUGEND] - math_opts->iopts[MIN_AUGEND] + 1) + math_opts->iopts[MIN_AUGEND];
+ ret.answer += r1;
+ }
+ else if (op == MC_OPER_SUB)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_SUBTRAHEND] - math_opts->iopts[MIN_SUBTRAHEND] + 1) + math_opts->iopts[MIN_SUBTRAHEND];
+ ret.answer -= r1;
+ }
+ else if (op == MC_OPER_MULT)
+ {
+ r1 = rand() % (math_opts->iopts[MAX_MULTIPLICAND] - math_opts->iopts[MIN_MULTIPLICAND] + 1) + math_opts->iopts[MIN_AUGEND];
+ ret.answer *= r1;
+ }
+ else if (op == MC_OPER_DIV)
+ {
+ r1 = find_divisor(ret.answer);
+ ret.answer /= r1;
+ }
+ else
+ {
+ ; //invalid operator
+ }
+ DEBUGMSG(debug_mathcards, " operand is %d\n", r1);
+ DEBUGMSG(debug_mathcards, "Answer: %d\n", ret.answer);
+
+ //next append or prepend the new number (might need optimization)
+ if (op == MC_OPER_SUB || op == MC_OPER_DIV || //noncommutative, append only
+ rand() % 2)
+ {
+ snprintf(tempstr, MC_FORMULA_LEN, "%s %c %d", //append
+ ret.formula_string, operchars[op], r1);
+ strncpy(ret.formula_string, tempstr, MC_FORMULA_LEN);
+ }
+ else //we're prepending
+ {
+ snprintf(tempstr, MC_FORMULA_LEN, "%d %c %s", //append
+ r1, operchars[op], ret.formula_string);
+ strncpy(ret.formula_string, tempstr, MC_FORMULA_LEN);
+ }
+
+ //finally update the answer and score
+ snprintf(ret.answer_string, MC_ANSWER_LEN, "%d", ret.answer);
+ ret.difficulty += (length - 1) + op;
+ }
+
+ if (reformat)
+ {
+ DEBUGMSG(debug_mathcards, "Reformatting...\n");
+ do {
+ format = rand() % MC_NUM_FORMATS;
+ } while (!MC_GetOpt(FORMAT_ANSWER_LAST + format) &&
+ !MC_GetOpt(FORMAT_ADD_ANSWER_LAST + op * 3 + format) );
+
+ strncat(ret.formula_string, " = ?", MC_FORMULA_LEN - strlen(ret.formula_string) );
+ DEBUGMSG(debug_mathcards, "Formula_string: %s\n", ret.formula_string);
+ reformat_arithmetic(&ret, format );
+ }
+ ret.question_id = id;
+
+ DEBUGMSG(debug_mathcards, "At end of generate_rand_ooo_card_of_length():\n");
+ print_card(ret);
+
+ return ret;
+}
+
+
+
+MC_MathQuestion* generate_list(void)
+{
+ int i, j;
+ int length = MC_GetOpt(AVG_LIST_LENGTH);
+ int cl; //raw length
+ double r1, r2, delta, var; //randomizers for list length
+ MC_MathQuestion* list = NULL;
+ MC_MathQuestion* end_of_list = NULL;
+ MC_MathQuestion* tnode = NULL;
+
+ if (debug_status & debug_mathcards)
+ MC_PrintMathOptions(stdout, 0);
+
+ if (!(MC_GetOpt(ARITHMETIC_ALLOWED) ||
+ MC_GetOpt(TYPING_PRACTICE_ALLOWED) ||
+ MC_GetOpt(COMPARISON_ALLOWED) ) )
+ return NULL;
+
+ //randomize list length by a "bell curve" centered on average
+ if (length && MC_GetOpt(VARY_LIST_LENGTH) )
+ {
+ r1 = (double)rand() / RAND_MAX / 2 + 0.5; //interval (0, 1)
+ r2 = (double)rand() / RAND_MAX / 2 + 0.5; //interval (0, 1)
+ DEBUGMSG(debug_mathcards, "Randoms chosen: %5f, %5f\n", r1, r2);
+ delta = sqrt(-2 * log(r1) ) * cos(2 * PI_VAL * r2); //standard normal dist.
+ var = length / 10.0; //variance
+ delta = delta * var;
+ DEBUGMSG(debug_mathcards, "Delta of average is %5f\n", delta);
+ length += delta;
+ if (length < 0)
+ length = 1; //just in case...
+ }
+
+ if (MC_GetOpt(COMPREHENSIVE)) //generate all
+ {
+ int num_valid_questions; //How many questions the COMPREHENSIVE list specifies
+ int cycles_needed; //How many times we need to generate it to get enough
+
+ num_valid_questions = calc_num_valid_questions();
+ if(num_valid_questions == 0)
+ {
+ fprintf(stderr, "generate_list() - no valid questions\n");
+ return NULL;
+ }
+
+ cycles_needed = length/num_valid_questions;
+
+ if((cycles_needed * num_valid_questions) < length)
+ cycles_needed++;
+
+ DEBUGMSG(debug_mathcards, "In generate_list() - COMPREHENSIVE method requested\n");
+ DEBUGMSG(debug_mathcards, "num_valid_questions = %d\t cycles_needed = %d\n",
+ num_valid_questions, cycles_needed);
+
+ for (i = MC_PT_TYPING; i < MC_NUM_PTYPES; ++i)
+ {
+ if (!MC_GetOpt(i + TYPING_PRACTICE_ALLOWED))
+ continue;
+ for (j = 0; j < cycles_needed; j++)
+ list = add_all_valid(i, list, &end_of_list);
+ }
+
+
+ if (MC_GetOpt(RANDOMIZE) )
+ {
+ DEBUGMSG(debug_mathcards, "Randomizing list\n");
+ randomize_list(&list);
+ }
+
+ if (length)
+ {
+ cl = list_length(list);
+ // NOTE this should no longer happen - we run the COMPREHENSIVE
+ // generation until we have enough questions.
+ if (length > cl) //if not enough questions, pad out with randoms
+ {
+ DEBUGMSG(debug_mathcards, "Padding out list from %d to %d questions\n", cl, length);
+ for (i = cl; i < length; ++i)
+ {
+ tnode = malloc(sizeof(MC_MathQuestion) );
+ if(!tnode)
+ {
+ fprintf(stderr, "In generate_list() - allocation failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ tnode->card = generate_random_flashcard();
+ list = insert_node(list, end_of_list, tnode);
+ end_of_list = tnode;
+// DEBUGMSG(debug_mathcards, "%d.", list_length(list) );
+ }
+ }
+ else if (length < cl) //if too many questions, chop off tail end of list
+ {
+ DEBUGMSG(debug_mathcards, "Cutting list to %d questions\n", length);
+ end_of_list = find_node(list, length);
+ delete_list(end_of_list->next);
+ end_of_list->next = NULL;
+ }
+ }
+ }
+
+ /* Here we are just generating random questions, one at a */
+ /* time until we have enough */
+ /* NOTE generate_random_flashcard() has some bugs, so only */
+ /* use this method if we need multiple operand questions */
+ else
+ {
+ DEBUGMSG(debug_mathcards, "In generate_list() - COMPREHENSIVE method NOT requested\n");
+
+ for (i = 0; i < length; ++i)
+ {
+ tnode = malloc(sizeof(MC_MathQuestion) );
+ if(!tnode)
+ {
+ fprintf(stderr, "In generate_list() - allocation failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ tnode->card = generate_random_flashcard();
+ list = insert_node(list, end_of_list, tnode);
+ end_of_list = tnode;
+ }
+ }
+ /* Now just put the question_id values in: */
+
+ {
+ int i = 1;
+ MC_MathQuestion* ptr = list;
+ while(ptr->next)
+ {
+ ptr->card.question_id = i;
+ ptr = ptr->next;
+ i++;
+ }
+ }
+
+ return list;
+}
+
+/* NOTE - returns 0 (i.e. "false") if *identical*, and */
+/* 1 (i.e. "true") if *different* - counterintuitive, */
+/* but same behavior as e.g. strcmp() */
+
+static int compare_card(const MC_FlashCard* a, const MC_FlashCard* b)
+{
+ if (strncmp(a->formula_string, b->formula_string, MC_FORMULA_LEN) )
+ return 1;
+ if (strncmp(a->answer_string, b->answer_string, MC_ANSWER_LEN) )
+ return 1;
+ if (a->answer != b->answer);
+ return 1;
+
+ return 0; //the cards are identical
+}
+
+/* Public functions */
+
+/* allocate space for an MC_Flashcard */
+MC_FlashCard MC_AllocateFlashcard(void)
+{
+ MC_FlashCard ret;
+
+//NOTE strings now simply hard-coded to MC_FORMULA_LEN (= 40) and
+//MC_ANSWER_LEN (= 5) instead of tailoring them to save a few bytes - DSB
+// DEBUGMSG(debug_mathcards, "Allocating %d + %d bytes for flashcard\n",
+// max_formula_size + 1, max_answer_size + 1);
+// ret.formula_string = malloc( (max_formula_size + 1) * sizeof(char));
+// ret.answer_string = malloc( (max_answer_size + 1) * sizeof(char));
+// if (!ret.formula_string || !ret.answer_string)
+// {
+// free(ret.formula_string);
+// free(ret.answer_string);
+// printf("Couldn't allocate space for a new flashcard!\n");
+// ret = DEFAULT_CARD;
+// }
+ return ret;
+}
+
+//Now a no-op - MC_FlashCard no longer has dynamically allocated strings
+void MC_FreeFlashcard(MC_FlashCard* fc)
+{
+ return;
+// if (!fc)
+// return;
+// // DEBUGMSG(debug_mathcards, "Freeing formula_string\n");
+// if (fc->formula_string)
+// {
+// free(fc->formula_string);
+// fc->formula_string = NULL;
+// }
+// // DEBUGMSG(debug_mathcards, "Freeing answer_string\n");
+// if (fc->answer_string)
+// {
+// free(fc->answer_string);
+// fc->answer_string = NULL;
+// }
+}
+
+unsigned int MC_MapTextToIndex(const char* text)
+{
+ int i;
+ for (i = 0; i < NOPTS; ++i)
+ {
+ if (!strcasecmp(text, MC_OPTION_TEXT[i]) )
+ return i;
+ }
+ DEBUGMSG(debug_mathcards, "'%s' isn't a math option\n", text);
+ return NOT_VALID_OPTION;
+}
+
+
+void MC_SetOpt(unsigned int index, int val)
+{
+ if (index >= NOPTS)
+ {
+ DEBUGMSG(debug_mathcards, "Invalid math option index: %d\n", index);
+ return;
+ }
+
+ /* Do some sanity checks before we throw val into the struct: */
+ switch(index)
+ {
+ /* All the booleans must be 0 or 1: */
+ case PLAY_THROUGH_LIST:
+ case REPEAT_WRONGS:
+ case ALLOW_NEGATIVES:
+ case FORMAT_ANSWER_LAST:
+ case FORMAT_ANSWER_FIRST:
+ case FORMAT_ANSWER_MIDDLE:
+ case FORMAT_ADD_ANSWER_LAST:
+ case FORMAT_ADD_ANSWER_FIRST:
+ case FORMAT_ADD_ANSWER_MIDDLE:
+ case FORMAT_SUB_ANSWER_LAST:
+ case FORMAT_SUB_ANSWER_FIRST:
+ case FORMAT_SUB_ANSWER_MIDDLE:
+ case FORMAT_MULT_ANSWER_LAST:
+ case FORMAT_MULT_ANSWER_FIRST:
+ case FORMAT_MULT_ANSWER_MIDDLE:
+ case FORMAT_DIV_ANSWER_LAST:
+ case FORMAT_DIV_ANSWER_FIRST:
+ case FORMAT_DIV_ANSWER_MIDDLE:
+ case ADDITION_ALLOWED:
+ case SUBTRACTION_ALLOWED:
+ case MULTIPLICATION_ALLOWED:
+ case DIVISION_ALLOWED:
+ case TYPING_PRACTICE_ALLOWED:
+ case ARITHMETIC_ALLOWED:
+ case COMPARISON_ALLOWED:
+ case RANDOMIZE:
+ case COMPREHENSIVE:
+ case VARY_LIST_LENGTH:
+ {
+ /* Reset all non-zero values to one: */
+ if(val)
+ {
+ if(val != 1)
+ {
+ fprintf(stderr, "Warning - parameter %s with invalid value %d, "
+ "resetting to 1\n", MC_OPTION_TEXT[index], val);
+ val = 1;
+ }
+ }
+ break;
+ }
+
+ /* Parameters concerning numbers of questions */
+ /* must be greater than or equal to zero: */
+ /* TODO some additional checks would make sense */
+ case QUESTION_COPIES:
+ case COPIES_REPEATED_WRONGS:
+ case MAX_QUESTIONS:
+ case MAX_FORMULA_NUMS:
+ case MIN_FORMULA_NUMS:
+ case AVG_LIST_LENGTH:
+ {
+ /* Reset all negative values to zero: */
+ if(val < 0)
+ {
+ fprintf(stderr, "Warning - parameter %s with invalid value %d, "
+ "resetting to 0\n", MC_OPTION_TEXT[index], val);
+ val = 0;
+ }
+ break;
+ }
+
+ /* Operand values - make sure they are in displayable range */
+ /* i.e. -999 to 999 */
+ case MAX_ANSWER:
+ case MIN_AUGEND:
+ case MAX_AUGEND:
+ case MIN_ADDEND:
+ case MAX_ADDEND:
+ case MIN_MINUEND:
+ case MAX_MINUEND:
+ case MIN_SUBTRAHEND:
+ case MAX_SUBTRAHEND:
+ case MIN_MULTIPLIER:
+ case MAX_MULTIPLIER:
+ case MIN_MULTIPLICAND:
+ case MAX_MULTIPLICAND:
+ case MIN_DIVISOR:
+ case MAX_DIVISOR:
+ case MIN_QUOTIENT:
+ case MAX_QUOTIENT:
+ case MIN_TYPING_NUM:
+ case MAX_TYPING_NUM:
+ case MIN_COMPARATOR:
+ case MAX_COMPARATOR:
+ case MIN_COMPARISAND:
+ case MAX_COMPARISAND:
+ {
+ if(val > MC_GLOBAL_MAX)
+ {
+ fprintf(stderr, "Warning - parameter %s with invalid value %d, "
+ "resetting to %d\n", MC_OPTION_TEXT[index],
+ val, MC_GLOBAL_MAX);
+ val = MC_GLOBAL_MAX;
+ }
+
+ if(val < (0 - MC_GLOBAL_MAX))
+ {
+ fprintf(stderr, "Warning - parameter %s with invalid value %d, "
+ "resetting to %d\n", MC_OPTION_TEXT[index],
+ val, (0 - MC_GLOBAL_MAX));
+ val = (0 - MC_GLOBAL_MAX);
+ }
+
+ break;
+ }
+
+ default:
+ fprintf(stderr, "Warning - in MC_SetOpt() - unrecognized index %d\n",
+ index);
+ }
+ /* Should now be safe to put "sanitized" value into struct: */
+ math_opts->iopts[index] = val;
+}
+
+int MC_GetOpt(unsigned int index)
+{
+ if (index >= NOPTS)
+ {
+ DEBUGMSG(debug_mathcards, "Invalid option index: %d\n", index);
+ return MC_MATH_OPTS_INVALID;
+ }
+ if (!math_opts)
+ {
+ printf("Invalid options list!\n");
+ return MC_MATH_OPTS_INVALID;
+ }
+ return math_opts->iopts[index];
+}
+
+int MC_VerifyOptionListSane(void)
+{
+ return strcmp(MC_OPTION_TEXT[NOPTS], "END_OF_OPTS") == 0;
+}
+
+int MC_MaxFormulaSize(void)
+{
+ return MC_FORMULA_LEN;
+}
+
+int MC_MaxAnswerSize(void)
+{
+ return MC_ANSWER_LEN;
+}
+
+void MC_ResetFlashCard(MC_FlashCard* fc)
+{
+ if (!fc || !fc->formula_string || !fc->answer_string)
+ return;
+ fc->formula_string[0] = '\0';
+ fc->answer_string[0] = '\0';
+ fc->answer = -9999;
+ fc->difficulty = 0;
+ fc->question_id = -1;
+}
+
+int MC_FlashCardGood(const MC_FlashCard* fc)
+{
+ return fc && fc->formula_string && fc->answer_string;
+}
+
+int find_divisor(int a)
+{
+ int div = 1; //the divisor to return
+ int realisticpasses = 3; //reasonable time after which a minimum should be met
+ int i;
+ do
+ for (i = 0; i < NPRIMES; ++i) //test each prime
+ if (a % smallprimes[i] == 0) //if it is a prime factor,
+ if (rand() % (i + 1) == 0) //maybe we'll keep it
+ if (div * smallprimes[i] <= MC_GetOpt(MAX_DIVISOR) ) //if we can,
+ div *= smallprimes[i]; //update our real divisor
+ //keep going if the divisor is too small
+ while (div < MC_GetOpt(MIN_DIVISOR) && --realisticpasses);
+
+ return div;
+}
+
+
+//Computes (approximately) the number of questions that will be returned
+//by add_all_valid() as specified by the current options. This does not
+//take into account screening out of invalid questions, such
+//as divide-by-zero and questions like "0 x ? = 0".
+static int calc_num_valid_questions(void)
+{
+ int total_questions = 0;
+ int k = 0;
+ //First add the number of typing questions
+ if (MC_GetOpt(TYPING_PRACTICE_ALLOWED))
+ total_questions += (MC_GetOpt(MAX_TYPING_NUM) - MC_GetOpt(MIN_TYPING_NUM));
+
+ //Now add how many questions we will have for each operation:
+ for (k = MC_OPER_ADD; k < MC_NUM_OPERS; ++k)
+ {
+ int num_this_oper = 0;
+ int formats_this_oper = 0;
+
+ if (!MC_GetOpt(k + ADDITION_ALLOWED) )
+ continue;
+
+ //calculate number of ordered pairs of first and second operands:
+ //note the "+ 1" is due to the ranges being inclusive
+ num_this_oper = (MC_GetOpt(MAX_AUGEND + 4 * k) - MC_GetOpt(MIN_AUGEND + 4 * k) + 1)
+ *
+ (MC_GetOpt(MAX_ADDEND + 4 * k) - MC_GetOpt(MIN_ADDEND + 4 * k) + 1);
+ //check what formats are allowed
+ if (MC_GetOpt(FORMAT_ANSWER_LAST) && MC_GetOpt(FORMAT_ADD_ANSWER_LAST + k * 3))
+ formats_this_oper++;
+ if (MC_GetOpt(FORMAT_ANSWER_FIRST) && MC_GetOpt(FORMAT_ADD_ANSWER_FIRST + k * 3))
+ formats_this_oper++;
+ if (MC_GetOpt(FORMAT_ANSWER_MIDDLE) && MC_GetOpt(FORMAT_ADD_ANSWER_MIDDLE + k * 3))
+ formats_this_oper++;
+ //Get total of e.g. addition questions:
+ num_this_oper *= formats_this_oper;
+ //add to overall total:
+ total_questions += num_this_oper;
+ }
+
+ //TODO will also need to count up the COMPARISON questions once
+ //they are implemented
+ {
+ }
+
+ DEBUGMSG(debug_mathcards, "calc_num_valid_questions():\t%d\n", total_questions);
+ return total_questions;
+}
+
+
+
+
+//NOTE end_of_list** needs to be doubly indirect because otherwise the end does not
+//get updated in the calling code
+//NOTE the difficulty is set as add = 1, sub = 2, mult = 3, div = 4, plus a 2 point
+//bonus if the format is a "missing number".
+MC_MathQuestion* add_all_valid(MC_ProblemType pt,
+ MC_MathQuestion* list,
+ MC_MathQuestion** end_of_list)
+{
+ int i, j;
+ int ans = 0, tmp;
+ MC_Operation k;
+ MC_MathQuestion* tnode;
+
+ DEBUGMSG(debug_mathcards, "Entering add_all_valid(%d)\n", pt);
+ DEBUGMSG(debug_mathcards, "List already has %d questions\n", list_length(list));
+
+ //make sure this problem type is actually allowed
+ if (!MC_GetOpt(pt + TYPING_PRACTICE_ALLOWED) )
+ return list;
+
+ //add all typing questions in range
+ if (pt == MC_PT_TYPING)
+ {
+ DEBUGMSG(debug_mathcards, "Adding typing...\n");
+ for (i = MC_GetOpt(MIN_TYPING_NUM); i <= MC_GetOpt(MAX_TYPING_NUM); ++i)
+ {
+ DEBUGMSG(debug_mathcards, "(%d)\n", i);
+ tnode = allocate_node();
+ if(!tnode)
+ {
+ fprintf(stderr, "In add_all_valid() - allocate_node() failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ snprintf(tnode->card.formula_string, MC_FORMULA_LEN, "%d", i);
+ snprintf(tnode->card.answer_string, MC_ANSWER_LEN, "%d", i);
+ tnode->card.answer = i;
+ tnode->card.difficulty = 1;
+ list = insert_node(list, *end_of_list, tnode);
+ *end_of_list = tnode;
+ }
+ }
+
+ //add all allowed arithmetic questions
+ else if (MC_PT_ARITHMETIC)
+ {
+ DEBUGMSG(debug_mathcards, "Adding arithmetic...\n");
+
+ // The k loop iterates through the four arithmetic operations:
+ // k = 0 means addition
+ // k = 1 means subtraction
+ // k = 2 means multiplication
+ // k = 3 means division
+ for (k = MC_OPER_ADD; k < MC_NUM_OPERS; ++k)
+ {
+ if (!MC_GetOpt(k + ADDITION_ALLOWED) )
+ continue;
+ DEBUGMSG(debug_mathcards, "\n*%d*\n", k);
+
+ // The i loop iterates through the first value in the question:
+ for (i = MC_GetOpt(MIN_AUGEND + 4 * k); i <= MC_GetOpt(MAX_AUGEND + 4 * k); ++i)
+ {
+ DEBUGMSG(debug_mathcards, "\n%d:\n", i);
+
+ // The j loop iterates through the second value in the question:
+ for (j = MC_GetOpt(MIN_ADDEND + 4 * k); j <= MC_GetOpt(MAX_ADDEND + 4 * k); ++j)
+ {
+ // Generate the third number according to the operation.
+ // Although it is called "ans", it will not be the actual
+ // answer if it is a "missing number" type problem
+ // (e.g. "3 x ? = 12")
+ // We also filter out invalid questions here
+ switch (k)
+ {
+ case MC_OPER_ADD:
+ {
+ ans = i + j;
+ // throw anything over MAX_ANSWER
+ if (ans > MC_GetOpt(MAX_ANSWER))
+ continue;
+ break;
+ }
+ case MC_OPER_SUB:
+ {
+ ans = i - j;
+ // throw out negatives if they aren't allowed:
+ if (ans < 0 && !MC_GetOpt(ALLOW_NEGATIVES))
+ continue;
+ // throw anything over MAX_ANSWER
+ if (ans > MC_GetOpt(MAX_ANSWER))
+ continue;
+ break;
+ }
+ case MC_OPER_MULT:
+ {
+ ans = i * j;
+ // throw anything over MAX_ANSWER
+ if (ans > MC_GetOpt(MAX_ANSWER))
+ continue;
+ break;
+ }
+ case MC_OPER_DIV:
+ {
+ // throw anything over MAX_ANSWER
+ if (i * j > MC_GetOpt(MAX_ANSWER))
+ continue;
+
+ tmp = i;
+ i *= j;
+ ans = j;
+ j = tmp;
+ break;
+ }
+ default:
+ fprintf(stderr, "Unrecognized operation type: %d\n", k);
+ continue;
+ }
+
+ DEBUGMSG(debug_mathcards, "Generating: %d %c %d = %d\n", i, operchars[k], j, ans);
+
+ //add each format, provided it's allowed in general and for this op
+
+ // Questions like "a + b = ?"
+ if (MC_GetOpt(FORMAT_ANSWER_LAST) && MC_GetOpt(FORMAT_ADD_ANSWER_LAST + k * 3))
+ {
+ // Avoid division by zero:
+ if (k == MC_OPER_DIV && j == 0)
+ {
+ // need to restore i and j to original values so loop works:
+ j = ans;
+ i = tmp;
+ continue;
+ }
+
+ tnode = allocate_node();
+ if(!tnode)
+ {
+ fprintf(stderr, "In add_all_valid() - allocate_node() failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ snprintf(tnode->card.answer_string, MC_ANSWER_LEN, "%d", ans);
+ snprintf(tnode->card.formula_string, MC_FORMULA_LEN,
+ "%d %c %d = ?", i, operchars[k], j);
+ tnode->card.difficulty = k + 1;
+ tnode->card.answer = ans;
+ list = insert_node(list, *end_of_list, tnode);
+ *end_of_list = tnode;
+ }
+
+
+ // Questions like "? + b = c"
+ if (MC_GetOpt(FORMAT_ANSWER_FIRST) && MC_GetOpt(FORMAT_ADD_ANSWER_FIRST + k * 3) )
+ {
+ // Avoid questions with indeterminate answer:
+ // e.g. "? x 0 = 0"
+ if (k == MC_OPER_MULT && j == 0)
+ {
+ continue;
+ }
+ // Avoid division by zero:
+ if (k == MC_OPER_DIV && j == 0)
+ {
+ // need to restore i and j to original values so loop works:
+ j = ans;
+ i = tmp;
+ continue;
+ }
+
+ tnode = allocate_node();
+ if(!tnode)
+ {
+ fprintf(stderr, "In add_all_valid() - allocate_node() failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ snprintf(tnode->card.answer_string, MC_ANSWER_LEN, "%d", i);
+ snprintf(tnode->card.formula_string, MC_FORMULA_LEN,
+ "? %c %d = %d", operchars[k], j, ans);
+ tnode->card.answer = ans;
+ tnode->card.difficulty = k + 3;
+ list = insert_node(list, *end_of_list, tnode);
+ *end_of_list = tnode;
+ }
+
+
+ // Questions like "a + ? = c"
+ if (MC_GetOpt(FORMAT_ANSWER_MIDDLE) && MC_GetOpt(FORMAT_ADD_ANSWER_MIDDLE + k * 3))
+ {
+ // Avoid questions with indeterminate answer:
+ // e.g. "0 x ? = 0"
+ if (k == MC_OPER_MULT && i == 0)
+ continue;
+
+ // e.g. "0 / ? = 0"
+ if (k == MC_OPER_DIV && i == 0)
+ {
+ // need to restore i and j to original values so loop works:
+ j = ans;
+ i = tmp;
+ continue;
+ }
+
+ tnode = allocate_node();
+ if(!tnode)
+ {
+ fprintf(stderr, "In add_all_valid() - allocate_node() failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ snprintf(tnode->card.answer_string, MC_ANSWER_LEN, "%d", j);
+ snprintf(tnode->card.formula_string, MC_FORMULA_LEN,
+ "%d %c ? = %d", i, operchars[k], ans);
+ tnode->card.answer = ans;
+ tnode->card.difficulty = k + 3;
+ list = insert_node(list, *end_of_list, tnode);
+ *end_of_list = tnode;
+ }
+ //If we divided, reset i and j so loop works correctly
+ if (k == MC_OPER_DIV)
+ {
+ j = ans;
+ i = tmp;
+ DEBUGMSG(debug_mathcards, "resetting to %d %d\n", j, i);
+ }
+ }
+ }
+ }
+ }
+ //add all comparison questions (TODO implement them!)
+ else if (pt == MC_PT_COMPARISON)
+ {
+ for (i = MC_GetOpt(MIN_COMPARATOR); i < MC_GetOpt(MAX_COMPARATOR); ++i)
+ {
+ for (j = MC_GetOpt(MIN_COMPARISAND); j < MC_GetOpt(MAX_COMPARISAND); ++j)
+ {
+ tnode = allocate_node();
+ if(!tnode)
+ {
+ fprintf(stderr, "In add_all_valid() - allocate_node() failed!\n");
+ delete_list(list);
+ return NULL;
+ }
+
+ snprintf(tnode->card.formula_string, MC_FORMULA_LEN, "%d ? %d", i,j);
+ snprintf(tnode->card.answer_string, MC_ANSWER_LEN,
+ i < j ? "<" :
+ i > j ? ">" :
+ "=");
+ tnode->card.difficulty = 1;
+ list = insert_node(list, *end_of_list, tnode);
+ *end_of_list = tnode;
+ }
+ }
+ }
+ DEBUGMSG(debug_mathcards, "Exiting add_all_valid()\n");
+ DEBUGMSG(debug_mathcards, "List now has %d questions\n\n", list_length(list));
+
+ return list;
+}
+
+MC_MathQuestion* find_node(MC_MathQuestion* list, int num)
+{
+ while (--num > 0 && list)
+ list = list->next;
+ return list;
+}
+
+void reformat_arithmetic(MC_FlashCard* card, MC_Format f)
+{
+ int i, j;
+ char* beg = 0;
+ char* end = 0;
+ char nans[MC_ANSWER_LEN];
+ char nformula[MC_FORMULA_LEN + MC_ANSWER_LEN + 1]; //gets a bit larger than usual in the meantime
+
+ {
+ DEBUGMSG(debug_mathcards, "Starting formula: %s\n", card->formula_string);
+ //insert old answer where question mark was
+ for (i = 0, j = 0; card->formula_string[j] != '?'; ++i, ++j)
+ nformula[i] = card->formula_string[j];
+ i += snprintf(nformula + i, MC_ANSWER_LEN, "%s", card->answer_string);
+ DEBUGMSG(debug_mathcards, "interim formula: %s\n", nformula);
+ snprintf(nformula + i, MC_FORMULA_LEN - i, "%s", card->formula_string + j + 1);
+
+ //replace the new answer with a question mark
+ if (f == MC_FORMAT_ANS_LAST)
+ beg = strrchr(nformula, ' ') + 1;
+ if (f == MC_FORMAT_ANS_FIRST)
+ beg = nformula;
+ if (f == MC_FORMAT_ANS_MIDDLE)
+ beg = strchr(nformula, ' ') + 3;
+ end = strchr(beg + 1, ' ');
+ if (!end)
+ end = "";
+
+ //we now have beg = first digit of number to replace, end = the char after
+ sscanf(beg, "%s", nans);
+ *beg = 0; //sequester the first half of the string
+ snprintf(card->formula_string, MC_FORMULA_LEN, "%s?%s", nformula, end);
+ DEBUGMSG(debug_mathcards, "New formula: %s\n", card->formula_string);
+ snprintf(card->answer_string, MC_ANSWER_LEN, "%s", nans);
+ card->answer = atoi(card->answer_string);
+ }
+}
+
+static int calc_score(int difficulty, float t)
+{
+ if (t < 0 || difficulty < 1)
+ return 0;
+ return (difficulty * SCORE_COEFFICIENT)/t;
+}
diff --git a/src/mathcards.h b/src/mathcards.h
new file mode 100644
index 0000000..368d1ea
--- /dev/null
+++ b/src/mathcards.h
@@ -0,0 +1,280 @@
+/*
+
+ mathcards.h
+
+ Description: contains headers for a flashcard-type math game.
+ This is a sort of interface-independent backend that could be used with a different
+ user interface. Developed as an enhancement to Bill Kendrick's "Tux of Math Command"
+ (aka tuxmath). If tuxmath were a C++ program, this would be a C++ class.
+
+ Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2006
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+
+
+#ifndef MATHCARDS_H
+#define MATHCARDS_H
+
+#include "transtruct.h"
+
+
+/* different classes of problems TuxMath will ask */
+typedef enum _MC_ProblemType {
+ MC_PT_TYPING,
+ MC_PT_ARITHMETIC,
+ MC_PT_COMPARISON,
+ MC_NUM_PTYPES
+} MC_ProblemType;
+
+/* type of math operation used in an arithmetic question */
+typedef enum _MC_Operation {
+ MC_OPER_ADD,
+ MC_OPER_SUB,
+ MC_OPER_MULT,
+ MC_OPER_DIV,
+ MC_NUM_OPERS
+} MC_Operation;
+
+/* math question formats: */
+typedef enum _MC_Format {
+ MC_FORMAT_ANS_LAST, /* a + b = ? */
+ MC_FORMAT_ANS_FIRST, /* ? + b = c */
+ MC_FORMAT_ANS_MIDDLE, /* a + ? = c */
+ MC_NUM_FORMATS
+} MC_Format;
+
+
+/*
+Indices for the various integer options. These are NOT the actual values!
+Actual values are accessed as such: options.iopts[PLAY_THROUGH_LIST] = val;
+Creating additional [integral] options is now centralized--it should only
+be necessary to add to this list, the list of text, and the list of
+defaults. (Besides actually using the new options!)
+*/
+enum {
+ NOT_VALID_OPTION = -1 ,
+ PLAY_THROUGH_LIST = 0 , /* play until all questions answered correctly */
+ QUESTION_COPIES , /* # times each question is put in list */
+ REPEAT_WRONGS , /* reuse incorrectly answered questions or not */
+ COPIES_REPEATED_WRONGS , /* how many copies of an incorrectly answered question to re-insert*/
+ ALLOW_NEGATIVES ,
+ MAX_ANSWER ,
+ MAX_QUESTIONS ,
+ MAX_FORMULA_NUMS ,
+ MIN_FORMULA_NUMS ,
+
+ //NOTE: Do _not_ rearrange the FORMAT values because the functions
+ //rely on index arithmetic to iterate through these, and will be
+ //broken if the relative position changes!
+ FORMAT_ANSWER_LAST , /* question format is: a + b = ? */
+ FORMAT_ANSWER_FIRST , /* question format is: ? + b = c */
+ FORMAT_ANSWER_MIDDLE , /* question format is: a + ? = c */
+ FORMAT_ADD_ANSWER_LAST , /* a + b = ? */
+ FORMAT_ADD_ANSWER_FIRST , /* ? + b = c */
+ FORMAT_ADD_ANSWER_MIDDLE , /* a + ? = c */
+ FORMAT_SUB_ANSWER_LAST , /* a - b = ? */
+ FORMAT_SUB_ANSWER_FIRST , /* ? - b = c */
+ FORMAT_SUB_ANSWER_MIDDLE , /* a - ? = c */
+ FORMAT_MULT_ANSWER_LAST , /* a * b = ? */
+ FORMAT_MULT_ANSWER_FIRST , /* ? * b = c */
+ FORMAT_MULT_ANSWER_MIDDLE , /* a * ? = c */
+ FORMAT_DIV_ANSWER_LAST , /* a / b = ? */
+ FORMAT_DIV_ANSWER_FIRST , /* ? / b = c */
+ FORMAT_DIV_ANSWER_MIDDLE , /* a / ? = c */
+
+ ADDITION_ALLOWED ,
+ SUBTRACTION_ALLOWED ,
+ MULTIPLICATION_ALLOWED ,
+ DIVISION_ALLOWED ,
+ TYPING_PRACTICE_ALLOWED ,
+ ARITHMETIC_ALLOWED ,
+ COMPARISON_ALLOWED ,
+
+ MIN_AUGEND , /* augend + addend = sum */
+ MAX_AUGEND ,
+ MIN_ADDEND ,
+ MAX_ADDEND ,
+
+ MIN_MINUEND , /* minuend - subtrahend = difference */
+ MAX_MINUEND ,
+ MIN_SUBTRAHEND ,
+ MAX_SUBTRAHEND ,
+
+ MIN_MULTIPLIER , /* multiplier * multiplicand = product */
+ MAX_MULTIPLIER ,
+ MIN_MULTIPLICAND ,
+ MAX_MULTIPLICAND ,
+
+ MIN_DIVISOR , /* dividend/divisor = quotient */
+ MAX_DIVISOR , /* note - generate_list() will prevent */
+ MIN_QUOTIENT , /* questions with division by zero. */
+ MAX_QUOTIENT ,
+
+ MIN_TYPING_NUM , /* range for "typing tutor" mode, for */
+ MAX_TYPING_NUM , /* kids just learning to use keyboard. */
+
+ MIN_COMPARATOR , /* left comparison operand */
+ MAX_COMPARATOR ,
+ MIN_COMPARISAND , /* right comparison operannd */
+ MAX_COMPARISAND ,
+
+ RANDOMIZE , /* whether to shuffle cards */
+
+ COMPREHENSIVE , /* whether to generate all questions 'in order' */
+ AVG_LIST_LENGTH , /* the average number of questions in a list */
+ VARY_LIST_LENGTH , /* whether to randomly adjust list length */
+
+ NOPTS
+};
+
+extern const char* const MC_OPTION_TEXT[];
+extern const int MC_DEFAULTS[];
+extern const char operchars[MC_NUM_OPERS];
+
+/* default values for math_options */
+#define MC_MAX_DIGITS 3
+#define MC_GLOBAL_MAX 999 /* This is the largest absolute value that */
+ /* can be entered for math question values.*/
+#define MC_MATH_OPTS_INVALID -9999 /* Return value for accessor functions */
+ /* if math_opts not valid */
+//#define DEFAULT_FRACTION_TO_KEEP 1
+
+
+/* FIXME I think this array-based options system is *much* more error-prone */
+/* and confusing than the old struct with a named field for each option, */
+/* albeit more compact. I think it would be worth the effort to change the */
+/* code back to the old system - DSB */
+typedef struct _MC_Options
+{
+ int iopts[NOPTS];
+} MC_Options;
+
+
+
+/* struct for node in math "flashcard" list */
+typedef struct MC_MathQuestion {
+ MC_FlashCard card;
+ struct MC_MathQuestion* next;
+ struct MC_MathQuestion* previous;
+ int randomizer;
+} MC_MathQuestion;
+
+
+/* "public" function prototypes: these functions are how */
+/* a user interface communicates with MathCards: */
+/* TODO provide comments thoroughly explaining these functions */
+
+/* MC_Initialize() sets up the struct containing all of */
+/* settings regarding math questions. It should be */
+/* called before any other function. Many of the other */
+/* functions will not work properly if MC_Initialize() */
+/* has not been called. It only needs to be called once, */
+/* i.e when the program is starting, not at the beginning*/
+/* of each math game for the player. Returns 1 if */
+/* successful, 0 otherwise. */
+int MC_Initialize(void);
+
+/* MC_StartGame() generates the list of math questions */
+/* based on existing settings. It should be called at */
+/* the beginning of each math game for the player. */
+/* Returns 1 if resultant list contains 1 or more */
+/* questions, 0 if list empty or not generated */
+/* successfully. */
+int MC_StartGame(void);
+
+/* MC_StartGameUsingWrongs() is like MC_StartGame(), */
+/* but uses the incorrectly answered questions from the */
+/* previous game for the question list as a review form */
+/* of learning. If there were no wrong answers (or no */
+/* previous game), it behaves just like MC_StartGame(). */
+/* FIXME wonder if it should generate a message if the */
+/* list is created from settings because there is no */
+/* valid wrong question list? */
+int MC_StartGameUsingWrongs(void);
+
+/* MC_NextQuestion() takes a pointer to an allocated */
+/* MC_MathQuestion struct and fills in the fields for */
+/* use by the user interface program. It basically is */
+/* like taking the next flashcard from the pile. */
+/* Returns 1 if question found, 0 if list empty/invalid */
+/* or if argument pointer is invalid */
+int MC_NextQuestion(MC_FlashCard* q);
+
+/* MC_AnsweredCorrectly() is how the user interface */
+/* tells MathCards that the question has been answered */
+/* correctly, and how long the student took to answer. */
+/* Returns 1 if no errors. */
+int MC_AnsweredCorrectly(int id, float t);
+//int MC_AnsweredCorrectly_id(int id);
+
+/* MC_NotAnsweredCorrectly() is how the user interface */
+/* tells MathCards that the question has not been */
+/* answered correctly. Returns 1 if no errors. */
+int MC_NotAnsweredCorrectly(int id);
+
+/* Like MC_NextQuestion(), but takes "flashcard" from */
+/* pile of incorrectly answered questions. */
+/* Returns 1 if question found, 0 if list empty/invalid */
+int MC_NextWrongQuest(MC_FlashCard* q);
+
+/* Returns 1 if all have been answered correctly, */
+/* 0 otherwise. */
+int MC_MissionAccomplished(void);
+
+/* Returns number of questions left (either in list */
+/* or "in play") */
+int MC_TotalQuestionsLeft(void);
+
+/* Returns questions left in list, NOT */
+/* including questions currently "in play". */
+int MC_ListQuestionsLeft(void);
+
+/* To keep track of how long students take to answer the */
+/* questions, one can report the time needed to answer */
+/* an individual question: */
+int MC_AddTimeToList(float t);
+/* Note that initialization of the list is handled by */
+/* MC_StartGame. */
+
+/* Tells MathCards to clean up - should be called when */
+/* user interface program exits. */
+void MC_EndGame(void);
+
+/* Prints contents of math_opts struct in human-readable */
+/* form to given file. "verbose" tells the function to */
+/* write a lot of descriptive "help"-type info for each */
+/* option (intended to make config files self-documenting).*/
+void MC_PrintMathOptions(FILE* fp, int verbose);
+
+/* Additional functions used to generate game summary files: */
+int MC_PrintQuestionList(FILE* fp);
+int MC_PrintWrongList(FILE* fp);
+int MC_StartingListLength(void);
+int MC_WrongListLength(void);
+int MC_NumAnsweredCorrectly(void);
+int MC_NumNotAnsweredCorrectly(void);
+float MC_MedianTimePerQuestion(void);
+void print_card(MC_FlashCard card);
+
+/********************************************
+Public functions for new mathcards architecture
+*********************************************/
+/* Return the array index of the given text, e.g. randomize->47 */
+unsigned int MC_MapTextToIndex(const char* text);
+void MC_SetOpt(unsigned int index, int val); //set an option
+int MC_GetOpt(unsigned int index); //get an option :)
+int MC_VerifyOptionListSane(void);
+int MC_MaxFormulaSize(void); //amount of memory needed to safely hold strings
+int MC_MaxAnswerSize(void);
+MC_FlashCard MC_AllocateFlashcard();
+void MC_CopyCard(const MC_FlashCard* src, MC_FlashCard* dest);
+void MC_FreeFlashcard(MC_FlashCard* fc);
+void MC_ResetFlashCard(MC_FlashCard* fc); //empty flashcard of strings & values
+int MC_FlashCardGood(const MC_FlashCard* fc); //verifies a flashcard is valid
+/* Reorganize formula_string and answer_string to render the same equation
+ in a different format */
+void reformat_arithmetic(MC_FlashCard* card, MC_Format f);
+
+#endif
diff --git a/src/menu.c b/src/menu.c
new file mode 100644
index 0000000..770a950
--- /dev/null
+++ b/src/menu.c
@@ -0,0 +1,1657 @@
+/*
+ menu.c
+
+ Functions responsible for loading, parsing and displaying game menu.
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Author: Boleslaw Kulbabinski <bkulbabinski at gmail.com>, (C) 2009
+
+ (Functions responsible for running specific activities
+ are moved from titlescreen.c)
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#include "menu.h"
+#include "SDL_extras.h"
+#include "titlescreen.h"
+#include "highscore.h"
+#include "factoroids.h"
+#include "credits.h"
+#include "multiplayer.h"
+#include "mathcards.h"
+#include "campaign.h"
+#include "game.h"
+#include "options.h"
+#include "fileops.h"
+#include "setup.h"
+
+#ifdef HAVE_LIBSDL_NET
+#include "network.h"
+#include "server.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+
+/* create string array of activities' names */
+#define X(name) #name
+char* activities[] = { ACTIVITIES };
+#undef X
+
+/* we may use a few separate menu trees */
+typedef enum {
+ MENU_MAIN,
+ MENU_DIFFICULTY,
+ MENU_LESSONS,
+ MENU_LOGIN,
+ N_OF_MENUS
+} MenuType;
+
+MenuNode* menus[N_OF_MENUS];
+
+/* actions available while viewing the menu */
+enum { NONE, CLICK, PAGEUP, PAGEDOWN, STOP_ESC, RESIZED };
+
+/* stop button, left and right arrow positions do not
+ depend on currently displayed menu */
+SDL_Rect menu_rect, stop_rect, prev_rect, next_rect;
+SDL_Surface *stop_button, *prev_arrow, *next_arrow, *prev_gray, *next_gray;
+
+/*TODO: move these constants into a config file (maybe together with
+ titlescreen paths and rects ? ) */
+const float menu_pos[4] = {0.38, 0.23, 0.55, 0.72};
+const float stop_pos[4] = {0.94, 0.0, 0.06, 0.06};
+const float prev_pos[4] = {0.87, 0.93, 0.06, 0.06};
+const float next_pos[4] = {0.94, 0.93, 0.06, 0.06};
+const char* stop_path = "status/stop.svg";
+const char* prev_path = "status/left.svg";
+const char* next_path = "status/right.svg";
+const char* prev_gray_path = "status/left_gray.svg";
+const char* next_gray_path = "status/right_gray.svg";
+const float button_gap = 0.2, text_h_gap = 0.4, text_w_gap = 0.5, button_radius = 0.27;
+const int min_font_size = 8, default_font_size = 20, max_font_size = 40;
+
+/* font size used in current resolution */
+int curr_font_size;
+
+/* menu title rect */
+SDL_Rect menu_title_rect;
+
+/* buffer size used when reading attributes or names */
+const int buf_size = 128;
+
+
+
+/* local functions */
+MenuNode* create_empty_node();
+char* get_attribute_name(const char* token);
+char* get_attribute_value(const char* token);
+void read_attributes(FILE* xml_file, MenuNode* node);
+MenuNode* load_menu_from_file(FILE* xml_file, MenuNode* parent);
+void free_menu(MenuNode* menu);
+MenuNode* create_one_level_menu(int items, char** item_names, char* title, char* trailer);
+
+int handle_activity(int act, int param);
+int run_academy(void);
+int run_arcade(int choice);
+int run_custom_game(void);
+void run_multiplayer(int mode, int difficulty);
+int run_factoroids(int choice);
+int run_lan_join(void);
+int run_lan_host(void);
+
+int run_menu(MenuNode* menu, bool return_choice);
+SDL_Surface** render_buttons(MenuNode* menu, bool selected);
+void prerender_menu(MenuNode* menu);
+char* find_longest_text(MenuNode* menu, int* length);
+void set_font_size();
+void prerender_all();
+
+
+
+/*
+ functions responsible for parsing menu files
+ and creating menu trees
+*/
+
+/* creates new MenuNode struct with all fields set to NULL (or 0) */
+MenuNode* create_empty_node()
+{
+ MenuNode* new_node = malloc(sizeof(MenuNode));
+ new_node->parent = NULL;
+ new_node->title = NULL;
+ new_node->icon_name = NULL;
+ new_node->icon = NULL;
+ new_node->submenu_size = 0;
+ new_node->submenu = NULL;
+ new_node->activity = 0;
+ new_node->param = 0;
+ new_node->first_entry = 0;
+ new_node->show_title = false;
+
+ return new_node;
+}
+
+/* read attributes and fill appropriate node fields */
+void read_attributes(FILE* xml_file, MenuNode* node)
+{
+ char attr_name[buf_size];
+ char attr_val[buf_size];
+ int i;
+
+ /* read tokens until closing '>' is found */
+ do
+ {
+ fscanf(xml_file, " %[^=\n]", attr_name);
+
+ DEBUGMSG(debug_menu_parser, "read_attributes(): read attribute name: %s\n", attr_name);
+ if(strchr(attr_name, '>'))
+ break;
+
+ fscanf(xml_file, "=\"%[^\"]\"", attr_val);
+ DEBUGMSG(debug_menu_parser, "read_attributes(): read attribute value: %s\n", attr_val);
+
+ if(strcmp(attr_name, "title") == 0)
+ node->title = strdup(attr_val);
+ else if(strcmp(attr_name, "entries") == 0)
+ node->submenu_size = atoi(attr_val);
+ else if(strcmp(attr_name, "param") == 0)
+ node->param = atoi(attr_val);
+ else if(strcmp(attr_name, "sprite") == 0)
+ node->icon_name = strdup(attr_val);
+ else if(strcmp(attr_name, "run") == 0)
+ {
+ for(i = 0; i < N_OF_ACTIVITIES; i++)
+ if(strcmp(attr_val, activities[i]) == 0)
+ node->activity = i;
+ }
+ else
+ DEBUGMSG(debug_menu_parser, "read_attributes(): unknown attribute %s , omitting\n", attr_name);
+
+ } while(strchr(attr_val, '>') == NULL);
+}
+
+/* recursively read and parse given xml menu file and create menu tree
+ return NULL in case of problems */
+MenuNode* load_menu_from_file(FILE* xml_file, MenuNode* parent)
+{
+ MenuNode* new_node = create_empty_node();
+ char buffer[buf_size];
+ int i;
+
+ new_node->parent = parent;
+
+ DEBUGMSG(debug_menu_parser, "entering load_menu_from_file()\n");
+ fscanf(xml_file, " < %s", buffer);
+
+ if(strcmp(buffer, "menu") == 0)
+ {
+ read_attributes(xml_file, new_node);
+ if(new_node->title == NULL)
+ {
+ DEBUGMSG(debug_menu_parser, "load_menu_from_file(): no title attribute, exiting\n");
+ return NULL;
+ }
+
+ if(new_node->submenu_size > 0)
+ {
+ new_node->submenu = malloc(new_node->submenu_size * sizeof(MenuNode));
+ for(i = 0; i < new_node->submenu_size; i++)
+ new_node->submenu[i] = load_menu_from_file(xml_file, new_node);
+ }
+
+ fscanf(xml_file, " </%[^>\n]> ", buffer);
+ if(strcmp(buffer, "menu") != 0)
+ DEBUGMSG(debug_menu_parser, "load_menu_from_file(): warning - no closing menu tag, found %s instead\n", buffer);
+ }
+ else if(strcmp(buffer, "item") == 0)
+ {
+ read_attributes(xml_file, new_node);
+ if(new_node->title == NULL)
+ {
+ DEBUGMSG(debug_menu_parser, "load_menu_from_file(): no title attribute, exiting\n");
+ return NULL;
+ }
+ }
+ else
+ {
+ DEBUGMSG(debug_menu_parser, "load_menu_from_file(): unknown tag: %s\n, exiting\n", buffer);
+ return NULL;
+ }
+
+ DEBUGMSG(debug_menu_parser, "load_menu_from_file(): node loaded successfully\n");
+ return new_node;
+}
+
+/* recursively free all non-NULL pointers in a menu tree */
+void free_menu(MenuNode* menu)
+{
+ int i;
+
+ DEBUGMSG(debug_menu, "entering free_menu()\n");
+ if(menu != NULL)
+ {
+ if(menu->title != NULL)
+ free(menu->title);
+ if(menu->icon_name != NULL)
+ free(menu->icon_name);
+ if(menu->icon != NULL)
+ FreeSprite(menu->icon);
+
+ if(menu->submenu != NULL)
+ {
+ for(i = 0; i < menu->submenu_size; i++)
+ if(menu->submenu[i] != NULL)
+ {
+ free_menu(menu->submenu[i]);
+ menu->submenu[i] = NULL;
+ }
+ free(menu->submenu);
+ }
+
+ free(menu);
+ }
+}
+
+/* create a simple one-level menu without sprites.
+ all given strings are copied */
+MenuNode* create_one_level_menu(int items, char** item_names, char* title, char* trailer)
+{
+ MenuNode* menu = create_empty_node();
+ int i;
+
+ if(title)
+ {
+ menu->title = strdup(title);
+ menu->show_title = true;
+ }
+ menu->submenu_size = items + (trailer ? 1 : 0);
+ menu->submenu = (MenuNode**) malloc(menu->submenu_size * sizeof(MenuNode*));
+ for(i = 0; i < items; i++)
+ {
+ menu->submenu[i] = create_empty_node();
+ menu->submenu[i]->title = strdup(item_names[i]);
+ menu->submenu[i]->activity = i;
+ }
+
+ if(trailer)
+ {
+ menu->submenu[items] = create_empty_node();
+ menu->submenu[items]->title = strdup(trailer);
+ menu->submenu[items]->activity = items;
+ }
+
+ return menu;
+}
+
+/*
+ handlers for specific game activities
+*/
+
+/* return QUIT if user decided to quit the application while running an activity
+ return 0 otherwise */
+int handle_activity(int act, int param)
+{
+ DEBUGMSG(debug_menu, "entering handle_activity()\n");
+
+ switch(act)
+ {
+ case RUN_CAMPAIGN:
+ start_campaign();
+ break;
+
+ case RUN_ACADEMY:
+ if(run_academy() == QUIT)
+ return QUIT;
+ break;
+
+ case RUN_ARCADE:
+ run_arcade(param);
+ break;
+
+ case RUN_LAN_HOST:
+ run_lan_host();
+ break;
+
+ case RUN_LAN_JOIN:
+ run_lan_join();
+ break;
+
+ case RUN_CUSTOM:
+ run_custom_game();
+ break;
+
+ case RUN_HALL_OF_FAME:
+ DisplayHighScores(CADET_HIGH_SCORE);
+ break;
+
+ case RUN_SCORE_SWEEP:
+ run_multiplayer(0, param);
+ break;
+
+ case RUN_ELIMINATION:
+ run_multiplayer(1, param);
+ break;
+
+ case RUN_HELP:
+ Opts_SetHelpMode(1);
+ Opts_SetDemoMode(0);
+ if (Opts_GetGlobalOpt(MENU_MUSIC)) //Turn menu music off for game
+ {audioMusicUnload();}
+ game();
+ if (Opts_GetGlobalOpt(MENU_MUSIC)) //Turn menu music back on
+ audioMusicLoad( "tuxi.ogg", -1 );
+ Opts_SetHelpMode(0);
+ break;
+
+ case RUN_FACTORS:
+ run_factoroids(0);
+ break;
+
+ case RUN_FRACTIONS:
+ run_factoroids(1);
+ break;
+
+ case RUN_DEMO:
+ if(read_named_config_file("demo"))
+ {
+ audioMusicUnload();
+ game();
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicLoad( "tuxi.ogg", -1 );
+ }
+ else
+ fprintf(stderr, "\nCould not find demo config file\n");
+ break;
+
+ case RUN_INFO:
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ _("TuxMath is free and open-source!"),
+ _("You can help make it better."),
+ _("Suggestions, artwork, and code are all welcome!"),
+ _("Discuss TuxMath at tuxmath-devel at lists.sourceforge.net"));
+ break;
+
+ case RUN_CREDITS:
+ credits();
+ break;
+
+ case RUN_QUIT:
+ return QUIT;
+ }
+
+ DEBUGMSG(debug_menu, "Leaving handle_activity\n");
+
+ return 0;
+}
+
+int run_academy(void)
+{
+ int chosen_lesson = -1;
+
+ chosen_lesson = run_menu(menus[MENU_LESSONS], true);
+ while (chosen_lesson >= 0)
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+
+ /* Re-read global settings first in case any settings were */
+ /* clobbered by other lesson or arcade games this session: */
+ read_global_config_file();
+ /* Now read the selected file and play the "mission": */
+ if (read_named_config_file(lesson_list_filenames[chosen_lesson]))
+ {
+ if (Opts_GetGlobalOpt(MENU_MUSIC)) //Turn menu music off for game
+ {audioMusicUnload();}
+
+ game();
+
+ /* If successful, display Gold Star for this lesson! */
+ if (MC_MissionAccomplished())
+ {
+ lesson_list_goldstars[chosen_lesson] = 1;
+ /* and save to disk: */
+ write_goldstars();
+ }
+
+ if (Opts_GetGlobalOpt(MENU_MUSIC)) //Turn menu music back on
+ {audioMusicLoad("tuxi.ogg", -1);}
+ }
+ else // Something went wrong - could not read lesson config file:
+ {
+ fprintf(stderr, "\nCould not find file: %s\n", lesson_list_filenames[chosen_lesson]);
+ chosen_lesson = -1;
+ }
+ // Let the user choose another lesson; start with the screen and
+ // selection that we ended with
+ chosen_lesson = run_menu(menus[MENU_LESSONS], true);
+ }
+ return chosen_lesson;
+}
+
+int run_arcade(int choice)
+{
+ const char* arcade_config_files[5] =
+ {"arcade/space_cadet",
+ "arcade/scout",
+ "arcade/ranger",
+ "arcade/ace",
+ "arcade/commando"
+ };
+
+ const int arcade_high_score_tables[5] =
+ {CADET_HIGH_SCORE,
+ SCOUT_HIGH_SCORE,
+ RANGER_HIGH_SCORE,
+ ACE_HIGH_SCORE,
+ COMMANDO_HIGH_SCORE
+ };
+
+ int hs_table;
+
+ if (choice < NUM_MATH_COMMAND_LEVELS) {
+ // Play arcade game
+ if (read_named_config_file(arcade_config_files[choice]))
+ {
+ audioMusicUnload();
+ game();
+ RenderTitleScreen();
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicLoad( "tuxi.ogg", -1 );
+ /* See if player made high score list! */
+ read_high_scores(); /* Update, in case other users have added to it */
+ hs_table = arcade_high_score_tables[choice];
+ if (check_score_place(hs_table, Opts_LastScore()) < HIGH_SCORES_SAVED)
+ {
+ char player_name[HIGH_SCORE_NAME_LENGTH * 3];
+
+ /* Get name from player: */
+ HighScoreNameEntry(&player_name[0]);
+ insert_score(player_name, hs_table, Opts_LastScore());
+ /* Show the high scores. Note the user will see his/her */
+ /* achievement even if (in the meantime) another player */
+ /* has in fact already bumped this score off the table. */
+ DisplayHighScores(hs_table);
+ /* save to disk: */
+ /* See "On File Locking" in fileops.c */
+ append_high_score(choice,Opts_LastScore(),&player_name[0]);
+
+ DEBUGCODE(debug_titlescreen)
+ print_high_scores(stderr);
+ }
+ }
+ else {
+ fprintf(stderr, "\nCould not find %s config file\n",arcade_config_files[choice]);
+ }
+ }
+ return 0;
+}
+
+int run_custom_game(void)
+{
+ const char *s1, *s2, *s3, *s4;
+ s1 = _("Edit 'options' file in your home directory");
+ s2 = _("to create customized game!");
+ s3 = _("Press a key or click your mouse to start game.");
+ s4 = _("See README.txt for more information");
+ ShowMessage(DEFAULT_MENU_FONT_SIZE, s1, s2, s3, s4);
+
+ if (read_user_config_file()) {
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicUnload();
+
+ game();
+ write_user_config_file();
+
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicLoad( "tuxi.ogg", -1 );
+ }
+
+ return 0;
+}
+
+void run_multiplayer(int mode, int difficulty)
+{
+ int nplayers = 0;
+ char npstr[HIGH_SCORE_NAME_LENGTH * 3];
+
+ while (nplayers <= 0 || nplayers > MAX_PLAYERS)
+ {
+ NameEntry(npstr, _("How many kids are playing?"),
+ _("(Between 2 and 4 players)"));
+ nplayers = atoi(npstr);
+ }
+
+ mp_set_parameter(PLAYERS, nplayers);
+ mp_set_parameter(MODE, mode);
+ mp_set_parameter(DIFFICULTY, difficulty);
+ mp_run_multiplayer();
+}
+
+int run_factoroids(int choice)
+{
+ const int factoroids_high_score_tables[2] =
+ {FACTORS_HIGH_SCORE, FRACTIONS_HIGH_SCORE};
+ int hs_table;
+
+ audioMusicUnload();
+ if(choice == 0)
+ factors();
+ else
+ fractions();
+
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicLoad( "tuxi.ogg", -1 );
+
+ hs_table = factoroids_high_score_tables[choice];
+ if (check_score_place(hs_table, Opts_LastScore()) < HIGH_SCORES_SAVED){
+ char player_name[HIGH_SCORE_NAME_LENGTH * 3];
+ /* Get name from player: */
+ HighScoreNameEntry(&player_name[0]);
+ insert_score(player_name, hs_table, Opts_LastScore());
+ /* Show the high scores. Note the user will see his/her */
+ /* achievement even if (in the meantime) another player */
+ /* has in fact already bumped this score off the table. */
+ DisplayHighScores(hs_table);
+ /* save to disk: */
+ /* See "On File Locking" in fileops.c */
+ append_high_score(hs_table,Opts_LastScore(),&player_name[0]);
+ DEBUGCODE(debug_titlescreen)
+ print_high_scores(stderr);
+ }
+ else {
+ fprintf(stderr, "\nCould not find config file\n");
+ }
+
+ return 0;
+}
+
+
+/* If pthreads available, we launch server in own thread. Otherwise, we use */
+/* the C system() call to launch the server as a standalone program. */
+int run_lan_host(void)
+{
+#ifdef HAVE_LIBSDL_NET
+ char buf[256];
+ char server_name[150];
+ char* argv[3];
+ int chosen_lesson = -1;
+
+ /* For now, only allow one server instance: */
+ if(ServerRunning())
+ {
+ ShowMessage(DEFAULT_MENU_FONT_SIZE, _("The server is already running"),
+ NULL, NULL, NULL);
+ return 0;
+ }
+
+ NameEntry(server_name, _("Enter Server Name:"), _("(limit 50 characters)"));
+ argv[0] = "tuxmathserver";
+ argv[1] = "--name";
+ snprintf(buf, 256, "\"%s\"", server_name);
+ argv[2] = buf;
+
+
+ /* If we have POSIX threads available (Linux), we launch server in a thread within */
+ /* our same process. The server will use the currently selected Mathcards settings, */
+ /* so we can let the user select the lesson for the server to use. */
+
+#ifdef HAVE_PTHREAD_H
+
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ _("Click or press key to select server lesson file"),
+ NULL, NULL, NULL);
+
+ {
+ chosen_lesson = run_menu(menus[MENU_LESSONS], true);
+
+ while (chosen_lesson >= 0)
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+
+ /* Re-read global settings first in case any settings were */
+ /* clobbered by other lesson or arcade games this session: */
+ read_global_config_file();
+ /* Now read the selected file and play the "mission": */
+ if (read_named_config_file(lesson_list_filenames[chosen_lesson]))
+ break;
+ else
+ { // Something went wrong - could not read lesson config file:
+ fprintf(stderr, "\nCould not find file: %s\n", lesson_list_filenames[chosen_lesson]);
+ chosen_lesson = -1;
+ }
+ // Let the user choose another lesson; start with the screen and
+ // selection that we ended with
+ chosen_lesson = run_menu(menus[MENU_LESSONS], true);
+ }
+ }
+
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ _("Server Name:"),
+ server_name,
+ _("Selected Lesson:"),
+ lesson_list_titles[chosen_lesson]);
+
+ RunServer_pthread(3, argv);
+
+
+ /* Without pthreads, we just launch standalone server, which for now only */
+ /* supports the hardcoded default settings. */
+#else
+ RunServer_prog(3, argv);
+#endif
+
+/* No SDL_net, so show explanatory message: */
+#else
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ NULL, _("Sorry, this version built without network support"), NULL, NULL);
+ printf( _("Sorry, this version built without network support.\n"));
+#endif
+ return 0;
+}
+
+
+
+int run_lan_join(void)
+{
+#ifdef HAVE_LIBSDL_NET
+ if(detecting_servers(_("Detecting servers"), _("Please wait")))
+ {
+ int stdby;
+ char buf[256];
+ char player_name[HIGH_SCORE_NAME_LENGTH * 3];
+
+ snprintf(buf, 256, _("Connected to server: %s"), LAN_ConnectedServerName());
+ NameEntry(player_name, buf, _("Enter your name:"));
+ LAN_SetName(player_name);
+ Ready(_("Click when ready"));
+ LAN_StartGame();
+ stdby = Standby(_("Waiting for other players"), NULL);
+ if (stdby == 1)
+ {
+ audioMusicUnload();
+ Opts_SetLanMode(1); // Tells game() we are playing over network
+ game();
+ Opts_SetLanMode(0); // Go back to local play
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ audioMusicLoad( "tuxi.ogg", -1 );
+ }
+ else
+ {
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ NULL, _("Sorry, game already in progress."), NULL, NULL);
+ printf(_("Sorry, game already in progress.\n"));
+ }
+ }
+ else
+ {
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ NULL, _("Sorry, no server could be found."), NULL, NULL);
+ printf(_("Sorry, no server could be found.\n"));
+ }
+#else
+ ShowMessage(DEFAULT_MENU_FONT_SIZE,
+ NULL, _("Sorry, this version built without network support"), NULL, NULL);
+ printf( _("Sorry, this version built without network support.\n"));
+#endif
+
+ DEBUGMSG(debug_menu, "Leaving run_lan_join()\n");
+ return 0;
+}
+
+
+/* Display the menu and run the event loop.
+ if return_choice = true then return chosen value instead of
+ running handle_activity()
+ this function is a modified copy of choose_menu_item() */
+int run_menu(MenuNode* root, bool return_choice)
+{
+ SDL_Surface** menu_item_unselected = NULL;
+ SDL_Surface** menu_item_selected = NULL;
+ SDL_Surface* title_surf;
+ SDL_Event event;
+ MenuNode* menu = root;
+ MenuNode* tmp_node;
+
+ SDL_Rect tmp_rect;
+ sprite* tmp_sprite;
+ int i;
+ int stop = 0;
+ int items;
+
+ int action = NONE;
+
+ Uint32 frame_start = 0; //For keeping frame rate constant
+ Uint32 frame_now = 0;
+ Uint32 frame_counter = 0;
+ int loc = -1; //The currently selected menu item
+ int old_loc = -1;
+ int click_flag = 1;
+
+ for(;;) /* one loop body execution for one menu page */
+ {
+ DEBUGMSG(debug_menu, "run_menu(): drawing whole new menu page\n");
+
+ DrawTitleScreen();
+ /* render buttons for current menu page */
+ menu_item_unselected = render_buttons(menu, false);
+ menu_item_selected = render_buttons(menu, true);
+ items = min(menu->entries_per_screen, menu->submenu_size - menu->first_entry);
+
+ DEBUGMSG(debug_menu, "run_menu(): drawing %d buttons\n", items);
+ for(i = 0; i < items; i++)
+ {
+ if(loc == i)
+ SDL_BlitSurface(menu_item_selected[i], NULL, screen, &menu->submenu[menu->first_entry + i]->button_rect);
+ else
+ SDL_BlitSurface(menu_item_unselected[i], NULL, screen, &menu->submenu[menu->first_entry + i]->button_rect);
+ if(menu->submenu[menu->first_entry + i]->icon)
+ SDL_BlitSurface(menu->submenu[menu->first_entry + i]->icon->default_img, NULL, screen, &menu->submenu[menu->first_entry + i]->icon_rect);
+ }
+
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+
+ if(menu->entries_per_screen < menu->submenu_size)
+ {
+ /* display arrows */
+ if(menu->first_entry > 0)
+ SDL_BlitSurface(prev_arrow, NULL, screen, &prev_rect);
+ else
+ SDL_BlitSurface(prev_gray, NULL, screen, &prev_rect);
+ if(menu->first_entry + items < menu->submenu_size)
+ SDL_BlitSurface(next_arrow, NULL, screen, &next_rect);
+ else
+ SDL_BlitSurface(next_gray, NULL, screen, &next_rect);
+ }
+
+ if(menu->show_title)
+ {
+ menu_title_rect = menu->submenu[0]->button_rect;
+ menu_title_rect.y = menu_rect.y - menu_title_rect.h;
+ title_surf = BlackOutline(_(menu->title), curr_font_size, &red);
+ SDL_BlitSurface(title_surf, NULL, screen, &menu_title_rect);
+ SDL_FreeSurface(title_surf);
+ }
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+ SDL_WM_GrabInput(SDL_GRAB_OFF);
+
+ while (SDL_PollEvent(&event)); // clear pending events
+
+ /******** Main loop: *********/
+ stop = false;
+ DEBUGMSG(debug_menu, "run_menu(): entering menu loop\n");
+ while (!stop)
+ {
+ frame_start = SDL_GetTicks(); /* For keeping frame rate constant.*/
+
+ action = NONE;
+ while (!stop && SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ FreeSurfaceArray(menu_item_unselected, items);
+ FreeSurfaceArray(menu_item_selected, items);
+ return QUIT;
+ }
+
+ case SDL_MOUSEMOTION:
+ {
+ loc = -1;
+ for (i = 0; i < items; i++)
+ {
+ if (inRect(menu->submenu[menu->first_entry + i]->button_rect, event.motion.x, event.motion.y))
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND) && old_loc != i)
+ playsound(SND_TOCK);
+ loc = i;
+ break; /* from for loop */
+ }
+ }
+
+ /* "Left" button - make click if button active: */
+ if(inRect(prev_rect, event.motion.x, event.motion.y)
+ && menu->first_entry > 0 && Opts_GetGlobalOpt(MENU_SOUND))
+ {
+ if(click_flag)
+ {
+ playsound(SND_TOCK);
+ click_flag = 0;
+ }
+ }
+
+ /* "Right" button - make click if button active: */
+ else if(inRect(next_rect, event.motion.x, event.motion.y)
+ && menu->first_entry + items < menu->submenu_size
+ && Opts_GetGlobalOpt(MENU_SOUND))
+ {
+ if(click_flag)
+ {
+ playsound(SND_TOCK);
+ click_flag = 0;
+ }
+ }
+
+ /* "stop" button */
+ else if (inRect(stop_rect, event.motion.x, event.motion.y )
+ && Opts_GetGlobalOpt(MENU_SOUND))
+ {
+ if(click_flag)
+ {
+ playsound(SND_TOCK);
+ click_flag = 0;
+ }
+ }
+
+ else // Mouse outside of arrow rects - re-enable click sound:
+ click_flag = 1;
+
+ break;
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ {
+ loc = -1; // By default, don't be in any entry
+ for (i = 0; i < items; i++)
+ {
+ if (inRect(menu->submenu[menu->first_entry + i]->button_rect, event.motion.x, event.motion.y))
+ {
+ // Play sound if loc is being changed:
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+ loc = i;
+ action = CLICK;
+ break; /* from for loop */
+ }
+ }
+
+ /* "Left" button */
+ if (inRect(prev_rect, event.motion.x, event.motion.y)
+ && menu->first_entry > 0)
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+ action = PAGEUP;
+ }
+
+ /* "Right" button - go to next page: */
+ else if (inRect(next_rect, event.motion.x, event.motion.y )
+ && menu->first_entry + items < menu->submenu_size)
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+ action = PAGEDOWN;
+ }
+
+ /* "Stop" button - go to main menu: */
+ else if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+ action = STOP_ESC;
+ }
+
+ break;
+ } /* End of case SDL_MOUSEDOWN */
+
+ case SDL_KEYDOWN:
+ {
+ /* Proceed according to particular key pressed: */
+ switch (event.key.keysym.sym)
+ {
+ case SDLK_ESCAPE:
+ {
+ action = STOP_ESC;
+ break;
+ }
+
+ case SDLK_RETURN:
+ case SDLK_SPACE:
+ case SDLK_KP_ENTER:
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_POP);
+ action = CLICK;
+ break;
+ }
+
+ /* Go to previous page, if present: */
+ case SDLK_LEFT:
+ case SDLK_PAGEUP:
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_TOCK);
+ if (menu->first_entry > 0)
+ action = PAGEUP;
+ break;
+ }
+
+ /* Go to next page, if present: */
+ case SDLK_RIGHT:
+ case SDLK_PAGEDOWN:
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_TOCK);
+ if (menu->first_entry + items < menu->submenu_size)
+ action = PAGEDOWN;
+ break;
+ }
+
+ /* Go up one entry, if present: */
+ case SDLK_UP:
+ case SDLK_k: // get them ready for vi/vim ;)
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_TOCK);
+ if (loc > 0)
+ loc--;
+ else if (menu->submenu_size <= menu->entries_per_screen)
+ loc = menu->submenu_size - 1; // wrap around if only 1 screen
+ else if (menu->first_entry > 0)
+ {
+ loc = menu->entries_per_screen - 1;
+ action = PAGEUP;
+ }
+ break;
+ }
+
+ case SDLK_DOWN:
+ case SDLK_j:
+ {
+ if (Opts_GetGlobalOpt(MENU_SOUND))
+ playsound(SND_TOCK);
+ if (loc + 1 < min(menu->submenu_size, menu->entries_per_screen))
+ loc++;
+ else if (menu->submenu_size <= menu->entries_per_screen)
+ loc = 0; // wrap around if only 1 screen
+ else if (menu->first_entry + menu->entries_per_screen < menu->submenu_size)
+ {
+ loc = 0;
+ action = PAGEDOWN;
+ }
+ break;
+ }
+
+ /* Change window size (used only to debug) */
+ case SDLK_F5:
+ case SDLK_F6:
+ case SDLK_F7:
+ case SDLK_F8:
+ {
+ /* these keys are available only if in debug mode */
+ DEBUGCODE(debug_titlescreen | debug_menu)
+ {
+ switch(event.key.keysym.sym)
+ {
+ case SDLK_F5:
+ {
+ /* decrease screen width */
+ ChangeWindowSize(win_res_x - 50, win_res_y);
+ break;
+ }
+ case SDLK_F6:
+ {
+ /* increase screen width */
+ ChangeWindowSize(win_res_x + 50, win_res_y);
+ break;
+ }
+ case SDLK_F7:
+ {
+ /* decrease screen height */
+ ChangeWindowSize(win_res_x, win_res_y - 50);
+ break;
+ }
+ case SDLK_F8:
+ {
+ /* increase screen height */
+ ChangeWindowSize(win_res_x, win_res_y + 50);
+ break;
+ }
+ default:
+ break;
+ }
+ action = RESIZED;
+ }
+ break;
+ }
+
+ /* Toggle screen mode: */
+ case SDLK_F10:
+ {
+ SwitchScreenMode();
+ action = RESIZED;
+ break;
+ }
+
+ /* Toggle menu music: */
+ case SDLK_F11:
+ {
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ {
+ audioMusicUnload( );
+ Opts_SetGlobalOpt(MENU_MUSIC, 0);
+ }
+ else
+ {
+ Opts_SetGlobalOpt(MENU_MUSIC, 1);
+ audioMusicLoad("tuxi.ogg", -1);
+ }
+ break;
+ }
+
+ default:
+ {
+ /* Some other key - do nothing. */
+ }
+
+ break; /* To get out of _outer_ switch/case statement */
+ } /* End of key switch statement */
+ } // End of case SDL_KEYDOWN in outer switch statement
+ } // End event switch statement
+
+ if (old_loc != loc) {
+ DEBUGMSG(debug_menu, "run_menu(): changed button focus, old=%d, new=%d\n", old_loc, loc);
+ if(old_loc >= 0 && old_loc < items)
+ {
+ tmp_rect = menu->submenu[old_loc + menu->first_entry]->button_rect;
+ SDL_BlitSurface(menu_item_unselected[old_loc], NULL, screen, &tmp_rect);
+ if(menu->submenu[menu->first_entry + old_loc]->icon)
+ SDL_BlitSurface(menu->submenu[menu->first_entry + old_loc]->icon->default_img, NULL, screen, &menu->submenu[menu->first_entry + old_loc]->icon_rect);
+ SDL_UpdateRect(screen, tmp_rect.x, tmp_rect.y, tmp_rect.w, tmp_rect.h);
+ }
+ if(loc >= 0 && loc < items)
+ {
+ tmp_rect = menu->submenu[loc + menu->first_entry]->button_rect;
+ SDL_BlitSurface(menu_item_selected[loc], NULL, screen, &tmp_rect);
+ if(menu->submenu[menu->first_entry + loc]->icon)
+ {
+ SDL_BlitSurface(menu->submenu[menu->first_entry + loc]->icon->default_img, NULL, screen, &menu->submenu[menu->first_entry + loc]->icon_rect);
+ menu->submenu[menu->first_entry + loc]->icon->cur = 0;
+ }
+ SDL_UpdateRect(screen, tmp_rect.x, tmp_rect.y, tmp_rect.w, tmp_rect.h);
+ }
+ old_loc = loc;
+ }
+
+ if(HandleTitleScreenEvents(&event))
+ stop = true;
+
+ switch(action)
+ {
+ case RESIZED:
+ RenderTitleScreen();
+ menu->first_entry = 0;
+ prerender_all();
+ stop = true;
+ break;
+
+ case CLICK:
+ if(loc < 0 || loc >= items)
+ {
+ DEBUGMSG(debug_menu, "run_menu(): incorrect location for CLICK action (%d) !\n", loc);
+ }
+ else
+ {
+ tmp_node = menu->submenu[menu->first_entry + loc];
+ if(tmp_node->submenu_size == 0)
+ {
+ if(return_choice)
+ {
+ FreeSurfaceArray(menu_item_unselected, items);
+ FreeSurfaceArray(menu_item_selected, items);
+ return tmp_node->activity;
+ }
+ else
+ {
+ if(tmp_node->activity == RUN_MAIN_MENU)
+ {
+ /* go back to the root of this menu */
+ menu = root;
+ }
+ else
+ {
+ if(handle_activity(tmp_node->activity, tmp_node->param) == QUIT)
+ {
+ DEBUGMSG(debug_menu, "run_menu(): handle_activity() returned QUIT message, exiting.\n");
+ FreeSurfaceArray(menu_item_unselected, items);
+ FreeSurfaceArray(menu_item_selected, items);
+ return QUIT;
+ }
+ }
+ }
+ }
+ else
+ {
+ menu->first_entry = 0;
+ menu = tmp_node;
+ menu->first_entry = 0;
+ }
+ stop = true;
+ }
+ break;
+
+ case STOP_ESC:
+ if(menu->parent == NULL)
+ {
+ FreeSurfaceArray(menu_item_unselected, items);
+ FreeSurfaceArray(menu_item_selected, items);
+ return STOP;
+ }
+ else
+ menu = menu->parent;
+ stop = true;
+ break;
+
+ case PAGEUP:
+ menu->first_entry -= menu->entries_per_screen;
+ stop = true;
+ break;
+
+ case PAGEDOWN:
+ menu->first_entry += menu->entries_per_screen;
+ stop = true;
+ break;
+ }
+
+ } // End of SDL_PollEvent while loop
+
+ if(stop)
+ break;
+
+ if(!stop && frame_counter % 5 == 0 && loc >= 0 && loc < items)
+ {
+ tmp_sprite = menu->submenu[menu->first_entry + loc]->icon;
+ if(tmp_sprite)
+ {
+ DEBUGMSG(debug_menu, "run_menu(): incrementing sprite for entry %d\n", loc);
+
+ SDL_BlitSurface(menu_item_selected[loc], NULL, screen,
+ &menu->submenu[menu->first_entry + loc]->icon_rect);
+ SDL_BlitSurface(tmp_sprite->frame[tmp_sprite->cur], NULL, screen,
+ &menu->submenu[menu->first_entry + loc]->icon_rect);
+ UpdateRect(screen, &menu->submenu[menu->first_entry + loc]->icon_rect);
+ NextFrame(tmp_sprite);
+ }
+ else
+ DEBUGMSG(debug_menu, "run_menu(): entry %d has no valid sprite\n", loc);
+ }
+
+ HandleTitleScreenAnimations();
+
+ /* Wait so we keep frame rate constant: */
+ frame_now = SDL_GetTicks();
+ if (frame_now < frame_start)
+ frame_start = frame_now; // in case the timer wraps around
+ if((frame_now - frame_start) < 1000 / MAX_FPS)
+ SDL_Delay(1000 / MAX_FPS - (frame_now - frame_start));
+
+ frame_counter++;
+ } // End of while(!stop) loop
+
+ /* free button surfaces */
+ DEBUGMSG(debug_menu, "run_menu(): freeing %d button surfaces\n", items);
+ FreeSurfaceArray(menu_item_unselected, items);
+ FreeSurfaceArray(menu_item_selected, items);
+ }
+
+ return QUIT;
+}
+
+/* return button surfaces that are currently displayed (without sprites) */
+SDL_Surface** render_buttons(MenuNode* menu, bool selected)
+{
+ SDL_Surface** menu_items = NULL;
+ SDL_Rect curr_rect;
+ SDL_Surface* tmp_surf = NULL;
+ int i;
+ int items = min(menu->entries_per_screen, menu->submenu_size - menu->first_entry);
+
+ menu_items = (SDL_Surface**) malloc(items * sizeof(SDL_Surface*));
+ if(NULL == menu_items)
+ {
+ DEBUGMSG(debug_menu, "render_buttons(): failed to allocate memory for buttons!\n");
+ return NULL; // error
+ }
+
+ for (i = 0; i < items; i++)
+ {
+ curr_rect = menu->submenu[menu->first_entry + i]->button_rect;
+ menu_items[i] = SDL_CreateRGBSurface(SDL_SWSURFACE|SDL_SRCALPHA,
+ curr_rect.w,
+ curr_rect.h,
+ 32,
+ rmask, gmask, bmask, amask);
+
+ SDL_BlitSurface(screen, &curr_rect, menu_items[i], NULL);
+ /* button */
+ if(selected)
+ tmp_surf = CreateButton(curr_rect.w, curr_rect.h, button_radius * curr_rect.h, SEL_RGBA);
+ else
+ tmp_surf = CreateButton(curr_rect.w, curr_rect.h, button_radius * curr_rect.h, REG_RGBA);
+
+ SDL_BlitSurface(tmp_surf, NULL, menu_items[i], NULL);
+ SDL_FreeSurface(tmp_surf);
+
+ /* text */
+ DEBUGMSG(debug_menu, "render_buttons(): English string is: %s\n",
+ menu->submenu[menu->first_entry + i]->title);
+ DEBUGMSG(debug_menu, "render_buttons(): NLS string is: %s\n",
+ _(menu->submenu[menu->first_entry + i]->title));
+
+ tmp_surf = BlackOutline(_(menu->submenu[menu->first_entry + i]->title),
+ curr_font_size, selected ? &yellow : &white);
+ SDL_BlitSurface(tmp_surf, NULL, menu_items[i], &menu->submenu[menu->first_entry + i]->text_rect);
+ SDL_FreeSurface(tmp_surf);
+ }
+
+ return menu_items;
+}
+
+/* recursively load sprites and calculate button rects
+ to fit into current screen */
+void prerender_menu(MenuNode* menu)
+{
+ SDL_Surface* temp_surf;
+ MenuNode* curr_node;
+ int i, imod, max_text_h = 0, max_text_w = 0;
+ int button_h, button_w;
+ bool found_icons = false;
+ char filename[buf_size];
+
+ if(NULL == menu)
+ {
+ DEBUGMSG(debug_menu, "prerender_menu(): NULL pointer, exiting !\n");
+ return;
+ }
+
+ if(0 == menu->submenu_size)
+ {
+ DEBUGMSG(debug_menu, "prerender_menu(): no submenu, exiting.\n");
+ return;
+ }
+
+ for(i = 0; i < menu->submenu_size; i++)
+ {
+ if(menu->submenu[i]->icon_name)
+ found_icons = true;
+ temp_surf = NULL;
+ temp_surf = SimpleText(_(menu->submenu[i]->title), curr_font_size, &black);
+ if(temp_surf)
+ {
+ max_text_h = max(max_text_h, temp_surf->h);
+ max_text_w = max(max_text_w, temp_surf->w);
+ SDL_FreeSurface(temp_surf);
+ }
+ }
+
+ button_h = (1.0 + 2.0 * text_h_gap) * max_text_h;
+ button_w = max_text_w + ( (found_icons ? 1.0 : 0.0) + 2.0 * text_w_gap) * button_h;
+
+ menu->entries_per_screen = (int) ( (menu_rect.h - button_gap * button_h) /
+ ( (1.0 + button_gap) * button_h ) );
+
+ for(i = 0; i < menu->submenu_size; i++)
+ {
+ curr_node = menu->submenu[i];
+ curr_node->button_rect.x = menu_rect.x;
+ imod = i % menu->entries_per_screen;
+ curr_node->button_rect.y = menu_rect.y + imod * button_h + (imod + 1) * button_gap * button_h;
+ curr_node->button_rect.w = button_w;
+ curr_node->button_rect.h = button_h;
+
+ curr_node->icon_rect = curr_node->button_rect;
+ curr_node->icon_rect.w = curr_node->icon_rect.h;
+
+ curr_node->text_rect.x = ( (found_icons ? 1.0 : 0.0) + text_w_gap) * curr_node->icon_rect.w;
+ curr_node->text_rect.y = text_h_gap * max_text_h;
+ curr_node->text_rect.h = max_text_h;
+ curr_node->text_rect.w = max_text_w;
+
+ if(curr_node->icon)
+ FreeSprite(curr_node->icon);
+
+ if(curr_node->icon_name)
+ {
+ sprintf(filename, "sprites/%s", curr_node->icon_name);
+ DEBUGMSG(debug_menu, "prerender_menu(): loading sprite %s for item #%d.\n", filename, i);
+ curr_node->icon = LoadSpriteOfBoundingBox(filename, IMG_ALPHA, button_h, button_h);
+ }
+ else
+ DEBUGMSG(debug_menu, "prerender_menu(): no sprite for item #%d.\n", i);
+
+ prerender_menu(menu->submenu[i]);
+ }
+}
+
+char* find_longest_text(MenuNode* menu, int* length)
+{
+ SDL_Surface* text = NULL;
+ char *ret = NULL, *temp = NULL;
+ int i;
+
+ if(menu->submenu_size == 0)
+ {
+ text = SimpleText(_(menu->title), curr_font_size, &black);
+ if(text->w > *length)
+ {
+ *length = text->w;
+ ret = menu->title;
+ }
+ SDL_FreeSurface(text);
+ }
+ else
+ {
+ for(i = 0; i < menu->submenu_size; i++)
+ {
+ temp = find_longest_text(menu->submenu[i], length);
+ if(temp)
+ ret = temp;
+ }
+ }
+ return ret;
+}
+
+/* find the longest text in all existing menus and binary search
+ for the best font size */
+void set_font_size()
+{
+ char* longest = NULL;
+ char* temp;
+ SDL_Surface* surf;
+ int length = 0, i, min_f, max_f, mid_f;
+
+ curr_font_size = default_font_size;
+
+ for(i = 0; i < N_OF_MENUS; i++)
+ {
+ if(menus[i])
+ {
+ temp = find_longest_text(menus[i], &length);
+ if(temp)
+ longest = temp;
+ }
+ }
+
+ if(!longest)
+ return;
+
+ min_f = min_font_size;
+ max_f = max_font_size;
+
+ while(min_f < max_f)
+ {
+ mid_f = (min_f + max_f) / 2;
+ surf = SimpleText(_(longest), mid_f, &black);
+ if(surf->w + (1.0 + 2.0 * text_w_gap) * (1.0 + 2.0 * text_h_gap) * surf->h < menu_rect.w)
+ min_f = mid_f + 1;
+ else
+ max_f = mid_f;
+ SDL_FreeSurface(surf);
+ }
+
+ curr_font_size = min_f;
+}
+
+/* prerender arrows, stop button and all non-NULL menus from menus[] array
+ this function should be invoked after every resolution change */
+void prerender_all()
+{
+ int i;
+
+ SetRect(&menu_rect, menu_pos);
+
+ SetRect(&stop_rect, stop_pos);
+ if(stop_button)
+ SDL_FreeSurface(stop_button);
+ stop_button = LoadImageOfBoundingBox(stop_path, IMG_ALPHA, stop_rect.w, stop_rect.h);
+ /* move button to the right */
+ stop_rect.x = screen->w - stop_button->w;
+
+ SetRect(&prev_rect, prev_pos);
+ if(prev_arrow)
+ SDL_FreeSurface(prev_arrow);
+ prev_arrow = LoadImageOfBoundingBox(prev_path, IMG_ALPHA, prev_rect.w, prev_rect.h);
+ if(prev_gray)
+ SDL_FreeSurface(prev_gray);
+ prev_gray = LoadImageOfBoundingBox(prev_gray_path, IMG_ALPHA, prev_rect.w, prev_rect.h);
+ /* move button to the right */
+ prev_rect.x += prev_rect.w - prev_arrow->w;
+
+ SetRect(&next_rect, next_pos);
+ if(next_arrow)
+ SDL_FreeSurface(next_arrow);
+ next_arrow = LoadImageOfBoundingBox(next_path, IMG_ALPHA, next_rect.w, next_rect.h);
+ if(next_gray)
+ SDL_FreeSurface(next_gray);
+ next_gray = LoadImageOfBoundingBox(next_gray_path, IMG_ALPHA, next_rect.w, next_rect.h);
+
+ set_font_size();
+
+ for(i = 0; i < N_OF_MENUS; i++)
+ if(menus[i])
+ prerender_menu(menus[i]);
+}
+
+/* load menu trees from disk and prerender them */
+void LoadMenus(void)
+{
+ FILE* menu_file = NULL;
+ int i;
+
+ for(i = 0; i < N_OF_MENUS; i++)
+ menus[i] = NULL;
+
+ /* main menu */
+ menu_file = fopen(DATA_PREFIX "/menus/main_menu.xml", "r");
+ if(menu_file == NULL)
+ {
+ DEBUGMSG(debug_menu, "LoadMenus(): Could not load main menu file !\n");
+ }
+ else
+ {
+ menus[MENU_MAIN] = load_menu_from_file(menu_file, NULL);
+ fclose(menu_file);
+ }
+
+ /* difficulty menu */
+ menu_file = fopen(DATA_PREFIX "/menus/level_menu.xml", "r");
+ if(menu_file == NULL)
+ {
+ DEBUGMSG(debug_menu, "LoadMenus(): Could not load level menu file !\n");
+ }
+ else
+ {
+ menus[MENU_DIFFICULTY] = load_menu_from_file(menu_file, NULL);
+ fclose(menu_file);
+ }
+
+ prerender_all();
+}
+
+
+
+/* create login menu tree, run it and set the user home directory
+ -1 indicates that the user wants to quit without logging in,
+ 0 indicates that a choice has been made. */
+int RunLoginMenu(void)
+{
+ int n_login_questions = 0;
+ char **user_login_questions = NULL;
+ char *title = NULL;
+ int n_users = 0;
+ char **user_names = NULL;
+ int chosen_login = -1;
+ int level;
+ int i;
+ char *trailer_quit = "Quit";
+ char *trailer_back = "Back";
+ char *trailer = NULL;
+ SDLMod mod;
+
+ DEBUGMSG(debug_menu, "Entering RunLoginMenu()");
+ // Check for & read user_login_questions file
+ n_login_questions = read_user_login_questions(&user_login_questions);
+
+ // Check for & read user_menu_entries file
+ n_users = read_user_menu_entries(&user_names);
+
+ if (n_users == 0)
+ return 0; // a quick exit, there's only one user
+
+ // Check for a highscores file
+ if (high_scores_found_in_user_dir())
+ set_high_score_path();
+
+ level = 0;
+
+ if (n_login_questions > 0)
+ title = user_login_questions[0];
+
+ menus[MENU_LOGIN] = create_one_level_menu(n_users, user_names, title, trailer_quit);
+
+ while (n_users) {
+ // Get the user choice
+ set_font_size();
+ prerender_menu(menus[MENU_LOGIN]);
+ chosen_login = run_menu(menus[MENU_LOGIN], true);
+ // Determine whether there were any modifier (CTRL) keys pressed
+ mod = SDL_GetModState();
+ if (chosen_login < 0 || chosen_login == n_users) {
+ // User pressed escape or selected Quit/Back, handle by quitting
+ // or going up a level
+ if (level == 0) {
+ // We are going to quit without logging in.
+ // Clean up memory (prob. not necessary, but prevents Valgrind errors!)
+ for (i = 0; i < n_login_questions; i++)
+ free(user_login_questions[i]);
+ free(user_login_questions);
+ for (i = 0; i < n_users; i++)
+ free(user_names[i]);
+ free(user_names);
+ free_menu(menus[MENU_LOGIN]);
+ menus[MENU_LOGIN] = NULL;
+ return -1;
+ }
+ else {
+ // Go back up one level of the directory tree
+ user_data_dirname_up();
+ level--;
+ }
+ }
+ else {
+ // User chose an entry, set it up
+ user_data_dirname_down(user_names[chosen_login]);
+ level++;
+ }
+ // Check for a highscores file
+ if (high_scores_found_in_user_dir())
+ set_high_score_path();
+ // Free the entries from the previous menu
+ for (i = 0; i < n_users; i++)
+ free(user_names[i]);
+ free(user_names);
+ user_names = NULL;
+ // If the CTRL key was pressed, choose this as the identity, even
+ // if there is a lower level to the hierarchy
+ if (mod & KMOD_CTRL)
+ break;
+ // Set the title appropriately for the next menu
+ if (level < n_login_questions)
+ title = user_login_questions[level];
+ else
+ title = NULL;
+ if (level == 0)
+ trailer = trailer_quit;
+ else
+ trailer = trailer_back;
+ // Check to see if there are more choices to be made
+ n_users = read_user_menu_entries(&user_names);
+ free_menu(menus[MENU_LOGIN]);
+ menus[MENU_LOGIN] = create_one_level_menu(n_users, user_names, title, trailer);
+ }
+
+ // The user home directory is set, clean up remaining memory
+ for (i = 0; i < n_login_questions; i++)
+ free(user_login_questions[i]);
+ free(user_login_questions);
+ free_menu(menus[MENU_LOGIN]);
+ menus[MENU_LOGIN] = NULL;
+
+ // Signal success
+ return 0;
+}
+
+/* run main menu. If this function ends it means that tuxmath is going to quit */
+void RunMainMenu(void)
+{
+ int i;
+ MenuNode* tmp_node;
+ DEBUGMSG(debug_menu, "Entering RunMainMenu()\n");
+
+ /* lessons menu */
+ DEBUGMSG(debug_menu, "LoadMenus(): Generating lessons submenu. (%d lessons)\n", num_lessons);
+
+ tmp_node = create_empty_node();
+ tmp_node->submenu_size = num_lessons;
+ tmp_node->submenu = (MenuNode**) malloc(num_lessons * sizeof(MenuNode*));
+ for(i = 0; i < num_lessons; i++)
+ {
+ tmp_node->submenu[i] = create_empty_node();
+ tmp_node->submenu[i]->icon_name = strdup(lesson_list_goldstars[i] ? "goldstar" : "no_goldstar");
+ tmp_node->submenu[i]->title = (char*) malloc( (strlen(lesson_list_titles[i]) + 1) * sizeof(char) );
+ strcpy(tmp_node->submenu[i]->title, lesson_list_titles[i]);
+ tmp_node->submenu[i]->activity = i;
+ }
+ menus[MENU_LESSONS] = tmp_node;
+ set_font_size();
+ prerender_menu(menus[MENU_LESSONS]);
+ //prerender_all();
+
+ run_menu(menus[MENU_MAIN], false);
+ DEBUGMSG(debug_menu, "Leaving RunMainMenu()\n");
+}
+
+/* free all loaded menu trees */
+void UnloadMenus(void)
+{
+ int i;
+
+ DEBUGMSG(debug_menu, "entering UnloadMenus()\n");
+
+ if(stop_button)
+ {
+ SDL_FreeSurface(stop_button);
+ stop_button = NULL;
+ }
+
+ if(prev_arrow)
+ {
+ SDL_FreeSurface(prev_arrow);
+ prev_arrow = NULL;
+ }
+
+ if(next_arrow)
+ {
+ SDL_FreeSurface(next_arrow);
+ next_arrow = NULL;
+ }
+
+ for(i = 0; i < N_OF_MENUS; i++)
+ if(menus[i] != NULL)
+ {
+ DEBUGMSG(debug_menu, "UnloadMenus(): freeing menu #%d\n", i);
+ free_menu(menus[i]);
+ }
+
+ DEBUGMSG(debug_menu, "leaving UnloadMenus()\n");
+}
+
diff --git a/src/menu.h b/src/menu.h
new file mode 100644
index 0000000..4787476
--- /dev/null
+++ b/src/menu.h
@@ -0,0 +1,103 @@
+/*
+ menu.h
+
+ Functions responsible for loading, parsing and displaying game menu.
+ (interface)
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Author: Boleslaw Kulbabinski <bkulbabinski at gmail.com>, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#ifndef MENU_H
+#define MENU_H
+
+#include "globals.h"
+#include "loaders.h"
+
+#include "SDL.h"
+/* titlescreen & menu frame rate */
+#define MAX_FPS 30
+/* number of "real" frames per one sprite frame */
+#define SPRITE_FRAME_DELAY 6
+
+/* these are all menu choices that are available in tuxmath.
+ By using a define we can create both an enum and
+ a string array without writing these names twice */
+#define QUIT -2
+#define STOP -1
+
+#define ACTIVITIES \
+ X( RUN_QUIT ),\
+ X( RUN_ACADEMY ),\
+ X( RUN_CAMPAIGN ),\
+ X( RUN_ARCADE ),\
+ X( RUN_CUSTOM ),\
+ X( RUN_MAIN_MENU ),\
+ X( RUN_LAN_HOST ),\
+ X( RUN_LAN_JOIN ),\
+ X( RUN_SCORE_SWEEP ),\
+ X( RUN_ELIMINATION ),\
+ X( RUN_FACTORS ),\
+ X( RUN_FRACTIONS ),\
+ X( RUN_HELP ),\
+ X( RUN_DEMO ),\
+ X( RUN_INFO ),\
+ X( RUN_CREDITS ),\
+ X( RUN_HALL_OF_FAME ),\
+ X( RUN_SPACE_CADET ),\
+ X( RUN_SCOUT ),\
+ X( RUN_RANGER ),\
+ X( RUN_ACE ),\
+ X( RUN_COMMANDO ),\
+ X( N_OF_ACTIVITIES ) /* this one has to be the last one */
+
+/* create enum */
+#define X(name) name
+enum { ACTIVITIES };
+#undef X
+
+struct mNode {
+ struct mNode* parent;
+
+ char* title;
+ int font_size;
+
+ char* icon_name;
+ sprite* icon;
+
+ SDL_Rect button_rect;
+ SDL_Rect icon_rect;
+ SDL_Rect text_rect;
+
+ /* submenu_size = 0 if no submenu */
+ int submenu_size;
+ struct mNode** submenu;
+
+ /* these fields are used only if submenu_size = 0 */
+ int activity;
+ int param;
+
+ /* these fields are used only if submenu_size > 0 */
+ bool show_title;
+ int entries_per_screen;
+ int first_entry;
+};
+
+typedef struct mNode MenuNode;
+
+/* used also by highscore.c */
+extern SDL_Rect menu_rect, stop_rect, prev_rect, next_rect;
+extern SDL_Surface *stop_button, *prev_arrow, *next_arrow, *prev_gray, *next_gray;
+
+/* global functions */
+void LoadMenus(void);
+int RunLoginMenu(void);
+void RunMainMenu(void);
+void UnloadMenus(void);
+
+#endif // MENU_H
+
diff --git a/src/multiplayer.c b/src/multiplayer.c
new file mode 100644
index 0000000..0a036e1
--- /dev/null
+++ b/src/multiplayer.c
@@ -0,0 +1,294 @@
+/*
+
+multiplayer.h - Provides routines for organizing and running a turn-based
+ multiplayer that can accommodate up to four players (more with
+ a recompilation)
+
+Author: B. Luchen
+
+*/
+
+#include "tuxmath.h"
+#include "SDL_extras.h"
+#include "multiplayer.h"
+#include "game.h"
+#include "options.h"
+#include "fileops.h"
+#include "highscore.h"
+#include "credits.h"
+
+int params[NUM_PARAMS] = {0, 0, 0, 0};
+
+int inprogress = 0;
+int pscores[MAX_PLAYERS];
+char* pnames[MAX_PLAYERS];
+
+//local function decs
+static void showWinners(int* order, int num); //show a sequence recognizing winner
+static int initMP();
+static void cleanupMP();
+
+void mp_set_parameter(unsigned int param, int value)
+{
+ if (inprogress)
+ {
+ DEBUGMSG(debug_multiplayer, "Oops, tried to set param %d in the middle of a game\n", param);
+ return;
+ }
+ params[param] = value;
+}
+
+void mp_run_multiplayer()
+{
+ int i;
+ int round = 1;
+ int currentplayer = 0;
+ int result = 0;
+ int done = 0;
+ int activeplayers = params[PLAYERS];
+ int winners[MAX_PLAYERS];
+
+ for (i = 0; i < MAX_PLAYERS; ++i)
+ winners[i] = -1;
+
+ if (initMP() )
+ {
+ printf("Initialization failed, bailing out\n");
+ return;
+ }
+
+ //cycle through players until all but one has lost
+ if (params[MODE] == ELIMINATION)
+ {
+ while(!done)
+ {
+ //TODO maybe gradually increase difficulty
+ game_set_start_message(pnames[currentplayer], "Go!", "", "");
+ result = game();
+
+ if (result == GAME_OVER_LOST || result == GAME_OVER_ESCAPE)
+ {
+ //eliminate player
+ pscores[currentplayer] = 0xbeef;
+ winners[--activeplayers] = currentplayer;
+ }
+
+ do //move to the next player
+ {
+ ++currentplayer;
+ currentplayer %= params[PLAYERS];
+ if (currentplayer == 0)
+ ++round;
+ }
+ while (pscores[currentplayer] == 0xbeef); //skip over eliminated players
+
+ if (activeplayers <= 1) //last man standing!
+ {
+ DEBUGMSG(debug_multiplayer, "%d wins\n", currentplayer);
+ winners[0] = currentplayer;
+ done = 1;
+ }
+ }
+ }
+ //players take turns, accumulating score, and the highest score wins
+ else if (params[MODE] == SCORE_SWEEP)
+ {
+ int hiscore = 0;
+ int currentwinner = -1;
+
+ //play through rounds
+ for (round = 1; round <= params[ROUNDS]; ++round)
+ {
+ for (currentplayer = 0; currentplayer < params[PLAYERS]; ++currentplayer)
+ {
+ game_set_start_message(pnames[currentplayer], "Go!", NULL, NULL);
+ result = game();
+ pscores[currentplayer] += Opts_LastScore(); //add this player's score
+ if (result == GAME_OVER_WON)
+ pscores[currentplayer] += 500; //plus a possible bonus
+ }
+ }
+
+ //sort out winners
+ for (i = 0; i < params[PLAYERS]; ++i)
+ {
+ hiscore = 0;
+ for (currentplayer = 0; currentplayer < params[PLAYERS]; ++currentplayer)
+ {
+ if (pscores[currentplayer] >= hiscore)
+ {
+ hiscore = pscores[currentplayer];
+ currentwinner = currentplayer;
+ }
+ winners[i] = currentwinner;
+ pscores[currentwinner] = -1;
+ }
+ }
+ }
+
+ DEBUGMSG(debug_multiplayer, "Game over; showing winners\n");
+
+ showWinners(winners, params[PLAYERS]);
+ cleanupMP();
+}
+
+int mp_get_player_score(int playernum)
+{
+ if (playernum > params[PLAYERS])
+ {
+ DEBUGMSG(debug_multiplayer, "No player %d!\n", playernum);
+ return 0;
+ }
+ return pscores[playernum];
+}
+
+const char* mp_get_player_name(int playernum)
+{
+ if (playernum > params[PLAYERS])
+ {
+ DEBUGMSG(debug_multiplayer, "No player %d!\n", playernum);
+ return 0;
+ }
+ return pnames[playernum];
+}
+
+int mp_get_parameter(unsigned int param)
+{
+ if (param > NUM_PARAMS)
+ {
+ printf("Invalid mp_param index: %d\n", param);
+ return 0;
+ }
+ return params[param];
+}
+
+//TODO a nicer-looking sequence that also recognizes second place etc.
+void showWinners(int* winners, int num)
+{
+ int skip = 0;
+ int i = 0;
+ const int boxspeed = 3;
+ int sectionlength = num * (HIGH_SCORE_NAME_LENGTH + strlen(" wins!\n"));
+ char text[sectionlength];
+ SDL_Rect box = {screen->w / 2, screen->h / 2, 0, 0};
+ SDL_Rect center = box;
+ SDL_Event evt;
+
+ const char* winnername = (winners[0] == -1 ? "Nobody" : pnames[winners[0]] );
+
+ snprintf(text, HIGH_SCORE_NAME_LENGTH + strlen(" wins!"),
+ "%s wins!\n", winnername);
+ for (i = 1; i < num; ++i)
+ {
+ snprintf(strchr(text, '\0'), sectionlength, _("Then %s\n"), pnames[winners[i]]);
+ }
+
+ DEBUGMSG(debug_multiplayer, "%s Win text: %s\n", pnames[winners[0]], text);
+
+ DarkenScreen(1);
+
+ while (box.h < screen->h || box.w < screen->w)
+ {
+ //expand black box
+ box.x -= boxspeed;
+ box.y -= boxspeed;
+ box.h += boxspeed * 2;
+ box.w += boxspeed * 2;
+
+ //reveal text specifying the winner
+ SDL_FillRect(screen, &box, 0);
+ draw_text(text, center);
+ SDL_UpdateRect(screen, box.x, box.y, box.w, box.h);
+
+ while (SDL_PollEvent(&evt) )
+ if (evt.type == SDL_KEYDOWN && evt.key.keysym.sym == SDLK_ESCAPE)
+ skip = 1;
+ if (skip)
+ break;
+ SDL_Delay(50);
+ }
+ //in case we've skipped, cover the whole screen
+ SDL_FillRect(screen, NULL, 0);
+ draw_text(text, center);
+ SDL_Flip(screen);
+ WaitForEvent(SDL_KEYDOWNMASK | SDL_MOUSEBUTTONDOWNMASK);
+}
+
+int initMP()
+{
+ int i;
+ int success = 1;
+ char nrstr[HIGH_SCORE_NAME_LENGTH * 3];
+ int nplayers = params[PLAYERS];
+
+ const char* config_files[5] = {
+ "multiplay/space_cadet",
+ "multiplay/scout",
+ "multiplay/ranger",
+ "multiplay/ace",
+ "multiplay/commando"
+ };
+
+ DEBUGMSG(debug_multiplayer, "Reading in difficulty settings...\n");
+
+ success *= read_global_config_file();
+
+ success *= read_named_config_file("multiplay/mpoptions");
+
+ success *= read_named_config_file(config_files[params[DIFFICULTY]]);
+
+ if (!success)
+ {
+ printf("Couldn't read in settings for %s\n",
+ config_files[params[DIFFICULTY]] );
+ return 1;
+ }
+
+ pscores[0] = pscores[1] = pscores[2] = pscores[3] = 0;
+ pnames[0] = pnames[1] = pnames[2] = pnames[3] = NULL;
+
+ //allocate and enter player names
+ for (i = 0; i < nplayers; ++i)
+ pnames[i] = malloc((1 + 3 * HIGH_SCORE_NAME_LENGTH) * sizeof(char) );
+ for (i = 0; i < nplayers; ++i)
+ {
+ if (pnames[i])
+ {
+ if (i == 0) //First player
+ NameEntry(pnames[i], N_("Who is playing first?"), N_("Enter your name:"));
+ else //subsequent players
+ NameEntry(pnames[i], N_("Who is playing next?"), N_("Enter your name:"));
+ }
+ else
+ {
+ printf("Can't allocate name %d!\n", i);
+ return 1;
+ }
+ }
+
+ //enter how many rounds
+ if (params[MODE] == SCORE_SWEEP)
+ {
+ while (params[ROUNDS] <= 0)
+ {
+ NameEntry(nrstr, N_("How many rounds will you play?"), N_("Enter a number"));
+ params[ROUNDS] = atoi(nrstr);
+ }
+ }
+ inprogress = 1; //now we can start the game
+ return 0;
+}
+
+void cleanupMP()
+{
+ int i;
+
+ for (i = 0; i < params[PLAYERS]; ++i)
+ if (pnames[i])
+ free(pnames[i]);
+
+ for (i = 0; i < NUM_PARAMS; ++i)
+ params[i] = 0;
+
+ inprogress = 0;
+}
diff --git a/src/multiplayer.h b/src/multiplayer.h
new file mode 100644
index 0000000..0901dfd
--- /dev/null
+++ b/src/multiplayer.h
@@ -0,0 +1,36 @@
+#ifndef MULTIPLAYER_H
+#define MULTIPLAYER_H
+
+/*
+
+multiplayer.h - Provides routines for organizing and running a turn-based
+ multiplayer that can accommodate up to four players (more with
+ a recompilation)
+
+Author: B. Luchen
+
+*/
+
+#define MAX_PLAYERS 4
+
+enum {
+ PLAYERS,
+ ROUNDS,
+ DIFFICULTY,
+ MODE,
+ NUM_PARAMS
+};
+
+typedef enum {
+ SCORE_SWEEP,
+ ELIMINATION
+} MP_Mode;
+
+void mp_set_parameter(unsigned int param, int value);
+int mp_get_parameter(unsigned int param);
+void mp_run_multiplayer();
+int mp_get_player_score(int playernum);
+const char* mp_get_player_name(int playernum);
+int mp_num_players();
+
+#endif // MULTIPLAYER_H
diff --git a/src/network.c b/src/network.c
new file mode 100644
index 0000000..15af597
--- /dev/null
+++ b/src/network.c
@@ -0,0 +1,509 @@
+/*
+* C Implementation: network.c
+*
+* Description: Contains all the network-related functions for
+* LAN-based play in "Tux, of Math Command".
+*
+*
+* Author: Akash Gangil, David Bruce, and the TuxMath team, (C) 2009
+* Developers list: <tuxmath-devel at lists.sourceforge.net>
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*/
+
+/* Must have this first for the #ifdef HAVE_LIBSDL_NET to work */
+#include "globals.h"
+
+#ifdef HAVE_LIBSDL_NET
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+#include "mathcards.h"
+#include "transtruct.h"
+#include "network.h"
+#include "throttle.h"
+//#include "testclient.h"
+
+
+TCPsocket sd; /* Server socket descriptor */
+SDLNet_SocketSet set;
+IPaddress serv_ip;
+ServerEntry servers[MAX_SERVERS];
+static int connected_server = -1;
+
+/* Local function prototypes: */
+int say_to_server(char *statement);
+int evaluate(char *statement);
+int add_to_server_list(UDPpacket* pkt);
+
+
+int LAN_DetectServers(void)
+{
+ UDPsocket udpsock = NULL;
+ UDPpacket* out;
+ UDPpacket* in;
+ IPaddress bcast_ip;
+ int sent = 0;
+ int done = 0;
+ int seconds = 0;
+ int num_servers = 0;
+ int i = 0;
+ Uint32 timer = 0;
+ //zero out old server list
+ for(i = 0; i < MAX_SERVERS; i++)
+ servers[i].ip.host = 0;
+
+ /* Docs say we are supposed to call SDL_Init() before SDLNet_Init(): */
+ if(SDL_Init(0) == -1)
+ {
+ printf("SDL_Init: %s\n", SDL_GetError());
+ return 0;;
+ }
+
+ /* Initialize SDL_net */
+ if (SDLNet_Init() < 0)
+ {
+ fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError());
+ exit(EXIT_FAILURE);
+ }
+
+ //NOTE we can't open a UDP socket on the same port if both client
+ //and server are running on the same machine, so for now we let
+ //it be auto-assigned:
+ udpsock = SDLNet_UDP_Open(0);
+ if(!udpsock)
+ {
+ printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ out = SDLNet_AllocPacket(NET_BUF_LEN);
+ in = SDLNet_AllocPacket(NET_BUF_LEN);
+
+ SDLNet_ResolveHost(&bcast_ip, "255.255.255.255", DEFAULT_PORT);
+ out->address.host = bcast_ip.host;
+ sprintf(out->data, "TUXMATH_CLIENT");
+ out->address.port = bcast_ip.port;
+ out->len = strlen("TUXMATH_CLIENT") + 1;
+
+ //Here we will need to send every few seconds until we hear back from server
+ //and get its ip address: IPaddress bcast_ip;
+ printf("\nAutodetecting TuxMath servers:");
+ fflush(stdout);
+ while(!done)
+ {
+ printf(".");
+ fflush(stdout);
+
+ sent = SDLNet_UDP_Send(udpsock, -1, out);
+ if(!sent)
+ {
+ printf("broadcast failed - network inaccessible.\nTrying localhost (for testing)\n");
+ SDLNet_ResolveHost(&bcast_ip, "localhost", DEFAULT_PORT);
+ out->address.host = bcast_ip.host;
+ }
+ SDL_Delay(250); //give server chance to answer
+
+ while(SDLNet_UDP_Recv(udpsock, in))
+ {
+ if(strncmp((char*)in->data, "TUXMATH_SERVER", strlen("TUXMATH_SERVER")) == 0)
+ {
+ done = 1;
+ //add to list, checking for duplicates
+ num_servers = add_to_server_list(in);
+ }
+ }
+ //Make sure we always scan at least one but not more than five seconds:
+ Throttle(1000, &timer); //repeat once per second
+ seconds++;
+ if(seconds < 1)
+ done = 0;
+ if(seconds > 5)
+ done = 1;
+
+ }
+
+ printf("done\n\n");
+
+ SDLNet_FreePacket(out);
+ SDLNet_FreePacket(in);
+ print_server_list();
+ return num_servers;
+}
+
+
+char* LAN_ServerName(int i)
+{
+ if(i < 0 || i > MAX_SERVERS)
+ return NULL;
+ if(servers[i].ip.host != 0)
+ return servers[i].name;
+ else
+ return NULL;
+}
+
+char* LAN_ConnectedServerName(void)
+{
+ return servers[connected_server].name;
+}
+
+//For the simple case where a single server is found, i is
+//always 0. Otherwise the player has to review the choices
+//via LAN_ServerName(i) to get the index
+int LAN_AutoSetup(int i)
+{
+ if(i < 0 || i > MAX_SERVERS)
+ return 0;
+
+ /* Open a connection based on autodetection routine: */
+ if (!(sd = SDLNet_TCP_Open(&servers[i].ip)))
+ {
+ fprintf(stderr, "SDLNet_TCP_Open: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ /* We create a socket set so we can check for activity: */
+ set = SDLNet_AllocSocketSet(1);
+ if(!set)
+ {
+ printf("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ if(SDLNet_TCP_AddSocket(set, sd) == -1)
+ {
+ printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());
+ // perhaps you need to restart the set and make it bigger...
+ }
+
+ // Success - record the index for future reference:
+ connected_server = i;
+ return 1;
+}
+
+
+
+// int LAN_Setup(char *host, int port)
+// {
+// IPaddress ip; /* Server address */
+//
+// if(SDL_Init(0)==-1)
+// {
+// printf("SDL_Init: %s\n", SDL_GetError());
+// return 0;;
+// }
+//
+// if (SDLNet_Init() < 0)
+// {
+// fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError());
+// return 0;
+// }
+//
+// /* Resolve the host we are connecting to */
+// if (SDLNet_ResolveHost(&ip, host, port) < 0)
+// {
+// fprintf(stderr, "SDLNet_ResolveHost: %s\n", SDLNet_GetError());
+// return 0;
+// }
+//
+// /* Open a connection with the IP provided (listen on the host's port) */
+// if (!(sd = SDLNet_TCP_Open(&ip)))
+// {
+// fprintf(stderr, "SDLNet_TCP_Open: %s\n", SDLNet_GetError());
+// return 0;
+// }
+//
+// /* We create a socket set so we can check for activity: */
+// set = SDLNet_AllocSocketSet(1);
+// if(!set)
+// {
+// printf("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
+// return 0;
+// }
+//
+// if(SDLNet_TCP_AddSocket(set, sd) == -1)
+// {
+// printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());
+// // perhaps you need to restart the set and make it bigger...
+// }
+//
+//
+// return 1;
+// }
+
+
+void LAN_Cleanup(void)
+{
+ if(sd)
+ {
+ SDLNet_TCP_Close(sd);
+ sd = NULL;
+ }
+
+ if(set)
+ {
+ SDLNet_FreeSocketSet(set);
+ set = NULL;
+ }
+ SDLNet_Quit();
+}
+
+
+
+int LAN_SetName(char* name)
+{
+ char buf[NET_BUF_LEN];
+ if(!name)
+ return 0;
+ snprintf(buf, NET_BUF_LEN, "%s\t%s", "SET_NAME", name);
+ return say_to_server(buf);
+}
+
+
+
+
+
+
+/* Appears a return value of 0 means message received, 1 means no socket activity */
+int check_messages(char buf[NET_BUF_LEN])
+{
+ int numready;
+
+ //This is supposed to check to see if there is activity:
+ numready = SDLNet_CheckSockets(set, 0);
+ if(numready == -1)
+ {
+ printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
+ //most of the time this is a system error, where perror might help you.
+ perror("SDLNet_CheckSockets");
+ return -1;
+ }
+ else if(numready > 0)
+ {
+ // check socket with SDLNet_SocketReady and handle if active:
+ if(SDLNet_SocketReady(sd))
+ {
+ buf[0] = '\0';
+ if(SDLNet_TCP_Recv(sd, buf, NET_BUF_LEN) <= 0)
+ {
+ fprintf(stderr, "In check_messages(), SDLNet_TCP_Recv() failed!\n");
+ return -1;
+ }
+ return 0;
+ }
+ }
+ return 1;
+}
+
+
+/* Here we get the next message from the server if one is available. */
+/* We return 1 if a message received, 0 if no activity, -1 on errors */
+/* or if connection is lost: */
+int LAN_NextMsg(char* buf)
+{
+ int numready = 0;
+
+ /* Make sure we have place to put message: */
+ if(buf == NULL)
+ {
+ printf("get_next_msg() passed NULL buffer\n");
+ return -1;
+ }
+
+ //Check to see if there is socket activity:
+ numready = SDLNet_CheckSockets(set, 0);
+ if(numready == -1)
+ {
+ printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
+ //most of the time this is a system error, where perror might help you.
+ perror("SDLNet_CheckSockets");
+ return -1;
+ }
+ else if(numready > 0)
+ {
+ // check with SDLNet_SocketReady():
+ if(SDLNet_SocketReady(sd))
+ {
+ buf[0] = '\0';
+
+ if(SDLNet_TCP_Recv(sd, buf, NET_BUF_LEN) > 0)
+ {
+ //Success - message is now in buffer
+ return 1;
+ }
+ else
+ {
+ fprintf(stderr, "In get_next_msg(), SDLNet_TCP_Recv() failed!\n");
+ SDLNet_TCP_DelSocket(set, sd);
+ if(sd != NULL)
+ SDLNet_TCP_Close(sd);
+ sd = NULL;
+ return -1;
+ }
+ }
+ else
+ {
+ fprintf(stderr, "In get_next_msg(), socket set reported active but no activity found\n");
+ SDLNet_TCP_DelSocket(set, sd);
+ if(sd != NULL)
+ SDLNet_TCP_Close(sd);
+ sd = NULL;
+ return -1;
+ }
+ }
+ // No socket activity - just return 0:
+ return 0;
+}
+
+
+
+
+int Make_Flashcard(char* buf, MC_FlashCard* fc)
+{
+ int i = 0,tab = 0, s = 0;
+ char formula[MC_FORMULA_LEN];
+ sscanf (buf,"%*s%d%d%d%s",
+ &fc->question_id,
+ &fc->difficulty,
+ &fc->answer,
+ fc->answer_string); /* can't formula_string in sscanf in here cause it includes spaces*/
+
+ /*doing all this cause sscanf will break on encountering space in formula_string*/
+ /* NOTE changed to index notation so we keep within NET_BUF_LEN */
+ while(buf[i]!='\n' && i < NET_BUF_LEN)
+ {
+ if(buf[i]=='\t')
+ tab++;
+ i++;
+ if(tab == 5)
+ break;
+ }
+
+ while((buf[i] != '\n')
+ && (s < MC_FORMULA_LEN - 1)) //Must leave room for terminating null
+ {
+ formula[s] = buf[i] ;
+ i++;
+ s++;
+ }
+ formula[s]='\0';
+ strcpy(fc->formula_string, formula);
+
+ DEBUGMSG(debug_lan, "In Make_Flashcard, new card is:\n");
+ DEBUGCODE(debug_lan) print_card(*fc);
+
+return 1;
+}
+
+
+int LAN_StartGame(void)
+{
+ char buffer[NET_BUF_LEN];
+ snprintf(buffer, NET_BUF_LEN, "%s", "START_GAME");
+ return say_to_server(buffer);
+}
+
+
+int LAN_AnsweredCorrectly(int id, float t)
+{
+ char buffer[NET_BUF_LEN];
+ snprintf(buffer, NET_BUF_LEN, "%s\t%d\t%f", "CORRECT_ANSWER", id, t);
+ return say_to_server(buffer);
+}
+
+
+int LAN_NotAnsweredCorrectly(int id)
+{
+ char buffer[NET_BUF_LEN];
+ snprintf(buffer, NET_BUF_LEN, "%s\t%d", "WRONG_ANSWER", id);
+ return say_to_server(buffer);
+}
+
+
+/* This tells the server we are quitting the current math game, but */
+/* not disconnecting our socket: */
+int LAN_LeaveGame(void)
+{
+ char buf[NET_BUF_LEN];
+ snprintf(buf, NET_BUF_LEN, "%s", "LEAVE_GAME");
+ return say_to_server(buf);
+}
+
+
+
+/*private to network.c functions*/
+
+int say_to_server(char* statement)
+{
+ char buffer[NET_BUF_LEN];
+
+ if(!statement)
+ return 0;
+
+ snprintf(buffer, NET_BUF_LEN,
+ "%s",
+ statement);
+ if (SDLNet_TCP_Send(sd, (void *)buffer, NET_BUF_LEN) < NET_BUF_LEN)
+ {
+ fprintf(stderr, "SDLNet_TCP_Send: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ return 1;
+}
+
+//add name to list, checking for duplicates:
+int add_to_server_list(UDPpacket* pkt)
+{
+ int i = 0;
+ int already_in = 0;
+ char* p = NULL;
+
+ if(!pkt)
+ return 0;
+
+ //first see if it is already in list:
+ while((i < MAX_SERVERS)
+ && (servers[i].ip.host != 0))
+ {
+ if(pkt->address.host == servers[i].ip.host)
+ already_in = 1;
+ i++;
+ }
+
+ //Copy it in unless it's already there, or we are out of room:
+ if(!already_in && i < MAX_SERVERS)
+ {
+ servers[i].ip.host = pkt->address.host;
+ servers[i].ip.port = pkt->address.port;
+ // not using sscanf() because server_name could contain whitespace:
+ p = strchr(pkt->data, '\t');
+ p++;
+ if(p)
+ strncpy(servers[i].name, p, NAME_SIZE);
+
+ i++;
+ }
+
+ return i; //i should be the number of items in the list
+}
+
+void print_server_list(void)
+{
+ int i = 0;
+ printf("Detected servers:\n");
+ while(i < MAX_SERVERS && servers[i].ip.host != 0)
+ {
+ printf("SERVER NUMBER %d: %s\n", i, servers[i].name);
+ i++;
+ }
+}
+
+
+
+#endif
diff --git a/src/network.h b/src/network.h
new file mode 100644
index 0000000..797385c
--- /dev/null
+++ b/src/network.h
@@ -0,0 +1,65 @@
+/*
+
+ network.h
+
+ Description: Provides routines for various networking functions to be used
+ in the LAN multiplayer game.
+ Author: David Bruce ,Akash Gangil and the TuxMath team, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+
+
+
+
+#ifndef NETWORK_H
+#define NETWORK_H
+
+#include "config.h"
+
+#ifdef HAVE_LIBSDL_NET
+
+#include "transtruct.h"
+#include "SDL_net.h"
+
+
+typedef struct {
+ IPaddress ip; /* 32-bit IPv4 host address */
+ char name[NAME_SIZE];
+}ServerEntry;
+
+
+/* Networking setup and cleanup: */
+int LAN_DetectServers(void);
+int LAN_AutoSetup(int i);
+char* LAN_ServerName(int i);
+char* LAN_ConnectedServerName(void);
+void print_server_list(void);
+
+//int LAN_Setup(char* host, int port);
+void LAN_Cleanup(void);
+int LAN_SetName(char* name);
+
+/* Network replacement functions for mathcards "API": */
+/* These functions are how the client tells things to the server: */
+int LAN_StartGame(void);
+int LAN_AnsweredCorrectly(int id, float t);
+int LAN_NotAnsweredCorrectly(int id);
+int LAN_LeaveGame(void);
+/* This is how the client receives messages from the server: */
+int LAN_NextMsg(char* buf);
+
+/* NOTE probably won't have this in multiplayer - new quests determined by server */
+//int LAN_NextQuestion(void);
+
+
+
+/* FIXME appears this one is basically the same as LAN_NextMsg() */
+int check_messages(char *);
+/* FIXME this should be local to network.c */
+int Make_Flashcard(char* buf, MC_FlashCard* fc);
+
+#endif // HAVE_LIBSDL_NET
+
+#endif // NETWORK_H
diff --git a/src/options.c b/src/options.c
new file mode 100644
index 0000000..880c813
--- /dev/null
+++ b/src/options.c
@@ -0,0 +1,1189 @@
+/*
+ options.c
+
+ For TuxMath
+ The options screen loop.
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+ Modified extensively by David Bruce
+ davidstuartbruce at gmail.com
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com
+
+ August 26, 2001 - July 11, 2007
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+//#include "SDL.h"
+
+#include "mathcards.h"
+
+#include "options.h"
+#include "fileops.h"
+#include "setup.h"
+#include "game.h"
+#include "globals.h"
+//#include "tuxmath.h"
+
+/* FIXME figure out what oper_override is supposed to do and make sure */
+/* this file behaves accordingly! */
+
+//int opers[NUM_OPERS], range_enabled[NUM_Q_RANGES];
+
+/* global debug masks */
+int debug_status;
+
+/* bitmasks for debugging options */
+const int debug_setup = 1 << 0;
+const int debug_fileops = 1 << 1;
+const int debug_loaders = 1 << 2;
+const int debug_titlescreen = 1 << 3;
+const int debug_menu = 1 << 4;
+const int debug_menu_parser = 1 << 5;
+const int debug_game = 1 << 6;
+const int debug_factoroids = 1 << 7;
+const int debug_lan = 1 << 8;
+const int debug_mathcards = 1 << 9;
+const int debug_sdl = 1 << 10;
+const int debug_lessons = 1 << 11;
+const int debug_highscore = 1 << 12;
+const int debug_options = 1 << 13;
+const int debug_convert_utf = 1 << 14;
+const int debug_multiplayer = 1 << 15;
+const int debug_all = ~0;
+
+/* extern'd constants */
+
+const char* const OPTION_TEXT[NUM_GLOBAL_OPTS+1] = {
+ "PER_USER_CONFIG",
+ "USE_SOUND",
+ "MENU_SOUND",
+ "MENU_MUSIC",
+ "FULLSCREEN",
+ "USE_KEYPAD",
+ "USE_IGLOOS",
+ "END_OF_OPTS"
+};
+
+const int DEFAULT_GLOBAL_OPTS[NUM_GLOBAL_OPTS] = {
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 1
+};
+
+
+/* file scope only now that accessor functions used: */
+static game_option_type* game_options;
+static global_option_type* global_options;
+
+/*local function prototypes: */
+static int int_to_bool(int i);
+//static int find_and_set_option(const char* name, int val);
+
+
+/********************************************************************/
+/* "Public Methods" for options struct: */
+/********************************************************************/
+
+int Opts_Initialize(void)
+{
+ int i;
+
+ game_options = malloc(sizeof(game_option_type));
+ global_options = malloc(sizeof(global_option_type));
+ /* bail out if no struct */
+ if (!game_options)
+ return 0;
+
+ /* set global program options */
+ for (i = 0; i < NUM_GLOBAL_OPTS; ++i)
+ global_options->iopts[i] = DEFAULT_GLOBAL_OPTS[i];
+
+ /* set general game options */
+ global_options->iopts[PER_USER_CONFIG] = DEFAULT_PER_USER_CONFIG;
+ global_options->iopts[USE_SOUND] = DEFAULT_USE_SOUND;
+ global_options->iopts[MENU_SOUND] = DEFAULT_MENU_SOUND;
+ global_options->iopts[MENU_MUSIC] = DEFAULT_MENU_MUSIC;
+ global_options->iopts[FULLSCREEN] = DEFAULT_FULLSCREEN;
+ global_options->iopts[USE_KEYPAD] = DEFAULT_USE_KEYPAD;
+ global_options->iopts[USE_IGLOOS] = DEFAULT_USE_IGLOOS;
+ strncpy(game_options->current_font_name, DEFAULT_FONT_NAME,
+ sizeof(game_options->current_font_name));
+ game_options->lan_mode = DEFAULT_LAN_MODE;
+ game_options->use_bkgd = DEFAULT_USE_BKGD;
+ game_options->help_mode = DEFAULT_HELP_MODE;
+ game_options->demo_mode = DEFAULT_DEMO_MODE;
+ game_options->oper_override = DEFAULT_OPER_OVERRIDE;
+ game_options->allow_pause = DEFAULT_ALLOW_PAUSE;
+ game_options->bonus_comet_interval = DEFAULT_BONUS_COMET_INTERVAL;
+ game_options->bonus_speed_ratio = DEFAULT_BONUS_SPEED_RATIO;
+ game_options->speed = DEFAULT_SPEED;
+ game_options->allow_speedup = DEFAULT_ALLOW_SPEEDUP;
+ game_options->speedup_factor = DEFAULT_SPEEDUP_FACTOR;
+ game_options->max_speed = DEFAULT_MAX_SPEED;
+ game_options->slow_after_wrong = DEFAULT_SLOW_AFTER_WRONG;
+ game_options->starting_comets = DEFAULT_STARTING_COMETS;
+ game_options->extra_comets_per_wave = DEFAULT_EXTRA_COMETS_PER_WAVE;
+ game_options->max_comets = DEFAULT_MAX_COMETS;
+ game_options->save_summary = DEFAULT_SAVE_SUMMARY;
+ game_options->sound_hw_available = DEFAULT_SOUND_HW_AVAILABLE;
+ game_options->use_feedback = DEFAULT_USE_FEEDBACK;
+ game_options->danger_level = DEFAULT_DANGER_LEVEL;
+ game_options->danger_level_speedup = DEFAULT_DANGER_LEVEL_SPEEDUP;
+ game_options->danger_level_max = DEFAULT_DANGER_LEVEL_MAX;
+ game_options->city_expl_handicap = DEFAULT_CITY_EXPL_HANDICAP;
+ game_options->last_score = DEFAULT_LAST_SCORE;
+
+ game_options->num_cities = DEFAULT_NUM_CITIES; /* MUST BE AN EVEN NUMBER! */
+ game_options->max_city_colors = DEFAULT_MAX_CITY_COLORS;
+
+ DEBUGCODE(debug_options)
+ print_game_options(stdout, 0);
+
+ return 1;
+}
+
+
+void Opts_Cleanup(void)
+{
+ if (game_options)
+ {
+ free(game_options);
+ game_options = 0;
+ }
+}
+
+
+//* "Set" functions for tuxmath options struct: */
+unsigned int Opts_MapTextToIndex(const char* text)
+{
+ int i;
+ for (i = 0; i < NUM_GLOBAL_OPTS; ++i)
+ {
+ if (0 == strcasecmp(text, OPTION_TEXT[i]) )
+ return i;
+ }
+ DEBUGMSG(debug_options, "'%s' isn't a global option\n", text);
+ return -1;
+}
+
+int Opts_GetGlobalOp(const char* text)
+{
+ int index = Opts_MapTextToIndex(text);
+ if (index < NUM_GLOBAL_OPTS)
+ return Opts_GetGlobalOpt(index);
+ return 0;
+}
+
+int Opts_GetGlobalOpt(unsigned int index)
+{
+ if (index < NUM_GLOBAL_OPTS)
+ return global_options->iopts[index];
+ DEBUGMSG(debug_options, "Invalid global option index: %d\n", index);
+ return 0;
+}
+
+void Opts_SetGlobalOp(const char* text, int val)
+{
+ int index = Opts_MapTextToIndex(text);
+ if (index < NUM_GLOBAL_OPTS)
+ Opts_SetGlobalOpt(index, val);
+}
+
+void Opts_SetGlobalOpt(unsigned int index, int val)
+{
+ if (index < NUM_GLOBAL_OPTS)
+ global_options->iopts[index] = val;
+ else
+ DEBUGMSG(debug_options, "Invalid global option index: %d\n", index);
+}
+
+
+//void Opts_SetPerUserConfig(int val)
+//{
+// global_options->iopts[PER_USER_CONFIG] = int_to_bool(val);
+//}
+//
+//
+//void Opts_SetUseSound(int val)
+//{
+// if (val == -1)
+// global_options->iopts[USE_SOUND] = val;
+// else if (global_options->iopts[USE_SOUND] != -1)
+// global_options->iopts[USE_SOUND] = int_to_bool(val);
+//}
+//
+//
+//void Opts_SetMenuSound(int val)
+//{
+// global_options->iopts[MENU_SOUND] = int_to_bool(val);
+//}
+//
+//
+//void Opts_SetMenuMusic(int val)
+//{
+// global_options->iopts[MENU_MUSIC] = int_to_bool(val);
+//}
+
+
+///* FIXME need to actually change screen resolution when this is called */
+//void Opts_SetFullscreen(int val)
+//{
+// global_options->iopts[FULLSCREEN] = int_to_bool(val);
+//}
+
+void Opts_SetLanMode(int val)
+{
+ game_options->lan_mode = int_to_bool(val);
+}
+
+
+void Opts_SetFontName(char* font_name)
+{
+ if (font_name && font_name[0] != '\0')
+ strncpy(game_options->current_font_name, font_name, sizeof(game_options->current_font_name));
+}
+
+void Opts_SetUseBkgd(int val)
+{
+ game_options->use_bkgd = int_to_bool(val);
+}
+
+
+void Opts_SetHelpMode(int val)
+{
+ game_options->help_mode = int_to_bool(val);
+}
+
+
+void Opts_SetDemoMode(int val)
+{
+ game_options->demo_mode = int_to_bool(val);
+}
+
+
+void Opts_SetOperOverride(int val)
+{
+ game_options->oper_override = int_to_bool(val);
+}
+
+
+//void Opts_SetUseKeypad(int val)
+//{
+// global_options->iopts[USE_KEYPAD] = int_to_bool(val);
+//}
+
+
+void Opts_SetAllowPause(int val)
+{
+ game_options->allow_pause = int_to_bool(val);
+}
+
+
+//void Opts_SetUseIgloos(int val)
+//{
+// global_options->iopts[USE_IGLOOS] = int_to_bool(val);
+//}
+
+
+void Opts_SetBonusCometInterval(int val)
+{
+ if (val < 0)
+ val = 0;
+ game_options->bonus_comet_interval = val;
+}
+
+
+void Opts_SetBonusSpeedRatio(float val)
+{
+ if (val < 1)
+ {
+ val = 1;
+ fprintf(stderr,"bonus_speed_ratio must be at least 1, resetting accordingly.\n");
+ }
+ if (val > MAX_BONUS_SPEED_RATIO)
+ {
+ val = MAX_BONUS_SPEED_RATIO;
+ fprintf(stderr,"Warning: requested bonus_speed_ratio above maximum, setting to %g.\n",MAX_BONUS_SPEED_RATIO);
+ }
+ game_options->bonus_speed_ratio = val;
+}
+
+
+void Opts_SetSpeed(float val)
+{
+ if (val < MINIMUM_SPEED)
+ {
+ val = MINIMUM_SPEED;
+ fprintf(stderr,"Warning: requested speed below minimum, setting to %g.\n",MINIMUM_SPEED);
+ }
+ if (val > MAX_MAX_SPEED)
+ {
+ val = MAX_MAX_SPEED;
+ fprintf(stderr,"Warning: requested speed above Tuxmath's maximum, setting to %g.\n",MAX_MAX_SPEED);
+ }
+ if (val > Opts_MaxSpeed())
+ {
+ val = Opts_MaxSpeed();
+ fprintf(stderr,"Warning: requested speed above currently selected maximum, setting to %g.\n",
+ Opts_MaxSpeed());
+ }
+ game_options->speed = val;
+}
+
+
+void Opts_SetAllowSpeedup(int val)
+{
+ game_options->allow_speedup = int_to_bool(val);
+}
+
+
+void Opts_SetSpeedupFactor(float val)
+{
+ if (val < MIN_SPEEDUP_FACTOR)
+ {
+ val = MIN_SPEEDUP_FACTOR;
+ fprintf(stderr,"Warning: requested speedup factor below Tuxmath's minimum, setting to %g.\n",MIN_SPEEDUP_FACTOR);
+ }
+ if (val > MAX_SPEEDUP_FACTOR)
+ {
+ val = MAX_SPEEDUP_FACTOR;
+ fprintf(stderr,"Warning: requested speedup factor above Tuxmath's maximum, setting to %g.\n",MAX_SPEEDUP_FACTOR);
+ }
+ game_options->speedup_factor = val;
+}
+
+
+void Opts_SetMaxSpeed(float val)
+{
+ if (val < MINIMUM_SPEED)
+ {
+ val = MINIMUM_SPEED;
+ fprintf(stderr,"Warning: requested max speed below minimum, setting to %g.\n",
+ MINIMUM_SPEED);
+ }
+ if (val > MAX_MAX_SPEED)
+ {
+ val = MAX_MAX_SPEED;
+ fprintf(stderr,"Warning: requested max speed above Tuxmath's maximum, setting to %g.\n",
+ MAX_MAX_SPEED);
+ }
+ if (val < Opts_Speed())
+ {
+ val = Opts_Speed();
+ fprintf(stderr,"Warning: requested max speed less than current speed, setting to %g.\n",
+ Opts_MaxSpeed());
+ }
+ game_options->max_speed = val;
+}
+
+
+void Opts_SetSlowAfterWrong(int val)
+{
+ game_options->slow_after_wrong = int_to_bool(val);
+}
+
+
+void Opts_SetStartingComets(int val)
+{
+ if (val < MIN_COMETS)
+ {
+ val = MIN_COMETS;
+ fprintf(stderr,"Warning: requested starting comets below Tuxmath's minimum, setting to %d.\n",
+ MIN_COMETS);
+ }
+ if (val > MAX_MAX_COMETS)
+ {
+ val = MAX_MAX_COMETS;
+ fprintf(stderr,"Warning: requested starting comets above Tuxmath's maximum, setting to %d.\n",
+ MAX_MAX_COMETS);
+ }
+ if (val > Opts_MaxComets())
+ {
+ val = Opts_MaxComets();
+ fprintf(stderr,"Warning: requested starting comets above currently selected maximum, setting to %d.\n",
+ Opts_MaxComets());
+ }
+ game_options->starting_comets = val;
+}
+
+
+void Opts_SetExtraCometsPerWave(int val)
+{
+ if (val < 0)
+ {
+ val = 0;
+ fprintf(stderr,"Warning: requested extra comets below Tuxmath's minimum, setting to %d.\n",
+ 0);
+ }
+ if (val > MAX_MAX_COMETS)
+ {
+ val = MAX_MAX_COMETS;
+ fprintf(stderr,"Warning: requested extra comets above Tuxmath's maximum, setting to %d.\n",
+ MAX_MAX_COMETS);
+ }
+ if (val > Opts_MaxComets())
+ {
+ val = Opts_MaxComets();
+ fprintf(stderr,"Warning: requested extra comets above currently selected maximum, setting to %d.\n",
+ Opts_MaxComets());
+ }
+ game_options->extra_comets_per_wave = val;
+}
+
+
+void Opts_SetMaxComets(int val)
+{
+ if (val < MIN_COMETS)
+ {
+ val = MIN_COMETS;
+ fprintf(stderr,"Warning: requested max comets below Tuxmath's minimum, setting to %d.\n",
+ MIN_COMETS);
+ }
+ if (val > MAX_MAX_COMETS)
+ {
+ val = MAX_MAX_COMETS;
+ fprintf(stderr,"Warning: requested max comets above Tuxmath's maximum, setting to %d.\n",
+ MAX_MAX_COMETS);
+ }
+ game_options->max_comets = val;
+}
+
+
+void Opts_SetNextMission(char* str)
+{
+ int len = strlen(str);
+ if (len < PATH_MAX)
+ {
+ strcpy(game_options->next_mission, str);
+ }
+ else
+ {
+ fprintf(stderr,"Warning: Opts_SetNextMission() - string invalid or overflow\n");
+ }
+}
+
+
+void Opts_SetSaveSummary(int val)
+{
+ game_options->save_summary = int_to_bool(val);
+}
+
+
+void Opts_SetUseFeedback(int val)
+{
+ game_options->use_feedback = int_to_bool(val);
+}
+
+
+void Opts_SetDangerLevel(float val)
+{
+ if (val < 0)
+ {
+ val = 0;
+ fprintf(stderr,"Warning: danger level must be between 0 and 1, setting to 0.\n");
+ }
+ if (val > 1)
+ {
+ val = 1;
+ fprintf(stderr,"Warning: danger level must be between 0 and 1, setting to 1.\n");
+ }
+ game_options->danger_level = val;
+}
+
+
+void Opts_SetDangerLevelSpeedup(float val)
+{
+ if (val < 1)
+ {
+ val = 1;
+ fprintf(stderr,"Warning: danger_level_speedup must be at least 1, setting to 1.\n");
+ }
+ game_options->danger_level_speedup = val;
+}
+
+
+void Opts_SetDangerLevelMax(float val)
+{
+ if (val < 0)
+ {
+ val = 0;
+ fprintf(stderr,"Warning: danger level max must be between 0 and 1, setting to 0.\n");
+ }
+ if (val > 1)
+ {
+ val = 1;
+ fprintf(stderr,"Warning: danger level max must be between 0 and 1, setting to 1.\n");
+ }
+ game_options->danger_level_max = val;
+}
+
+
+void Opts_SetCityExplHandicap(float val)
+{
+ if (val < 0)
+ {
+ val = 0;
+ fprintf(stderr,"Warning: city_explode_handicap level set below minimum, setting to 0.\n");
+ }
+ game_options->city_expl_handicap = val;
+}
+
+
+
+/* whether sound system is successfully initialized and sound files loaded: */
+/* this flag is set by the program, not the user, and is not in the config file. */
+void Opts_SetSoundHWAvailable(int val)
+{
+ game_options->sound_hw_available = int_to_bool(val);
+}
+
+/* Allows game() to store score for high score table code: */
+void Opts_SetLastScore(int val)
+{
+ game_options->last_score = val;
+}
+
+void Opts_SetKeepScore(int val)
+{
+ game_options->keep_score = val;
+}
+
+
+/* "Get" functions for tuxmath options struct: */
+//int Opts_PerUserConfig(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_PerUserConfig(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[PER_USER_CONFIG];
+//}
+//
+//
+//int Opts_UseSound(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_UseSound(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[USE_SOUND] > 0;
+//}
+//
+//
+//int Opts_MenuSound(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_MenuSound(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[MENU_SOUND];
+//}
+//
+//
+//int Opts_MenuMusic(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_MenuMusic(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[MENU_MUSIC];
+//}
+//
+//
+//int Opts_Fullscreen(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_Fullscreen(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[FULLSCREEN];
+//}
+
+
+int Opts_LanMode(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_LanMode(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->lan_mode;
+}
+
+
+const char* Opts_FontName(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_FontName(): game_options not valid!\n");
+ return NULL;
+ }
+ return (const char*) game_options->current_font_name;
+}
+
+int Opts_UseBkgd(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_UserBkgd(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->use_bkgd;
+}
+
+
+int Opts_HelpMode(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_HelpMode(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->help_mode;
+}
+
+
+int Opts_DemoMode(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_DemoMode(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->demo_mode;
+}
+
+
+int Opts_OperOverride(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_OperOverride(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->oper_override;
+}
+
+
+//int Opts_UseKeypad(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_UseKeypad(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[USE_KEYPAD];
+//}
+//
+//
+int Opts_AllowPause(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_AllowPause(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->allow_pause;
+}
+
+
+//int Opts_UseIgloos(void)
+//{
+// if (!game_options)
+// {
+// fprintf(stderr, "\nOpts_UseIgloos(): game_options not valid!\n");
+// return GAME_OPTS_INVALID;
+// }
+// return global_options->iopts[USE_IGLOOS];
+//}
+
+int Opts_BonusCometInterval(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_BonusCometInterval(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->bonus_comet_interval;
+}
+
+
+float Opts_BonusSpeedRatio(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_BonusSpeedRatio(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->bonus_speed_ratio;
+}
+
+
+float Opts_Speed(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_Speed(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->speed;
+}
+
+
+int Opts_AllowSpeedup(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_AllowSpeedup(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->allow_speedup;
+}
+
+
+float Opts_SpeedupFactor(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_SpeedupFactor(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->speedup_factor;
+}
+
+
+float Opts_MaxSpeed(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_MaxSpeed(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->max_speed;
+}
+
+
+int Opts_SlowAfterWrong(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_SlowAfterWrong(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->slow_after_wrong;
+}
+
+
+int Opts_StartingComets(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_StartingComets(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->starting_comets;
+}
+
+
+int Opts_ExtraCometsPerWave(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_ExtraCometsPerWave(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->extra_comets_per_wave;
+}
+
+
+int Opts_MaxComets(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_MaxComets(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->max_comets;
+}
+
+/* FIXME maybe not good idea to have a malloc() in a function like this: */
+char* Opts_NextMission(void)
+{
+ char* str;
+ int length;
+ length = strlen(game_options->next_mission);
+ str = malloc((length * sizeof(char)) + 1);
+ strcpy(str, game_options->next_mission);
+ return str;
+}
+
+
+int Opts_SaveSummary(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_SaveSummary(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->save_summary;
+}
+
+
+int Opts_LastScore(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_LastScore(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->last_score;
+}
+
+
+int Opts_UseFeedback(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_UseFeedback(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->use_feedback;
+}
+
+
+float Opts_DangerLevel(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_DangerLevel(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->danger_level;
+}
+
+
+float Opts_DangerLevelSpeedup(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_DangerLevelSpeedup(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->danger_level_speedup;
+}
+
+
+float Opts_DangerLevelMax(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_DangerLevelMax(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->danger_level_max;
+}
+
+
+float Opts_CityExplHandicap(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_CityExplHandicap(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->city_expl_handicap;
+}
+
+
+
+/* whether sound system is successfully initialized and sound files loaded: */
+/* this flag is set by the program, not the user, and is not in the config file. */
+int Opts_SoundHWAvailable(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_SoundHWAvailable(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->sound_hw_available;
+}
+
+
+/* Returns true if only if the player wants to use sound */
+/* and the sound system is actually available: */
+int Opts_UsingSound(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_UsingSound(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return (global_options->iopts[USE_SOUND]>0 && game_options->sound_hw_available);
+}
+
+int Opts_KeepScore(void)
+{
+ if (!game_options)
+ {
+ fprintf(stderr, "\nOpts_KeepScore(): game_options not valid!\n");
+ return GAME_OPTS_INVALID;
+ }
+ return game_options->keep_score;
+}
+/********************************************************************/
+/* "private methods" (static functions only visible in options.c) */
+/********************************************************************/
+
+
+
+
+
+/* to prevent option settings in math_opts from getting set to */
+/* values other than 0 or 1 */
+int int_to_bool(int i)
+{
+ if (i)
+ return 1;
+ else
+ return 0;
+}
+
+///* determine which option class a name belongs to, and set it */
+///* accordingly. Returns 1 on success, 0 on failure */
+//static int find_and_set_option(const char* name, int val)
+//{
+// int index = -1;
+//
+// if ((index = MC_MapTextToIndex(name)) != -1) //is it a math opt?
+// MC_SetOpt(index, val);
+// else if ((index = Opts_MapTextToIndex(name)) != -1) //is it a global opt?
+// Opts_SetGlobalOpt(index, val);
+// else //no? oh well.
+// return 0;
+//
+// return 1;
+//}
+
+/* prints struct to stream: */
+void print_game_options(FILE* fp, int verbose)
+{
+ /* bail out if no struct */
+ if (!game_options)
+ {
+ fprintf(stderr, "print_game_options(): invalid game_option_type struct");
+ return;
+ }
+
+ if(verbose)
+ {
+ fprintf (fp, "\n############################################################\n"
+ "# #\n"
+ "# General Game Options #\n"
+ "# #\n"
+ "# The following options are boolean (true/false) variables #\n"
+ "# that control various aspects of Tuxmath's behavior. #\n"
+ "# The program writes the values to the file as either '0' #\n"
+ "# or '1'. However, the program accepts 'n', 'no', 'f', and #\n"
+ "# 'false' as synonyms for '0', and similarly accepts 'y', #\n"
+ "# 'yes', 't', and 'true' as synonyms for '1' (all case- #\n"
+ "# insensitive). #\n"
+ "############################################################\n\n");
+ }
+
+ if(verbose)
+ {
+ fprintf (fp, "############################################################\n"
+ "# 'PER_USER_CONFIG' determines whether Tuxmath will look #\n"
+ "# in the user's home directory for settings. Default is 1 #\n"
+ "# (yes). If deselected, the program will ignore the user's #\n"
+ "# .tuxmath file and use the the global settings in the #\n"
+ "# installation-wide config file. #\n"
+ "# This setting cannot be changed by an ordinary user. #\n"
+ "############################################################\n");
+ }
+ fprintf(fp, "PER_USER_CONFIG = %d\n", global_options->iopts[PER_USER_CONFIG]);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Self-explanatory, default is 1:\n");
+ }
+ fprintf(fp, "USE_SOUND = %d\n", global_options->iopts[USE_SOUND]>0);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Use FULLSCREEN at 640x480 resolution instead of\n"
+ "640x480 window. Default is 1 (FULLSCREEN). Change to 0\n"
+ "if SDL has trouble with FULLSCREEN on your system.\n");
+ }
+ fprintf(fp, "FULLSCREEN = %d\n", global_options->iopts[FULLSCREEN]);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Use 640x480 jpg image for background; default is 1.\n");
+ }
+ fprintf(fp, "use_bkgd = %d\n", game_options->use_bkgd);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Program runs as demo; default is 0.\n");
+ }
+ fprintf(fp, "demo_mode = %d\n", game_options->demo_mode);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Use operator selection from command line; default is 0.\n");
+ }
+ fprintf(fp, "oper_override = %d\n", game_options->oper_override);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Display onscreen numeric keypad; default is 0.\n");
+ }
+ fprintf(fp, "USE_KEYPAD = %d\n", global_options->iopts[USE_KEYPAD]);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n############################################################\n"
+ "# The next settings determine the speed and number #\n"
+ "# of comets. The speed settings are float numbers (mean- #\n"
+ "# ing decimals allowed). The comet settings are integers. #\n"
+ "# #\n"
+ "# Starting comet speed and max comet speed are generally #\n"
+ "# applicable. The main choice is whether you want to use #\n"
+ "# feedback, i.e., to adjust the speed automatically based #\n"
+ "# on the player's performance. #\n"
+ "# #\n"
+ "# Without feedback, the speed increases by a user- #\n"
+ "# settable factor ('speedup_factor'), with an option #\n"
+ "# ('slow_after_wrong') to go back to the starting speed #\n"
+ "# when a city gets hit. #\n"
+ "# #\n"
+ "# With feedback, you set a desired 'danger level,' which #\n"
+ "# determines how close the comets should typically #\n"
+ "# approach the cities before the player succeeds in #\n"
+ "# destroying them. The game will adjust its speed #\n"
+ "# accordingly, getting faster when the player is easily #\n"
+ "# stopping the comets, and slowing down when there are #\n"
+ "# too many close calls or hits. You can also have the #\n"
+ "# danger level increase with each wave. #\n"
+ "############################################################\n");
+ }
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Whether to increase speed and number of comets with \n"
+ "# each wave. May want to turn this off for smaller kids.\n"
+ "# Default is 1 (allow game to speed up)\n");
+ }
+ fprintf(fp, "allow_speedup = %d\n", game_options->allow_speedup);
+
+
+ fprintf(fp, "slow_after_wrong = %d\n", game_options->slow_after_wrong);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Starting comet speed. Default is 1.\n");
+ }
+ fprintf(fp, "speed = %f\n", game_options->speed);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# If feedback is not used but 'allow_speedup' is\n"
+ "# enabled, the comet speed will be\n"
+ "# multiplied by this factor with each new wave.\n"
+ "# Default is 1.2 (i.e. 20 percent increase per wave)\n");
+ }
+ fprintf(fp, "speedup_factor = %f\n", game_options->speedup_factor);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Maximum speed. Default is 10.\n");
+ }
+ fprintf(fp, "max_speed = %f\n", game_options->max_speed);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Number of comets for first wave. Default is 2.\n");
+ }
+ fprintf(fp, "starting_comets = %d\n", game_options->starting_comets);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Comets to add for each successive wave. Default is 2.\n");
+ }
+ fprintf(fp, "extra_comets_per_wave = %d\n", game_options->extra_comets_per_wave);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Maximum number of comets. Default is 10.\n");
+ }
+ fprintf(fp, "max_comets = %d\n", game_options->max_comets);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# Use feedback? Default (for now) is false, 0.\n");
+ }
+ fprintf(fp, "use_feedback = %d\n", game_options->use_feedback);
+
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the desired danger level.\n"
+ "# 0 = too safe, comets typically exploded right at the very top\n"
+ "# 1 = too dangerous, comets typically exploded at the moment they hit cities\n"
+ "# Set it somewhere between these extremes. As a guideline, early\n"
+ "# elementary kids might feel comfortable around 0.2-0.3, older kids\n"
+ "# at around 0.4-0.6. Default 0.35.\n");
+ }
+ fprintf(fp, "danger_level = %f\n", game_options->danger_level);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set danger level speedup.\n"
+ "# The margin of safety will decrease by this factor each wave.\n"
+ "# Default 1.1. Note 1 = no increase in danger level.\n");
+ }
+ fprintf(fp, "danger_level_speedup = %f\n", game_options->danger_level_speedup);
+
+ if(verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the maximum danger level.\n"
+ "# Default 0.9.\n");
+ }
+ fprintf(fp, "danger_level_max = %f\n", game_options->danger_level_max);
+
+ if (verbose)
+ {
+ fprintf (fp, "\n# (Feedback) Set the handicap for hitting cities.\n"
+ "# When bigger than 0, this causes the game to slow down\n"
+ "# by an extra amount after a wave in which one or more\n"
+ "# cities get hit. Note that this is similar to slow_after_wrong,\n"
+ "# but allows for more gradual changes.\n"
+ "# Default 0 (no extra handicap).\n");
+ }
+ fprintf(fp, "city_explode_handicap = %f\n", game_options->city_expl_handicap);
+
+/*
+ fprintf(fp, "num_cities = %d\n", game_options->num_cities);
+ fprintf(fp, "num_bkgds = %d\n", game_options->num_bkgds);
+ fprintf(fp, "max_city_colors = %d\n", game_options->max_city_colors);
+*/
+}
diff --git a/src/options.h b/src/options.h
new file mode 100644
index 0000000..effa6ff
--- /dev/null
+++ b/src/options.h
@@ -0,0 +1,196 @@
+/*
+ options.h
+
+ For TuxMath
+ The options screen loop.
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - February 21, 2003
+
+ Extensively revised by David Bruce
+ 2004-2007
+*/
+
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include "globals.h" /* needed for PATH_MAX definition */
+
+enum {
+ PER_USER_CONFIG,
+ USE_SOUND,
+ MENU_SOUND,
+ MENU_MUSIC,
+ FULLSCREEN,
+ USE_KEYPAD,
+ USE_IGLOOS,
+ NUM_GLOBAL_OPTS
+};
+
+extern const char* const OPTION_TEXT[];
+extern const int OPTION_DEFAULTS[];
+
+/* contains options that tend to apply to the progam as a whole, rather *
+ * than on a per-game basis */
+typedef struct global_option_type {
+ int iopts[NUM_GLOBAL_OPTS];
+} global_option_type;
+
+/* this struct contains all options regarding general */
+/* gameplay but not having to do with math questions per se */
+typedef struct game_option_type {
+ /* general game options */
+ char current_font_name[FONT_NAME_LENGTH];
+ int lan_mode;
+ int use_bkgd;
+ int help_mode;
+ int demo_mode;
+ int oper_override;
+ int allow_pause;
+ int bonus_comet_interval;
+ float bonus_speed_ratio;
+ float speed;
+ int allow_speedup;
+ float speedup_factor;
+ float max_speed;
+ int slow_after_wrong;
+ int starting_comets;
+ int extra_comets_per_wave;
+ int max_comets;
+ char next_mission[PATH_MAX];
+ int save_summary;
+ int use_feedback;
+ float danger_level;
+ float danger_level_speedup;
+ float danger_level_max;
+ float city_expl_handicap;
+
+ int mp_multiplayer;
+ int mp_round;
+ int mp_playernum;
+
+ /* whether sound system is successfully initialized and sound files loaded: */
+ /* this flag is set by the program, not the user, and is not in the config file. */
+ int sound_hw_available;
+ /* place to save score of last game - not read in from file: */
+ int last_score;
+ /* not sure the rest of these belong in here */
+ int num_cities; /* MUST BE AN EVEN NUMBER! */
+ int num_bkgds;
+ int max_city_colors;
+ int keep_score;
+} game_option_type;
+
+
+enum {
+ OPT_OP_ADD,
+ OPT_OP_SUB,
+ OPT_OP_MUL,
+ OPT_OP_DIV,
+ OPT_A_MAX,
+ OPT_A_SPEED,
+ OPT_Q_RANGE,
+ NUM_OPTS
+};
+
+/* global struct (until accessor functions completed) */
+//extern game_option_type* game_options; /* used by setup.c, options.c, game.c */
+
+/* main options function called from title(): */
+//int options(void);
+
+/* "Public methods" of game_option_type struct; program interacts with struct */
+/* through these simple functions (rather than directly) to allow for error */
+/* checking, etc. */
+int Opts_Initialize(void);
+void Opts_Cleanup(void);
+
+
+/* "Set" functions for tuxmath options struct: */
+
+unsigned int Opts_MapTextToIndex(const char* text);
+
+int Opts_GetGlobalOpt(unsigned int index);
+void Opts_SetGlobalOpt(unsigned int index, int val);
+
+void Opts_SetFontName(char* font_name);
+void Opts_SetLanMode(int val);
+void Opts_SetUseBkgd(int val);
+void Opts_SetHelpMode(int val);
+void Opts_SetDemoMode(int val);
+void Opts_SetOperOverride(int val);
+void Opts_SetAllowPause(int val);
+void Opts_SetBonusCometInterval(int val);
+void Opts_SetBonusSpeedRatio(float val);
+void Opts_SetSpeed(float val);
+void Opts_SetAllowSpeedup(int val);
+void Opts_SetSpeedupFactor(float val);
+void Opts_SetMaxSpeed(float val);
+void Opts_SetSlowAfterWrong(int val);
+void Opts_SetStartingComets(int val);
+void Opts_SetExtraCometsPerWave(int val);
+void Opts_SetMaxComets(int val);
+void Opts_SetNextMission(char* str);
+void Opts_SetSaveSummary(int val);
+void Opts_SetUseFeedback(int val);
+void Opts_SetDangerLevel(float val);
+void Opts_SetDangerLevelSpeedup(float val);
+void Opts_SetDangerLevelMax(float val);
+void Opts_SetCityExplHandicap(float val);
+
+/* whether sound system is successfully initialized and sound files loaded: */
+/* this flag is set by the program, not the user, and is not in the config file. */
+void Opts_SetSoundHWAvailable(int val);
+/* Used by high score table code, not config file: */
+void Opts_SetLastScore(int val);
+
+void Opts_SetKeepScore(int val);
+
+/* "Get" functions for tuxmath options struct: */
+const char* Opts_FontName(void);
+int Opts_LanMode(void);
+int Opts_UseBkgd(void);
+int Opts_HelpMode(void);
+int Opts_DemoMode(void);
+int Opts_OperOverride(void);
+int Opts_AllowPause(void);
+int Opts_BonusCometInterval(void);
+float Opts_BonusSpeedRatio(void);
+float Opts_Speed(void);
+int Opts_AllowSpeedup(void);
+float Opts_SpeedupFactor(void);
+float Opts_MaxSpeed(void);
+int Opts_SlowAfterWrong(void);
+int Opts_StartingComets(void);
+int Opts_ExtraCometsPerWave(void);
+int Opts_MaxComets(void);
+char* Opts_NextMission(void);
+int Opts_SaveSummary(void);
+int Opts_UseFeedback(void);
+float Opts_DangerLevel(void);
+float Opts_DangerLevelSpeedup(void);
+float Opts_DangerLevelMax(void);
+float Opts_CityExplHandicap(void);
+int Opts_KeepScore(void);
+
+/* whether sound system is successfully initialized and sound files loaded: */
+/* this flag is set by the program, not the user, and is not in the config file. */
+int Opts_SoundHWAvailable(void);
+/* this is the function that says if sound is both desired and actually available: */
+int Opts_UsingSound(void);
+
+/* Returns score of last Arcade-type game this session: */
+int Opts_LastScore(void);
+
+/* print options values to stream - for debugging purposes - has been */
+/* superceded by write_config_file() to actually write human-readable file. */
+void print_game_options(FILE* fp, int verbose);
+#endif
diff --git a/src/pixels.c b/src/pixels.c
new file mode 100644
index 0000000..3f18244
--- /dev/null
+++ b/src/pixels.c
@@ -0,0 +1,257 @@
+/*
+ pixels.c
+
+ For Tux Paint
+ Pixel read/write functions
+
+ Copyright (c) 2002-2006 by Bill Kendrick and others
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/tuxpaint/
+
+ 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
+ (See COPYING.txt)
+
+ June 14, 2002 - February 17, 2006
+ $Id: pixels.c,v 1.3 2006/08/27 21:00:55 wkendrick Exp $
+*/
+
+#include "pixels.h"
+#include "compiler.h"
+//#include "debug.h"
+
+/* Draw a single pixel into the surface: */
+void putpixel8(SDL_Surface * surface, int x, int y, Uint32 pixel)
+{
+ Uint8 *p;
+
+ /* Assuming the X/Y values are within the bounds of this surface... */
+ if (likely
+ (likely((unsigned) x < (unsigned) surface->w)
+ && likely((unsigned) y < (unsigned) surface->h)))
+ {
+ // Set a pointer to the exact location in memory of the pixel
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start: beginning of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ x); /* Go in X pixels */
+
+
+ /* Set the (correctly-sized) piece of data in the surface's RAM
+ * to the pixel value sent in: */
+
+ *p = pixel;
+ }
+}
+
+/* Draw a single pixel into the surface: */
+void putpixel16(SDL_Surface * surface, int x, int y, Uint32 pixel)
+{
+ Uint8 *p;
+
+ /* Assuming the X/Y values are within the bounds of this surface... */
+ if (likely
+ (likely((unsigned) x < (unsigned) surface->w)
+ && likely((unsigned) y < (unsigned) surface->h)))
+ {
+ // Set a pointer to the exact location in memory of the pixel
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start: beginning of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 2)); /* Go in X pixels */
+
+
+ /* Set the (correctly-sized) piece of data in the surface's RAM
+ * to the pixel value sent in: */
+
+ *(Uint16 *) p = pixel;
+ }
+}
+
+/* Draw a single pixel into the surface: */
+void putpixel24(SDL_Surface * surface, int x, int y, Uint32 pixel)
+{
+ Uint8 *p;
+
+ /* Assuming the X/Y values are within the bounds of this surface... */
+ if (likely
+ (likely((unsigned) x < (unsigned) surface->w)
+ && likely((unsigned) y < (unsigned) surface->h)))
+ {
+ // Set a pointer to the exact location in memory of the pixel
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start: beginning of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 3)); /* Go in X pixels */
+
+
+ /* Set the (correctly-sized) piece of data in the surface's RAM
+ * to the pixel value sent in: */
+
+ if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
+ {
+ p[0] = (pixel >> 16) & 0xff;
+ p[1] = (pixel >> 8) & 0xff;
+ p[2] = pixel & 0xff;
+ }
+ else
+ {
+ p[0] = pixel & 0xff;
+ p[1] = (pixel >> 8) & 0xff;
+ p[2] = (pixel >> 16) & 0xff;
+ }
+
+ }
+}
+
+/* Draw a single pixel into the surface: */
+void putpixel32(SDL_Surface * surface, int x, int y, Uint32 pixel)
+{
+ Uint8 *p;
+
+ /* Assuming the X/Y values are within the bounds of this surface... */
+ if (likely
+ (likely((unsigned) x < (unsigned) surface->w)
+ && likely((unsigned) y < (unsigned) surface->h)))
+ {
+ // Set a pointer to the exact location in memory of the pixel
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start: beginning of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 4)); /* Go in X pixels */
+
+
+ /* Set the (correctly-sized) piece of data in the surface's RAM
+ * to the pixel value sent in: */
+
+ *(Uint32 *) p = pixel; // 32-bit display
+ }
+}
+
+/* Get a pixel: */
+Uint32 getpixel8(SDL_Surface * surface, int x, int y)
+{
+ Uint8 *p;
+
+ /* get the X/Y values within the bounds of this surface */
+ if (unlikely((unsigned) x > (unsigned) surface->w - 1u))
+ x = (x < 0) ? 0 : surface->w - 1;
+ if (unlikely((unsigned) y > (unsigned) surface->h - 1u))
+ y = (y < 0) ? 0 : surface->h - 1;
+
+ /* Set a pointer to the exact location in memory of the pixel
+ in question: */
+
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start at top of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ x); /* Go in X pixels */
+
+
+ /* Return the correctly-sized piece of data containing the
+ * pixel's value (an 8-bit palette value, or a 16-, 24- or 32-bit
+ * RGB value) */
+
+ return (*p);
+}
+
+/* Get a pixel: */
+Uint32 getpixel16(SDL_Surface * surface, int x, int y)
+{
+ Uint8 *p;
+
+ /* get the X/Y values within the bounds of this surface */
+ if (unlikely((unsigned) x > (unsigned) surface->w - 1u))
+ x = (x < 0) ? 0 : surface->w - 1;
+ if (unlikely((unsigned) y > (unsigned) surface->h - 1u))
+ y = (y < 0) ? 0 : surface->h - 1;
+
+ /* Set a pointer to the exact location in memory of the pixel
+ in question: */
+
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start at top of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 2)); /* Go in X pixels */
+
+
+ /* Return the correctly-sized piece of data containing the
+ * pixel's value (an 8-bit palette value, or a 16-, 24- or 32-bit
+ * RGB value) */
+
+ return (*(Uint16 *) p);
+}
+
+/* Get a pixel: */
+Uint32 getpixel24(SDL_Surface * surface, int x, int y)
+{
+ Uint8 *p;
+ Uint32 pixel;
+
+ /* get the X/Y values within the bounds of this surface */
+ if (unlikely((unsigned) x > (unsigned) surface->w - 1u))
+ x = (x < 0) ? 0 : surface->w - 1;
+ if (unlikely((unsigned) y > (unsigned) surface->h - 1u))
+ y = (y < 0) ? 0 : surface->h - 1;
+
+ /* Set a pointer to the exact location in memory of the pixel
+ in question: */
+
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start at top of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 3)); /* Go in X pixels */
+
+
+ /* Return the correctly-sized piece of data containing the
+ * pixel's value (an 8-bit palette value, or a 16-, 24- or 32-bit
+ * RGB value) */
+
+ /* Depending on the byte-order, it could be stored RGB or BGR! */
+
+ if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
+ pixel = p[0] << 16 | p[1] << 8 | p[2];
+ else
+ pixel = p[0] | p[1] << 8 | p[2] << 16;
+
+ return pixel;
+}
+
+/* Get a pixel: */
+Uint32 getpixel32(SDL_Surface * surface, int x, int y)
+{
+ Uint8 *p;
+
+ /* get the X/Y values within the bounds of this surface */
+ if (unlikely((unsigned) x > (unsigned) surface->w - 1u))
+ x = (x < 0) ? 0 : surface->w - 1;
+ if (unlikely((unsigned) y > (unsigned) surface->h - 1u))
+ y = (y < 0) ? 0 : surface->h - 1;
+
+ /* Set a pointer to the exact location in memory of the pixel
+ in question: */
+
+ p = (Uint8 *) (((Uint8 *) surface->pixels) + /* Start at top of RAM */
+ (y * surface->pitch) + /* Go down Y lines */
+ (x * 4)); /* Go in X pixels */
+
+
+ /* Return the correctly-sized piece of data containing the
+ * pixel's value (an 8-bit palette value, or a 16-, 24- or 32-bit
+ * RGB value) */
+
+ return *(Uint32 *) p; // 32-bit display
+}
+
+void (*putpixels[]) (SDL_Surface *, int, int, Uint32) =
+{
+putpixel8, putpixel8, putpixel16, putpixel24, putpixel32};
+
+
+Uint32(*getpixels[])(SDL_Surface *, int, int) =
+{
+getpixel8, getpixel8, getpixel16, getpixel24, getpixel32};
diff --git a/src/pixels.h b/src/pixels.h
new file mode 100644
index 0000000..95207a6
--- /dev/null
+++ b/src/pixels.h
@@ -0,0 +1,49 @@
+/*
+ pixels.h
+
+ For Tux Paint
+ Pixel read/write functions
+
+ Copyright (c) 2002-2006 by Bill Kendrick and others
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/tuxpaint/
+
+ 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
+ (See COPYING.txt)
+
+ June 14, 2002 - February 17, 2006
+ $Id: pixels.h,v 1.2 2006/08/27 21:00:55 wkendrick Exp $
+*/
+
+#ifndef PIXELS_H
+#define PIXELS_H
+
+#include "SDL.h"
+
+void putpixel8(SDL_Surface * surface, int x, int y, Uint32 pixel);
+void putpixel16(SDL_Surface * surface, int x, int y, Uint32 pixel);
+void putpixel24(SDL_Surface * surface, int x, int y, Uint32 pixel);
+void putpixel32(SDL_Surface * surface, int x, int y, Uint32 pixel);
+
+extern void (*putpixels[]) (SDL_Surface *, int, int, Uint32);
+
+Uint32 getpixel8(SDL_Surface * surface, int x, int y);
+Uint32 getpixel16(SDL_Surface * surface, int x, int y);
+Uint32 getpixel24(SDL_Surface * surface, int x, int y);
+Uint32 getpixel32(SDL_Surface * surface, int x, int y);
+
+extern Uint32(*getpixels[]) (SDL_Surface *, int, int);
+
+#endif
diff --git a/src/scandir.c b/src/scandir.c
new file mode 100644
index 0000000..dfaa0ed
--- /dev/null
+++ b/src/scandir.c
@@ -0,0 +1,264 @@
+
+/* Replacement scandir implementations to be used if Autoconf does not find scandir on */
+/* host platform - taken from Hatari project at Sourceforge - only modification is the */
+/* #ifndef HAVE_SCANDIR. */
+
+/* We only need to compile this file if the host platform doesn't have scandir(): */
+#include "config.h"
+#ifndef HAVE_SCANDIR
+
+/*
+ Hatari - scandir.c
+
+ This file is distributed under the GNU Public License, version 2 or at
+ your option any later version. Read the file gpl.txt for details.
+
+ scandir function for BEOS, SunOS etc..
+*/
+const char ScanDir_rcsid[] = "Hatari $Id: scandir.c,v 1.3 2007/01/16 18:42:59 thothy Exp $";
+
+#include <stdlib.h>
+#include <string.h>
+#include <strings.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "scandir.h"
+
+/*-----------------------------------------------------------------------
+ * Here come alphasort and scandir for BeOS/Haiku and SunOS
+ *-----------------------------------------------------------------------*/
+#if defined(__BEOS__) || defined(__HAIKU__) || (defined(__sun) && defined(__SVR4))
+
+#undef DIRSIZ
+
+#define DIRSIZ(dp) \
+ ((sizeof(struct dirent) - sizeof(dp)->d_name) + \
+ (((dp)->d_reclen + 1 + 3) &~ 3))
+
+#if defined(__sun) && defined(__SVR4)
+# define dirfd(d) ((d)->dd_fd)
+#elif defined(__BEOS__)
+#ifndef (__HAIKU__)
+#else
+# define dirfd(d) ((d)->fd)
+#endif
+#endif
+
+/
+/*-----------------------------------------------------------------------*/
+/**
+ * Alphabetic order comparison routine.
+ */
+int alphasort(const void *d1, const void *d2)
+{
+ return strcmp((*(struct dirent * const *)d1)->d_name, (*(struct dirent * const *)d2)->d_name);
+}
+
+
+/*-----------------------------------------------------------------------*/
+/**
+ * Scan a directory for all its entries
+ */
+int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(struct dirent *), int (*dcomp)(const void *, const void *))
+{
+ struct dirent *d, *p, **names;
+ struct stat stb;
+ size_t nitems;
+ size_t arraysz;
+ DIR *dirp;
+
+ if ((dirp = opendir(dirname)) == NULL)
+ return(-1);
+
+ if (fstat(dirfd(dirp), &stb) < 0)
+ return(-1);
+
+ /*
+ * estimate the array size by taking the size of the directory file
+ * and dividing it by a multiple of the minimum size entry.
+ */
+ arraysz = (stb.st_size / 24);
+
+ names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *));
+ if (names == NULL)
+ return(-1);
+
+ nitems = 0;
+
+ while ((d = readdir(dirp)) != NULL)
+ {
+
+ if (sdfilter != NULL && !(*sdfilter)(d))
+ continue; /* just selected names */
+
+ /*
+ * Make a minimum size copy of the data
+ */
+
+ p = (struct dirent *)malloc(DIRSIZ(d));
+ if (p == NULL)
+ return(-1);
+
+ p->d_ino = d->d_ino;
+ p->d_reclen = d->d_reclen;
+ /*p->d_namlen = d->d_namlen;*/
+ memcpy(p->d_name, d->d_name, p->d_reclen + 1);
+
+ /*
+ * Check to make sure the array has space left and
+ * realloc the maximum size.
+ */
+
+ if (++nitems >= arraysz)
+ {
+
+ if (fstat(dirfd(dirp), &stb) < 0)
+ return(-1); /* just might have grown */
+
+ arraysz = stb.st_size / 12;
+
+ names = (struct dirent **)realloc((char *)names, arraysz * sizeof(struct dirent *));
+ if (names == NULL)
+ return(-1);
+ }
+
+ names[nitems-1] = p;
+ }
+
+ closedir(dirp);
+
+ if (nitems && dcomp != NULL)
+ qsort(names, nitems, sizeof(struct dirent *), dcomp);
+
+ *namelist = names;
+
+ return nitems;
+}
+
+
+#endif /* __BEOS__ || __sun */
+
+
+/*-----------------------------------------------------------------------
+* Here come alphasort and scandir for Windows
+*-----------------------------------------------------------------------*/
+#if defined(WIN32)
+
+#undef DATADIR // stupid windows.h defines DATADIR, too
+#include <windows.h>
+
+/*-----------------------------------------------------------------------*/
+/**
+* Alphabetic order comparison routine.
+*/
+int alphasort(const void *d1, const void *d2)
+{
+ return stricmp((*(struct dirent * const *)d1)->d_name, (*(struct dirent * const *)d2)->d_name);
+}
+
+/*-----------------------------------------------------------------------*/
+/**
+* Scan a directory for all its entries
+*/
+int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(struct dirent *), int (*dcomp)(const void *, const void *))
+{
+ int len;
+ char *findIn, *d;
+ WIN32_FIND_DATA find;
+ HANDLE h;
+ int nDir = 0, NDir = 0;
+ struct dirent **dir = 0, *selectDir;
+ unsigned long ret;
+
+ len = strlen(dirname);
+ findIn = (char *)malloc(len+5);
+ strcpy(findIn, dirname);
+ printf("scandir : findIn orign=%s\n", findIn);
+ for (d = findIn; *d; d++)
+ if (*d=='/')
+ *d='\\';
+ if ((len==0))
+ {
+ strcpy(findIn, ".\\*");
+ }
+ if ((len==1)&& (d[-1]=='.'))
+ {
+ strcpy(findIn, ".\\*");
+ }
+ if ((len>0) && (d[-1]=='\\'))
+ {
+ *d++ = '*';
+ *d = 0;
+ }
+ if ((len>1) && (d[-1]=='.') && (d[-2]=='\\'))
+ {
+ d[-1] = '*';
+ }
+ if ((len>1) && (d[-2]!='\\') && (d[-1]!='*'))
+ {
+ *d++ = '\\';
+ *d++ = '*';
+ *d = 0;
+ }
+
+ printf("scandir : findIn processed=%s\n", findIn);
+ if ((h=FindFirstFile(findIn, &find))==INVALID_HANDLE_VALUE)
+ {
+ printf("scandir : FindFirstFile error\n");
+ ret = GetLastError();
+ if (ret != ERROR_NO_MORE_FILES)
+ {
+ // TODO: return some error code
+ }
+ *namelist = dir;
+ return nDir;
+ }
+ do
+ {
+ printf("scandir : findFile=%s\n", find.cFileName);
+ selectDir=(struct dirent*)malloc(sizeof(struct dirent)+strlen(find.cFileName));
+ strcpy(selectDir->d_name, find.cFileName);
+ if (!sdfilter || (*sdfilter)(selectDir))
+ {
+ if (nDir==NDir)
+ {
+ struct dirent **tempDir = (struct dirent **)calloc(sizeof(struct dirent*), NDir+33);
+ if (NDir)
+ memcpy(tempDir, dir, sizeof(struct dirent*)*NDir);
+ if (dir)
+ free(dir);
+ dir = tempDir;
+ NDir += 32;
+ }
+ dir[nDir] = selectDir;
+ nDir++;
+ dir[nDir] = 0;
+ }
+ else
+ {
+ free(selectDir);
+ }
+ }
+ while (FindNextFile(h, &find));
+ ret = GetLastError();
+ if (ret != ERROR_NO_MORE_FILES)
+ {
+ // TODO: return some error code
+ }
+ FindClose(h);
+
+ free (findIn);
+
+ if (dcomp)
+ qsort (dir, nDir, sizeof(*dir),dcomp);
+
+ *namelist = dir;
+ return nDir;
+}
+
+#endif /* WIN32 */
+#endif /* HAVE_SCANDIR */
diff --git a/src/scandir.h b/src/scandir.h
new file mode 100644
index 0000000..3347cce
--- /dev/null
+++ b/src/scandir.h
@@ -0,0 +1,27 @@
+/* Brought to tuxmath from the Hatari project under the terms of the GPLv2+ */
+/* It should only be included if scandir is not found by Autoconf - e.g.: */
+/* #ifndef HAVE_SCANDIR (from autoconf's config.h) - DSB */
+
+/*
+ Hatari - scandir.h
+
+ This file is distributed under the GNU Public License, version 2 or at
+ your option any later version. Read the file gpl.txt for details.
+*/
+#ifndef HATARI_SCANDIR_H
+#define HATARI_SCANDIR_H
+
+#include <dirent.h>
+
+#ifdef QNX
+#include <sys/types.h>
+#include <sys/dir.h>
+#define dirent direct
+#endif
+
+#if defined(__BEOS__) || defined(__HAIKU__) || (defined(__sun) && defined(__SVR4)) || defined(WIN32)
+extern int alphasort(const void *d1, const void *d2);
+extern int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(struct dirent *), int (*dcomp)(const void *, const void *));
+#endif
+
+#endif /* HATARI_SCANDIR_H */
diff --git a/src/server.c b/src/server.c
new file mode 100644
index 0000000..db568b9
--- /dev/null
+++ b/src/server.c
@@ -0,0 +1,1260 @@
+/*
+* C Implementation: server.c
+*
+* Description: Server program for LAN-based play in Tux,of Math Command.
+*
+*
+* Author: Akash Gangil, David Bruce, and the TuxMath team, (C) 2009
+* Developers list: <tuxmath-devel at lists.sourceforge.net>
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*
+* NOTE: This file was initially based on example code from The Game Programming Wiki
+* (http://gpwiki.org), in a tutorial covered by the GNU Free Documentation License 1.2.
+* No invariant sections were indicated, and no separate license for the example code
+* was listed. The author was also not listed. AFAICT,this scenario allows incorporation of
+* derivative works into a GPLv2+ project like TuxMath. FWIW, virtually none of
+* the tutorial code is still present here - David Bruce
+*/
+
+/* This must come before #ifdef HAVE_LIBSDL_NET to get "config.h" */
+#include "globals.h"
+
+#ifdef HAVE_LIBSDL_NET
+
+#include "server.h"
+#include "transtruct.h"
+#include "mathcards.h"
+#include "throttle.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#ifdef HAVE_PTHREAD_H
+#include <pthread.h>
+#endif
+
+
+#define MAX_ARGS 16
+
+
+/* ----------- Local function prototypes: ------------ */
+
+// setup and cleanup:
+int setup_server(void);
+void cleanup_server(void);
+void server_handle_command_args(int argc, char* argv[]);
+void* run_server_local_args(void);
+
+// top level functions in main loop:
+void check_UDP(void);
+void update_clients(void);
+int server_check_messages(void);
+
+// client management utilities:
+int find_vacant_client(void);
+void remove_client(int i);
+void check_game_clients(void);
+
+// message reception:
+int handle_client_game_msg(int i, char* buffer);
+void handle_client_nongame_msg(int i, char* buffer);
+int msg_set_name(int i, char* buf);
+void start_game(void);
+void game_msg_correct_answer(int i, char* inbuf);
+void game_msg_wrong_answer(int i, char* inbuf);
+void game_msg_quit(int i);
+void game_msg_exit(int i);
+int calc_score(int difficulty, float t);
+
+//message sending:
+int add_question(MC_FlashCard* fc);
+int remove_question(int id);
+int send_counter_updates(void);
+int send_score_updates(void);
+//int SendQuestion(MC_FlashCard flash, TCPsocket client_sock);
+int SendMessage(int message, int ques_id, char* name, TCPsocket client_sock);
+int player_msg(int i, char* msg);
+void broadcast_msg(char* msg);
+int transmit(int i, char* msg);
+int transmit_all(char* msg);
+
+// For non-blocking input:
+int read_stdin_nonblock(char* buf, size_t max_length);
+
+
+// not really deprecated but not done in response to
+// client message --needs better name:
+void game_msg_next_question(void);
+
+
+
+/* ------------ "Local globals" for server.c: ---------- */
+char server_name[NAME_SIZE]; /* User-visible name for server selection */
+int need_server_name = 1;
+UDPsocket udpsock = NULL; /* Used to listen for client's server autodetection */
+TCPsocket server_sock = NULL; /* Socket descriptor for server to accept client TCP sockets. */
+IPaddress ip;
+SDLNet_SocketSet client_set = NULL, temp_set = NULL;
+static client_type client[MAX_CLIENTS];
+static int num_clients = 0;
+static int game_in_progress = 0;
+static int server_running = 0;
+static int quit = 0;
+MC_FlashCard flash;
+int local_argc;
+char* local_argv[MAX_ARGS];
+
+
+
+
+
+
+
+
+/* The previous contents of main() are wrapped into this function to */
+/* allow the server to be run as a function in a process or thread */
+/* within another program. main() is now in a separate file, */
+/* servermain.c, that consists solely of a call to RunServer(). */
+
+/* FIXME this isn't thread-safe - we need to return gracefully if we */
+/* find that the server is already running, instead of calling cleanup() */
+/* and crashing the program. Some of the setup and cleanup will have to */
+/* be called from main() rather than from here. */
+int RunServer(int argc, char* argv[])
+{
+ Uint32 timer = 0;
+
+ printf("Started tuxmathserver, waiting for client to connect:\n>\n");
+
+ server_handle_command_args(argc, argv);
+
+ /* ---------------- Setup: --------------------------- */
+ if (!setup_server())
+ {
+ fprintf(stderr, "setup_server() failed - exiting.\n");
+ cleanup_server();
+ return EXIT_FAILURE;
+ }
+
+ server_running = 1;
+
+ printf("Waiting for clients to connect:\n>");
+ fflush(stdout);
+
+ /* ------------- Main server loop: ------------------ */
+ while (!quit)
+ {
+ /* Respond to any clients pinging us to find the server: */
+ check_UDP();
+ /* Now we check to see if anyone is trying to connect. */
+ update_clients();
+ /* Check for any pending messages from clients already connected: */
+ server_check_messages();
+
+ /* Limit frame rate to keep from eating all CPU: */
+ /* NOTE almost certainly could make this longer wtihout noticably */
+ /* affecting performance, but even throttling to 1 msec/loop cuts */
+ /* CPU from 100% to ~2% on my desktop - DSB */
+ Throttle(5, &timer); //min loop time 5 msec
+ }
+
+ server_running = 0;
+
+ /* ----- Free resources before exiting: ------- */
+ cleanup_server();
+
+ return EXIT_SUCCESS;
+}
+
+/* If we can't use pthreads, we use this function */
+/* to launch the server as a separate program using */
+/* the C library system() call */
+int RunServer_prog(int argc, char* argv[])
+{
+ char buf[256];
+ int i;
+
+ /* Construct command-line argument string from argc and argv: */
+ /* NOTE this is not safe from buffer overflow - do */
+ /* not use with user-supplied arguments. */
+ snprintf(buf, 256, "tuxmathserver ");
+ for(i = 1; i < argc; i++)
+ {
+ strncat(buf, argv[i], 256);
+ strncat(buf, " ", 256);
+ }
+ /* Add '&' to make it non-blocking: */
+ strncat(buf, "&", 256);
+
+ return system(buf);
+}
+
+/*
+ * This is the prefered way to run the tuxmath server,
+ */
+
+#ifdef HAVE_PTHREAD_H
+int RunServer_pthread(int argc, char* argv[])
+{
+ pthread_t server_thread;
+ int i;
+
+ /* We can only pass a single arg into the new thread, but it shares */
+ /* the same address space, so we save argc and argv locally instead: */
+ local_argc = argc;
+ for(i = 0; i < argc && i < MAX_ARGS; i++)
+ {
+ local_argv[i] = argv[i];
+ }
+
+ if(pthread_create(&server_thread, NULL, run_server_local_args, NULL))
+ {
+ printf("Error creating thread\n");
+ return -1;
+ }
+ return 0;
+}
+
+void* run_server_local_args(void)
+{
+
+ RunServer(local_argc, local_argv);
+ pthread_exit(NULL);
+ return NULL;
+}
+
+#endif
+
+
+/*********************************************************************/
+/* "Private" (to server.c) functions */
+/*********************************************************************/
+
+
+/* ----- Setup and Cleanup: ------------------- */
+
+
+// setup_server() - all the things needed to get server running:
+int setup_server(void)
+{
+ Uint32 timer = 0;
+
+ //Initialize SDL and SDL_net:
+ if(SDL_Init(0) == -1)
+ {
+ printf("SDL_Init: %s\n", SDL_GetError());
+ return 0;;
+ }
+
+ if (SDLNet_Init() < 0)
+ {
+ fprintf(stderr, "SDLNet_Init: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+
+ /* Resolving the host using NULL make network interface to listen */
+ if (SDLNet_ResolveHost(&ip, NULL, DEFAULT_PORT) < 0)
+ {
+ fprintf(stderr, "SDLNet_ResolveHost: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ /* Open a connection with the IP provided (listen on the host's port) */
+ if (!(server_sock = SDLNet_TCP_Open(&ip)))
+ {
+ fprintf(stderr, "SDLNet_TCP_Open: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ client_set = SDLNet_AllocSocketSet(MAX_CLIENTS);
+ if(!client_set)
+ {
+ printf("SDLNet_AllocSocketSet: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ //this sets up our mathcards "library" with hard-coded defaults - no
+ //settings read from config file here as of yet:
+ if (!MC_Initialize())
+ {
+ fprintf(stderr, "Could not initialize MathCards\n");
+ return 0;
+ }
+
+ /* Get server name: */
+ /* We use default name after 30 sec timeout if no name entered. */
+ /* FIXME we should save this to disc so it doesn't */
+ /* have to be entered every time. */
+ if(need_server_name)
+ {
+ Uint32 timeout = SDL_GetTicks() + SERVER_NAME_TIMEOUT;
+ int name_recvd = 0;
+ server_name[0] = '\0';
+
+ /* We can use fcntl() on Linux/Unix plaforms: */
+#ifdef HAVE_FCNTL
+ fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK);
+
+ printf("Enter the SERVER's NAME: \n>");
+ fflush(stdout);
+
+ while(!name_recvd && (SDL_GetTicks() < timeout))
+ {
+ if(read_stdin_nonblock(server_name, NAME_SIZE))
+ name_recvd = 1;
+ Throttle(10, &timer);
+ }
+ if(!name_recvd)
+ printf("No name entered within timeout, will use default: %s\n",
+ DEFAULT_SERVER_NAME);
+
+ /* If no nickname received, use default: */
+ if(strlen(server_name) == 0)
+ strncpy(server_name, DEFAULT_SERVER_NAME, NAME_SIZE);
+#else
+ /* HACK - until we figure out how to do nonblocking stdin
+ * in Windows, we just stick in the default name:
+ */
+ strncpy(server_name, DEFAULT_SERVER_NAME, NAME_SIZE);
+#endif
+ }
+
+
+ // Zero out our client list:
+ {
+ int i = 0;
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ client[i].game_ready = 0; /* waiting for user to OK game start */
+ client[i].name[0] = '\0'; /* no nicknames yet */
+ client[i].sock = NULL; /* sockets start out unconnected */
+ client[i].score = 0;
+ }
+ }
+
+
+ //Now open a UDP socket to listen for clients broadcasting to find the server:
+ udpsock = SDLNet_UDP_Open(DEFAULT_PORT);
+ if(!udpsock)
+ {
+ printf("SDLNet_UDP_Open: %s\n", SDLNet_GetError());
+ return 0;
+ }
+
+ // Indicates success:
+ return 1;
+}
+
+
+
+//Free resources, closing sockets, call MC_EndGame(), and so forth:
+void cleanup_server(void)
+{
+ int i;
+ /* Close the client socket(s) */
+
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ if(client[i].sock != NULL)
+ {
+ SDLNet_TCP_Close(client[i].sock); //close all the client sockets one by one
+ client[i].sock = NULL; // So we don't segfault in case cleanup()
+ } // somehow gets called more than once.
+ }
+
+ if (client_set != NULL)
+ {
+ SDLNet_FreeSocketSet(client_set); //releasing the memory of the client socket set
+ client_set = NULL; //this helps us remember that this set is not allocated
+ }
+
+ if(server_sock != NULL)
+ {
+ SDLNet_TCP_Close(server_sock);
+ server_sock = NULL;
+ }
+
+ SDLNet_Quit();
+
+ /* Clean up mathcards heap memory */
+ MC_EndGame();
+}
+
+
+/* Handle any arguments passed from command line */
+void server_handle_command_args(int argc, char* argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
+ {
+ /* Display help message: */
+ printf("\n");
+ cleanup_server();
+ exit(0);
+ }
+ else if (strcmp(argv[i], "--debug-lan") == 0)
+ {
+ debug_status |= debug_lan;
+ }
+
+ else if (strcmp(argv[i], "--copyright") == 0 ||
+ strcmp(argv[i], "-c") == 0)
+ {
+ printf(
+ "\n\"Tux, of Math Command Server\" version " VERSION ", Copyright (C) 2009,\n"
+ "David Bruce, Akash Gangil, and the Tux4Kids Project.\n"
+ "This program is free software; you can redistribute it and/or\n"
+ "modify it under the terms of the GNU General Public License\n"
+ "as published by the Free Software Foundation. See COPYING.txt\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"
+ "\n");
+
+ cleanup_server();
+ exit(0);
+ }
+ else if (strcmp(argv[i], "--usage") == 0 ||
+ strcmp(argv[i], "-u") == 0)
+ {
+ /* Display (happy) usage: */
+
+// usage(0, argv[0]);
+ }
+ else if ((strcmp(argv[i], "--name") == 0 || strcmp(argv[i], "-n") == 0)
+ && (i + 1 < argc))
+ {
+ strncpy(server_name, argv[i + 1], NAME_SIZE);
+ need_server_name = 0;
+ }
+ }
+}
+
+
+// ----------- Top level functions in main loop ---------------:
+
+//check_UDP() is the server side of the client-server autodetection system.
+//When a client wants to connect, it sends a UDP broadcast to the local
+//network on this port, and the server sends a response.
+void check_UDP(void)
+{
+ int recvd = 0;
+ UDPpacket* in = SDLNet_AllocPacket(NET_BUF_LEN);
+ recvd = SDLNet_UDP_Recv(udpsock, in);
+
+ // See if packet contains identifying string:
+ if(strncmp((char*)in->data, "TUXMATH_CLIENT", strlen("TUXMATH_CLIENT")) == 0)
+ {
+ UDPpacket* out;
+ int sent = 0;
+ char buf[NET_BUF_LEN];
+ // Send "I am here" reply so client knows where to connect socket,
+ // with configurable identifying string so user can distinguish
+ // between multiple servers on same network (e.g. "Mrs. Adams' Class");
+ out = SDLNet_AllocPacket(NET_BUF_LEN);
+ snprintf(buf, NET_BUF_LEN, "%s\t%s", "TUXMATH_SERVER", server_name);
+ snprintf(out->data, NET_BUF_LEN, "%s", buf);
+ out->len = strlen(buf) + 1;
+ out->address.host = in->address.host;
+ out->address.port = in->address.port;
+
+ sent = SDLNet_UDP_Send(udpsock, -1, out);
+
+ SDLNet_FreePacket(out);
+ }
+}
+
+
+
+
+//update_clients() sees if anyone is trying to connect, and connects if a slot
+//is open and the game is not in progress. The purpose is to make sure our
+//client set accurately reflects the current state.
+void update_clients(void)
+{
+ TCPsocket temp_sock = NULL; /* Just used when client can't be accepted */
+ int slot = 0;
+ int sockets_used = 0;
+ char buffer[NET_BUF_LEN];
+
+
+ /* See if we have a pending connection: */
+ temp_sock = SDLNet_TCP_Accept(server_sock);
+ if (!temp_sock) /* No one waiting to join - do nothing */
+ {
+ return; // Leave num_clients unchanged
+ }
+
+ // See if any slots are available:
+ slot = find_vacant_client();
+ if (slot == -1) /* No vacancies: */
+ {
+ snprintf(buffer, NET_BUF_LEN,
+ "%s\t%s",
+ "PLAYER_MSG",
+ "Sorry, already have maximum number of clients connected");
+ SDLNet_TCP_Send(temp_sock, buffer, NET_BUF_LEN);
+ //hang up:
+ SDLNet_TCP_Close(temp_sock);
+ temp_sock = NULL;
+
+ DEBUGMSG(debug_lan, "update_clients() - no vacant slot found\n");
+
+ return; // Leave num_clients unchanged
+ }
+
+ //If everyone is disconnected, game no longer in progress:
+ check_game_clients();
+
+ // If game already started, send our regrets:
+ if(game_in_progress)
+ {
+ snprintf(buffer, NET_BUF_LEN,
+ "%s",
+ "GAME_IN_PROGRESS");
+ SDLNet_TCP_Send(temp_sock, buffer, NET_BUF_LEN);
+ //hang up:
+ SDLNet_TCP_Close(temp_sock);
+ temp_sock = NULL;
+
+ DEBUGMSG(debug_lan, "update_clients() - game already started\n");
+
+ return; // Leave num_clients unchanged
+ }
+
+ // If we get to here, we have room for the new connection and the
+ // game is not in progress, so we connect:
+ DEBUGMSG(debug_lan, "creating connection for client[%d].sock:\n", slot);
+
+ client[slot].sock = temp_sock;
+
+ /* Add client socket to set: */
+ sockets_used = SDLNet_TCP_AddSocket(client_set, client[slot].sock);
+ if(sockets_used == -1) //No way this should happen
+ {
+ printf("SDLNet_AddSocket: %s\n", SDLNet_GetError());
+ cleanup_server();
+ exit(EXIT_FAILURE);
+ }
+
+ /* At this point num_clients can be updated: */
+ num_clients = sockets_used;
+
+ /* Now we can communicate with the client using client[i].sock socket */
+ /* serv_sock will remain opened waiting other connections */
+
+
+ /* Get the remote address */
+ DEBUGCODE(debug_lan)
+ {
+ IPaddress* client_ip = NULL;
+ client_ip = SDLNet_TCP_GetPeerAddress(client[slot].sock);
+
+ printf("num_clients = %d\n", num_clients);
+ if (client_ip != NULL)
+ /* Print the address, converting in the host format */
+ {
+ printf("Client connected\n>\n");
+ printf("Client: IP = %x, Port = %d\n",
+ SDLNet_Read32(&client_ip->host),
+ SDLNet_Read16(&client_ip->port));
+ }
+ else
+ fprintf(stderr, "SDLNet_TCP_GetPeerAddress: %s\n", SDLNet_GetError());
+ }
+
+ return;
+}
+
+
+
+// check_messages() is where we look at the client socket set to see which
+// have sent us messages. This function is used in each server loop whether
+// or not a math game is in progress (although we expect different messages
+// during a game from those encountered outside of a game)
+
+int server_check_messages(void)
+{
+ int actives = 0, i = 0;
+ int ready_found = 0;
+ char buffer[NET_BUF_LEN];
+
+
+ /* Check the client socket set for activity: */
+ actives = SDLNet_CheckSockets(client_set, 0);
+// printf("in check_messages(), actives = %d\n", actives);
+ if(actives == -1)
+ {
+ printf("SDLNet_CheckSockets: %s\n", SDLNet_GetError());
+ //most of the time this is a system error, where perror might help you.
+ perror("SDLNet_CheckSockets");
+ }
+
+ else if(actives)
+ {
+ DEBUGMSG(debug_lan, "There are %d sockets with activity\n", actives);
+
+ // check all sockets with SDLNet_SocketReady and handle the active ones.
+ // NOTE we have to check all the slots in the set because
+ // the set will become discontinuous if someone disconnects
+ // NOTE this will only pick up the first message for each socket each time
+ // check_messages() called - probably OK if we just get it next time through.
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ if((client[i].sock != NULL)
+ && (SDLNet_SocketReady(client[i].sock)))
+ {
+ ready_found++;
+
+ DEBUGMSG(debug_lan, "client socket %d is ready\n", i);
+
+ if (SDLNet_TCP_Recv(client[i].sock, buffer, NET_BUF_LEN) > 0)
+ {
+ DEBUGMSG(debug_lan, "buffer received from client %d is: %s\n", i, buffer);
+
+ /* Here we pass the client number and the message buffer */
+ /* to a suitable function for further action: */
+ if(game_in_progress)
+ {
+ handle_client_game_msg(i, buffer);
+ }
+ else
+ {
+ handle_client_nongame_msg(i, buffer);
+ }
+ // See if game is ended because everyone has left:
+ check_game_clients();
+ }
+ else // Socket activity but cannot receive - client invalid
+ {
+ printf("Client %d active but receive failed - apparently disconnected\n>\n", i);
+ remove_client(i);
+ }
+ }
+ } // end of for() loop - all client sockets checked
+ // Make sure all the active sockets reported by SDLNet_CheckSockets()
+ // are accounted for:
+
+ if(actives > ready_found)
+ {
+ printf("Warning: SDLNet_CheckSockets() reported %d active sockets,\n"
+ "but only %d detected by SDLNet_SocketReady()\n", actives, ready_found);
+ //Presently, this just runs ping_client() on all the sockets:
+ //test_connections();
+ }
+ }
+ return 1;
+}
+
+
+
+
+// client management utilities:
+
+//Returns the index of the first vacant client, or -1 if all clients full
+int find_vacant_client(void)
+{
+ int i = 0;
+ while (client[i].sock && i < MAX_CLIENTS)
+ i++;
+ if (i == MAX_CLIENTS)
+ {
+ fprintf(stderr, "All clients checked, none vacant\n");
+ i = -1;
+ }
+ return i;
+}
+
+
+void remove_client(int i)
+{
+ printf("Removing client[%d] - name: %s\n>\n", i, client[i].name);
+
+ SDLNet_TCP_DelSocket(client_set, client[i].sock);
+
+ if(client[i].sock != NULL)
+ SDLNet_TCP_Close(client[i].sock);
+
+ client[i].sock = NULL;
+ client[i].game_ready = 0;
+ client[i].name[0] = '\0';
+}
+
+
+// check_game_clients() reviews the game_ready flags of all the connected
+// clients to determine if a new game is started, or if an old game needs
+// to be ended because all the players have left. If it finds both "playing"
+// and "nonplaying clients", it leaves game_in_progress unchanged.
+
+// TODO this is not very sophisticated, and only supports one game at a time.
+// We may want to make this extensible to multiple simultaneous games, perhaps
+// with each game in its own thread with its own socket set and mathcards instance.
+// FIXME we need to do more than just toggle game_in_progress - should have
+// start_game() and end_game() functions that make sure mathcards is
+// properly set up or cleaned up.
+void check_game_clients(void)
+{
+ int i = 0;
+
+ //If the game is already started, we leave it running as long as at least
+ //one client is both connected and willing to play:
+ if(game_in_progress)
+ {
+ int someone_still_playing = 0;
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ if((client[i].sock != NULL)
+ && client[i].game_ready)
+ {
+ someone_still_playing = 1;
+ break;
+ }
+ }
+
+ if(!someone_still_playing)
+ {
+ printf("All the clients have left the game, setting game_in_progress = 0.\n");
+ game_in_progress = 0;
+ }
+ }
+ //If the game hasn't started yet, we only start it
+ //if all connected clients are ready:
+ //FIXME should add a timeout so the game eventually starts without
+ //those who don't answer
+ else
+ {
+ int someone_connected = 0;
+ int someone_not_ready = 0;
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ if(client[i].sock != NULL)
+ {
+ someone_connected = 1;
+ if (!client[i].game_ready)
+ {
+ someone_not_ready = 1;
+ }
+ }
+ }
+ if(someone_connected && !someone_not_ready)
+ start_game();
+ }
+}
+
+
+
+void handle_client_nongame_msg(int i, char* buffer)
+{
+ char buf[NET_BUF_LEN];
+
+ if(strncmp(buffer, "START_GAME", strlen("START_GAME")) == 0)
+ {
+ snprintf(buf, NET_BUF_LEN,
+ "Player %s ready to start math game",
+ client[i].name);
+ broadcast_msg(buf);
+ client[i].game_ready = 1;
+ //This will call start_game() if all the other clients are ready:
+ check_game_clients();
+ }
+ else if(strncmp(buffer, "SET_NAME", strlen("SET_NAME")) == 0)
+ {
+ msg_set_name(i, buffer);
+ }
+}
+
+
+int handle_client_game_msg(int i , char* buffer)
+{
+ DEBUGMSG(debug_lan, "Buffer received from client: %s\n", buffer);
+
+ if(strncmp(buffer, "CORRECT_ANSWER", strlen("CORRECT_ANSWER")) == 0)
+ {
+ game_msg_correct_answer(i, buffer);
+ }
+
+ else if(strncmp(buffer, "WRONG_ANSWER",strlen("WRONG_ANSWER")) == 0) /* Player answered the question incorrectly , meaning comet crashed into a city or an igloo */
+ {
+ game_msg_wrong_answer(i, buffer);
+ }
+
+ else if(strncmp(buffer, "LEAVE_GAME", strlen("LEAVE_GAME")) == 0)
+ {
+ client[i].game_ready = 0; /* Player quitting game but not disconnecting */
+ }
+
+ else if(strncmp(buffer, "exit",strlen("exit")) == 0) /* Terminate this connection */
+ {
+ game_msg_exit(i);
+ }
+
+ else if(strncmp(buffer, "quit",strlen("quit")) == 0) /* Quit the program */
+ {
+ game_msg_quit(i);
+ return(1);
+ }
+ else
+ {
+ printf("command %s not recognized\n", buffer);
+ }
+ return(0);
+}
+
+
+
+int msg_set_name(int i, char* buf)
+{
+ char* p;
+
+ if(buf == NULL)
+ return 0;
+
+ p = strchr(buf, '\t');
+ if(p)
+ {
+ p++;
+ strncpy(client[i].name, p, NAME_SIZE);
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+
+void game_msg_correct_answer(int i, char* inbuf)
+{
+ char outbuf[NET_BUF_LEN];
+ char* p = NULL;
+ int id = -1;
+ float t = -1;
+ int points = 0;
+
+ if(!inbuf)
+ return;
+
+ //parse inbuf to get question id:
+ p = strchr(inbuf, '\t');
+ if(!p)
+ return;
+ p++;
+ id = atoi(p);
+ //Now get time player took to answer:
+ p = strchr(p, '\t');
+ if(!p)
+ t = -1;
+ else
+ {
+ p++;
+ t = atof(p);
+ }
+
+ //Tell mathcards so lists get updated:
+ points = MC_AnsweredCorrectly(id, t);
+ if(!points)
+ return;
+ //If we get to here, the id was successfully parsed out of inbuf
+ //and the corresponding question was found.
+ client[i].score += points;
+
+ //Announcement for server and all clients:
+ snprintf(outbuf, NET_BUF_LEN,
+ "question id %d was answered in %f seconds for %d points by %s",
+ id, t, points, client[i].name);
+ broadcast_msg(outbuf);
+
+ DEBUGMSG(debug_lan, "game_msg_correct_answer(): %s\n", outbuf);
+
+ //Tell all players to remove that question:
+ remove_question(id);
+ //send the next question to everyone:
+ game_msg_next_question();
+ //and update the game counters:
+ send_counter_updates();
+ //and the scores:
+ send_score_updates();
+}
+
+
+void game_msg_wrong_answer(int i, char* inbuf)
+{
+ char outbuf[NET_BUF_LEN];
+ char* p;
+ int id;
+
+ if(!inbuf)
+ return;
+
+ //parse inbuf to get question id:
+ p = strchr(inbuf, '\t');
+ if(!p)
+ return;
+ p++;
+ id = atoi(p);
+
+ //Tell mathcards so lists get updated:
+ if(!MC_NotAnsweredCorrectly(id))
+ return;
+ //If we get to here, the id was successfully parsed out of inbuf
+ //and the corresponding question was found.
+
+ //Announcement for server and all clients:
+ snprintf(outbuf, NET_BUF_LEN,
+ "question id %d was missed by %s\n",
+ id, client[i].name);
+ broadcast_msg(outbuf);
+ //Tell all players to remove that question:
+ remove_question(id);
+ //send the next question to everyone:
+ game_msg_next_question();
+ //and update the game counters:
+ send_counter_updates();
+}
+
+
+
+void game_msg_next_question(void)
+{
+ MC_FlashCard flash;
+
+ /* Get next question from MathCards: */
+ if (!MC_NextQuestion(&flash))
+ {
+ /* no more questions available */
+ printf("MC_NextQuestion() returned NULL - no questions available\n");
+ return;
+ }
+
+ DEBUGMSG(debug_lan, "In game_msg_next_question(), about to send:\n");
+ DEBUGCODE(debug_lan) print_card(flash);
+
+ /* Send it to all the clients: */
+ add_question(&flash);
+}
+
+
+
+
+
+void game_msg_exit(int i)
+{
+ printf("LEFT the GAME : %s",client[i].name);
+ remove_client(i);
+}
+
+
+
+//FIXME don't think we want to allow players to shut down the server
+void game_msg_quit(int i)
+{
+ printf("Server has been shut down by %s\n", client[i].name);
+ cleanup_server();
+ exit(9); // '9' means exit ;) (just taken an arbitary no:)
+}
+
+
+/* Now this gets called to actually start the game once all the players */
+/* have indicated that they are ready: */
+void start_game(void)
+{
+ char buf[NET_BUF_LEN];
+ int j;
+
+
+ /* NOTE this should no longer be needed - doing the same thing earlier */
+ /*This loop sees that the game starts only when all the players are ready */
+ /* i.e. if someone is connected but not ready, we return. */
+ for(j = 0; j < MAX_CLIENTS; j++)
+ {
+ // Only check sockets that aren't null:
+ if((client[j].game_ready != 1)
+ && (client[j].sock != NULL))
+ {
+ printf("Warning - start_game() entered when someone not ready\n");
+ return;
+ }
+ }
+
+
+ /***********************Will be modified**************/
+ //Tell everyone we are starting and count who's really in:
+ num_clients = 0;
+ snprintf(buf, NET_BUF_LEN,
+ "%s\n",
+ "GO_TO_GAME");
+ for(j = 0; j < MAX_CLIENTS; j++)
+ {
+ if((client[j].game_ready == 1)
+ && (client[j].sock != NULL))
+ {
+ if(SDLNet_TCP_Send(client[j].sock, buf, NET_BUF_LEN) == NET_BUF_LEN)
+ num_clients++;
+ else
+ {
+ printf("in start_game() - failed to send to client %d, removing\n", j);
+ remove_client(j);
+ }
+ }
+ }
+ /*****************************************************/
+
+
+ /* If no players join the game (should not happen) */
+ if(num_clients == 0)
+ {
+ printf("There were no players........=(\n");
+ return;
+ }
+
+ DEBUGMSG(debug_lan, "We have %d players.......\n", num_clients);
+
+ game_in_progress = 1; //setting the game_in_progress flag to '1'
+ //Start a new math game as far as mathcards is concerned:
+ if (!MC_StartGame())
+ {
+ fprintf(stderr, "\nMC_StartGame() failed!");
+ return;
+ }
+
+ game_in_progress = 1;
+
+ // Zero out scores:
+ for(j = 0; j < MAX_CLIENTS; j++)
+ client[j].score = 0;
+
+ /* Send enough questions to fill the initial comet slots (currently 10) */
+ for(j = 0; j < QUEST_QUEUE_SIZE; j++)
+ {
+ if (!MC_NextQuestion(&flash))
+ {
+ /* no more questions available */
+ printf("MC_NextQuestion() returned NULL - no questions available\n");
+ return;
+ }
+
+ DEBUGMSG(debug_lan, "In start_game(), about to send:\n");
+ DEBUGCODE(debug_lan) print_card(flash);
+
+ //Send to all clients with add_question();
+ add_question(&flash);
+ }
+ //Send all the clients the counter totals:
+ send_counter_updates();
+ send_score_updates();
+}
+
+
+
+//More centralized function to update the clients of the number of
+//questions remaining, whether the mission has been accomplished,
+//and so forth:
+int send_counter_updates(void)
+{
+ int total_questions;
+
+ //If game won, tell everyone:
+ if(MC_MissionAccomplished())
+ {
+ char buf[NET_BUF_LEN];
+ snprintf(buf, NET_BUF_LEN, "%s", "MISSION_ACCOMPLISHED");
+ transmit_all(buf);
+ }
+
+ //Tell everyone how many questions left:
+ total_questions = MC_TotalQuestionsLeft();
+ {
+ char buf[NET_BUF_LEN];
+ snprintf(buf, NET_BUF_LEN, "%s\t%d", "TOTAL_QUESTIONS", total_questions);
+ transmit_all(buf);
+ }
+ return 1;
+}
+
+
+int send_score_updates(void)
+{
+ int i = 0;
+
+ /* Count how many players are active and send number to clients: */
+ {
+ int connected_players = 0;
+ char buf[NET_BUF_LEN];
+ for(i = 0; i < MAX_CLIENTS; i++)
+ if((client[i].game_ready == 1) && (client[i].sock != NULL))
+ connected_players++;
+
+ snprintf(buf, NET_BUF_LEN, "%s\t%d", "CONNECTED_PLAYERS",
+ connected_players);
+ transmit_all(buf);
+ }
+
+ /* Now send out all the names and scores: */
+ for(i = 0; i < MAX_CLIENTS; i++)
+ {
+ if((client[i].game_ready == 1)
+ && (client[i].sock != NULL))
+ {
+ char buf[NET_BUF_LEN];
+ snprintf(buf, NET_BUF_LEN, "%s\t%d\t%s\t%d", "UPDATE_SCORE",
+ i,
+ client[i].name,
+ client[i].score);
+ transmit_all(buf);
+ }
+ }
+
+ return 1;
+}
+
+
+/* Sends a new question to all clients: */
+int add_question(MC_FlashCard* fc)
+{
+ char buf[NET_BUF_LEN];
+
+ if(!fc)
+ return 0;
+
+ snprintf(buf, NET_BUF_LEN,"%s\t%d\t%d\t%d\t%s\t%s\n",
+ "ADD_QUESTION",
+ fc->question_id,
+ fc->difficulty,
+ fc->answer,
+ fc->answer_string,
+ fc->formula_string);
+ transmit_all(buf);
+ return 1;
+}
+
+/* Tells all clients to remove a specific question: */
+int remove_question(int id)
+{
+ char buf[NET_BUF_LEN];
+ snprintf(buf, NET_BUF_LEN, "%s\t%d", "REMOVE_QUESTION", id);
+ transmit_all(buf);
+ return 1;
+}
+
+
+/* Sends a string for the client to display to player: */
+int player_msg(int i, char* msg)
+{
+ char buf[NET_BUF_LEN];
+ if(!msg)
+ {
+ DEBUGMSG(debug_lan, "player_msg() - msg argument is NULL\n");
+ return 0;
+ }
+
+ /* Add header: */
+ snprintf(buf, NET_BUF_LEN, "%s\t%s", "PLAYER_MSG", msg);
+ //NOTE transmit() validates index and socket
+ return transmit(i, buf);
+}
+
+/* Send a player message to all clients: */
+void broadcast_msg(char* msg)
+{
+ int i = 0;
+ if (!msg)
+ return;
+ for(i = 0; i < MAX_CLIENTS; i++)
+ player_msg(i, msg);
+}
+
+/* Send string to client. String should already have its header */
+int transmit(int i, char* msg)
+{
+ char buf[NET_BUF_LEN];
+
+ //Validate arguments;
+ if(i < 0 || i > MAX_CLIENTS)
+ {
+ DEBUGMSG(debug_lan,"transmit() - invalid index argument\n");
+ return 0;
+ }
+
+ if(!msg)
+ {
+ DEBUGMSG(debug_lan, "transmit() - msg argument is NULL\n");
+ return 0;
+ }
+
+ if(!client[i].sock)
+ {
+ return 0;
+ }
+
+ //NOTE SDLNet's Send() keeps sending until the requested length is
+ //sent, so it really is an error if we send less thatn NET_BUF_LEN
+ snprintf(buf, NET_BUF_LEN, "%s", msg);
+ if(SDLNet_TCP_Send(client[i].sock, buf, NET_BUF_LEN) < NET_BUF_LEN)
+ {
+ printf("The client %s is disconnected\n", client[i].name);
+ remove_client(i);
+ return 0;
+ }
+ //Success:
+ return 1;
+}
+
+
+/* Send the message to all clients: */
+int transmit_all(char* msg)
+{
+ int i = 0;
+ if (!msg)
+ return 0;
+
+ for(i = 0; i < MAX_CLIENTS; i++)
+ transmit(i, msg);
+
+ return 1;
+}
+
+
+
+//Here we read up to max_length bytes from stdin into the buffer.
+//The first '\n' in the buffer, if present, is replaced with a
+//null terminator.
+//returns 0 if no data ready, 1 if at least one byte read.
+//NOTE for this to work we must first set stdin to O_NONBLOCK with:
+// fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK);
+
+int read_stdin_nonblock(char* buf, size_t max_length)
+{
+ int bytes_read = 0;
+ char* term = NULL;
+ buf[0] = '\0';
+
+ bytes_read = fread (buf, 1, max_length, stdin);
+ term = strchr(buf, '\n');
+ if (term)
+ *term = '\0';
+
+ if(bytes_read > 0)
+ bytes_read = 1;
+ else
+ bytes_read = 0;
+
+ return bytes_read;
+}
+
+
+
+int ServerRunning(void)
+{
+ return server_running;
+}
+
+#endif
diff --git a/src/server.h b/src/server.h
new file mode 100644
index 0000000..bec8163
--- /dev/null
+++ b/src/server.h
@@ -0,0 +1,77 @@
+/*
+
+ server.h
+
+ Author: David Bruce, Akash Gangil and the TuxMath team, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+
+#ifndef TM_SERVER_H
+#define TM_SERVER_H
+
+#include "config.h"
+
+#ifdef HAVE_LIBSDL_NET
+
+#include "SDL_net.h"
+
+#define NAME_SIZE 50
+#define DEFAULT_SERVER_NAME "TuxMath LAN Server"
+#define SERVER_NAME_TIMEOUT 30000
+
+typedef struct client_type {
+ int game_ready; //game_ready = 1 means client has said OK to start
+ char name[NAME_SIZE];
+ int score;
+ TCPsocket sock;
+}client_type;
+
+
+
+/*enum for commands coming from the client side*/
+// enum {
+// EXIT,
+// QUIT,
+// CORRECT_ANSWER,
+// NOT_ANSWERED_CORRECTLY,
+// NEXT_QUESTION,
+// TOTAL_QUESTIONS_LEFT
+// };
+
+
+// /*enum for messages for SendMessage*/
+// enum {
+// ANSWER_CORRECT,
+// LIST_SET_UP,
+// NO_QUESTION_LIST
+// };
+
+
+/* Ways to run the server - all accept command-line style arguments: */
+
+/* 1. Type "tuxmathserver" at command line to run as standalone program. */
+
+/* From within Tuxmath: */
+
+#ifdef HAVE_PTHREAD_H
+/* 2. Using POSIX threads library (RECOMMENDED if pthreads available on your system): */
+int RunServer_pthread(int argc, char* argv[]);
+#endif
+
+/* 3. As a standalone program using system() - same as "tuxmathserver" at console: */
+int RunServer_prog(int argc, char* argv[]);
+
+/* TODO 4. Using old-school Unix fork() call: */
+int RunServer_fork(int argc, char* argv[]);
+
+/* 2, 3, and 4 all return immediately, with the server running in a separate thread or process. But if you don't mind waiting... */
+/* 5. Plain "blocking" function call, leaving scheduling issues up to you: */
+int RunServer(int argc, char **argv);
+
+/* Find out if server is already running: */
+int ServerRunning(void);
+#endif
+
+#endif
diff --git a/src/servermain.c b/src/servermain.c
new file mode 100644
index 0000000..f508f11
--- /dev/null
+++ b/src/servermain.c
@@ -0,0 +1,27 @@
+/*
+* C Implementation: servermain.c
+*
+* Description: main() function to allow standalone use of server program for
+* LAN-based play in Tux,of Math Command.
+*
+*
+* Author: David Bruce and the TuxMath team, (C) 2009
+* Developers list: <tuxmath-devel at lists.sourceforge.net>
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*
+*/
+
+#include "server.h"
+
+/* This function has to be in its own file that is not linked into tuxmath */
+/* itself because there can only be one main() in a program. All of the */
+/* server functionality is contained in server.h and server.c */
+int main(int argc, char** argv)
+{
+#ifdef HAVE_LIBSDL_NET
+ return RunServer(argc, argv);
+#else
+ return 0;
+#endif
+}
diff --git a/src/setup.c b/src/setup.c
new file mode 100644
index 0000000..5e08608
--- /dev/null
+++ b/src/setup.c
@@ -0,0 +1,857 @@
+/*
+ setup.c
+
+ For TuxMath
+ Contains some globals (screen surface, images, some option flags, etc.)
+ as well as the function to load data files (images, sounds, music)
+ and display a "Loading..." screen.
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+ Modified by David Bruce
+ davidstuartbruce at gmail.com
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+ Subversion repository:
+ https://svn.debian.alioth.org/tux4kids/tuxmath/
+
+
+ August 26, 2001 - Sept 18, 2007.
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* FIXME maybe unistd.h not needed, even less sure about portability */
+//#include <unistd.h>
+
+#include "SDL.h"
+
+#ifndef NOSOUND
+#include "SDL_mixer.h"
+#endif
+
+#include "SDL_image.h"
+
+#include "options.h"
+#include "tuxmath.h"
+#include "mathcards.h"
+#include "setup.h"
+#include "fileops.h"
+#include "loaders.h"
+#include "game.h"
+#include "menu.h"
+#include "titlescreen.h"
+#include "highscore.h"
+#include "SDL_extras.h"
+
+
+//#ifdef LINEBREAK
+#include "linewrap.h"
+//#endif
+
+/* Global data used in setup.c: */
+/* (These are now 'extern'd in "tuxmath.h") */
+
+/* window size */
+int win_res_x = 640;
+int win_res_y = 480;
+
+/* full screen size (set in initialize_SDL() ) */
+int fs_res_x = 0;
+int fs_res_y = 0;
+
+SDL_Surface* screen;
+SDL_Surface* images[NUM_IMAGES];
+sprite* sprites[NUM_SPRITES];
+/* Need special handling to generate flipped versions of images. This
+ is a slightly ugly hack arising from the use of the enum trick for
+ NUM_IMAGES. */
+#define NUM_FLIPPED_IMAGES 6
+SDL_Surface* flipped_images[NUM_FLIPPED_IMAGES];
+int flipped_img_lookup[NUM_IMAGES];
+SDL_Surface* blended_igloos[NUM_BLENDED_IGLOOS];
+
+const int flipped_img[] = {
+ IMG_PENGUIN_WALK_ON1,
+ IMG_PENGUIN_WALK_ON2,
+ IMG_PENGUIN_WALK_ON3,
+ IMG_PENGUIN_WALK_OFF1,
+ IMG_PENGUIN_WALK_OFF2,
+ IMG_PENGUIN_WALK_OFF3
+};
+
+
+#ifndef NOSOUND
+Mix_Chunk* sounds[NUM_SOUNDS];
+Mix_Music* musics[NUM_MUSICS];
+#endif
+
+/* Local function prototypes: */
+void initialize_options(void);
+void handle_command_args(int argc, char* argv[]);
+void initialize_SDL(void);
+void load_data_files(void);
+void generate_flipped_images(void);
+void generate_blended_images(void);
+
+//int initialize_game_options(void);
+void seticon(void);
+void usage(int err, char * cmd);
+
+void cleanup_memory(void);
+
+
+
+/* --- Set-up function - now in four easier-to-digest courses! --- */
+/* --- Er - make that six courses! --- */
+/* --- Six is right out. Seven is much better. --- */
+void setup(int argc, char * argv[])
+{
+ /* initialize settings and read in config files: */
+ /* Note this now only does the global settings */
+ initialize_options();
+ /* Command-line code now in own function: */
+ handle_command_args(argc, argv);
+ /* SDL setup in own function:*/
+ initialize_SDL();
+ /* Read image and sound files: */
+ load_data_files();
+ /* Generate flipped versions of walking images */
+ generate_flipped_images();
+ /* Generate blended images (e.g., igloos) */
+ generate_blended_images();
+ /* Note that the per-user options will be set after the call to
+ titlescreen, to allow for user-login to occur.
+
+ FIXME this means that command-line args will be overridden!
+ Is this desirable? */
+}
+
+
+
+
+/* Set up mathcards with default values for math question options, */
+/* set up game_options with defaults for general game options, */
+/* then read in global config file */
+void initialize_options(void)
+{
+ /* Initialize MathCards backend for math questions: */
+ if (!MC_Initialize())
+ {
+ printf("\nUnable to initialize MathCards\n");
+ fprintf(stderr, "\nUnable to initialize MathCards\n");
+ exit(1);
+ }
+
+ /* initialize game_options struct with defaults DSB */
+ if (!Opts_Initialize())
+ {
+ fprintf(stderr, "\nUnable to initialize game_options\n");
+ cleanup_on_error();
+ exit(1);
+ }
+
+ /* Now that MathCards and game_options initialized using */
+ /* hard-coded defaults, read options from disk and mofify */
+ /* as needed. First read in installation-wide settings: */
+ if (!read_global_config_file())
+ {
+ fprintf(stderr, "\nCould not find global config file.\n");
+ /* can still proceed using hard-coded defaults. */
+ }
+}
+
+/* Read in the user-specific options (if desired) */
+/* This has been split from the above to allow it to be called */
+/* from titlescreen, to allow for user-login to occur. */
+void initialize_options_user(void)
+{
+ /* Read in user-specific settings, if desired. By */
+ /* default, this restores settings from the player's last */
+ /* game: */
+ if (Opts_GetGlobalOpt(PER_USER_CONFIG))
+ {
+ if (!read_user_config_file())
+ {
+ fprintf(stderr, "\nCould not find user's config file.\n");
+ /* can still proceed using hard-coded defaults. */
+ }
+
+ /* If game being run for first time, try to write file: */
+ if (!write_user_config_file())
+ {
+ fprintf(stderr, "\nUnable to write user's config file.\n");
+ }
+ }
+
+ /* Read the lessons directory to determine which lesson */
+ /* files are available. */
+ if (!parse_lesson_file_directory())
+ fprintf(stderr,"\nCould not parse the lesson file directory.\n");
+
+ /* Now set up high score tables: */
+ initialize_scores();
+ if (!read_high_scores())
+ {
+ fprintf(stderr, "\nCould not find high score table.\n");
+ /* (can still proceed). */
+ }
+
+ DEBUGCODE(debug_setup)
+ print_high_scores(stdout);
+}
+
+
+
+
+/* Handle any arguments passed from command line */
+void handle_command_args(int argc, char* argv[])
+{
+ DIR *dirp;
+ int i;
+
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0)
+ {
+ /* Display help message: */
+
+ printf("\nTux, of Math Command\n\n"
+ "Use the number keys on the keyboard to answer math equations.\n"
+ "If you don't answer a comet's math equation before it hits\n"
+ "one of your cities, the city's shields will be destroyed.\n"
+ "If that city is hit by another comet, it is destroyed completely.\n"
+ "When you lose all of your cities, the game ends.\n\n");
+
+ printf("Note: all settings are now stored in a config file named 'options' in\n"
+ "a hidden directory named './tuxmath' within the user's home directory.\n"
+ "The file consists of simple name/value pairs. It is much easier\n"
+ "to edit this file to set game parameters than to use the command-line\n"
+ "arguments listed below. Also, many options are not selectable from the\n"
+ "command line. The config file contains extensive comments detailing how\n"
+ "to configure the behavior of Tuxmath.\n\n");
+
+ printf("Run the game with:\n"
+ "--homedir dirname - seek for user home director(ies) in the specified\n"
+ " location, rather than the user's actual home\n"
+ " directory. You can set up a user directory tree in\n"
+ " this location (see README). This option is\n"
+ " especially useful for schools where all students log\n"
+ " in with a single user name.\n"
+ "--optionfile filename - read config settings from named file. The locations\n"
+ " searched for a file with a matching name are the\n"
+ " current working directory, the absolute path of the\n"
+ " filename, tuxmath's missions directory, the user's\n"
+ " tuxmath directory, and the user's home.\n"
+ "--playthroughlist - to ask each question only once, allowing player to\n"
+ " win game if all questions successfully answered\n"
+
+ "--answersfirst - to ask questions in format: ? + num2 = num3\n"
+ " instead of default format: num1 + num2 = ?\n"
+ "--answersmiddle - to ask questions in format: num1 + ? = num3\n"
+ " instead of default format: num1 + num2 = ?\n"
+ "--nosound - to disable sound/music\n"
+ "--nobackground - to disable background photos (for slower systems)\n"
+ "--fullscreen - to run in fullscreen, if possible (vs. windowed)\n"
+ "--windowed - to run in a window rather than fullscreen\n"
+ "--keypad - to enable the on-sceen numeric keypad\n"
+ "--demo - to run the program as a cycling demonstration\n"
+ "--speed S - set initial speed of the game\n"
+ " (S may be fractional, default is 1.0)\n"
+ "--allownegatives - to allow answers to be less than zero\n"
+ );
+
+ printf("\n");
+
+ cleanup_on_error();
+ exit(0);
+ }
+ else if (strcmp(argv[i], "--copyright") == 0 ||
+ strcmp(argv[i], "-c") == 0)
+ {
+ printf(
+ "\n\"Tux, of Math Command\" version " VERSION ", Copyright (C) 2001-2009,\n"
+ "Bill Kendrick, David Bruce, Tim Holy, and the Tux4Kids Project.\n"
+ "This program is free software; you can redistribute it and/or\n"
+ "modify it under the terms of the GNU General Public License\n"
+ "as published by the Free Software Foundation. See COPYING.txt\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"
+ "\n");
+
+ cleanup_on_error();
+ exit(0);
+ }
+ else if (strcmp(argv[i], "--usage") == 0 ||
+ strcmp(argv[i], "-u") == 0)
+ {
+ /* Display (happy) usage: */
+
+ usage(0, argv[0]);
+ }
+ else if (0 == strcmp(argv[i], "--homedir"))
+ {
+ // Parse the user choice of a non-default home directory
+ if (i >= argc -1)
+ {
+ fprintf(stderr, "%s option requires an argument (dirname)\n", argv[i]);
+ usage(1, argv[0]);
+ }
+ else // see whether the specified name is a directory
+ {
+ if ((dirp = opendir(argv[i+1])) == NULL)
+ fprintf(stderr,"homedir: %s is not a directory, or it could not be read\n", argv[i+1]);
+ else {
+ set_user_data_dir(argv[i+1]); // copy the homedir setting
+ closedir(dirp);
+ }
+ i++; // to pass over the next argument, so remaining options parsed
+ }
+ }
+ else if (0 == strcmp(argv[i], "--optionfile"))
+ {
+ if (i >= argc - 1)
+ {
+ fprintf(stderr, "%s option requires an argument (filename)\n", argv[i]);
+ usage(1, argv[0]);
+ }
+ else /* try to read file named in following arg: */
+ {
+ if (!read_named_config_file(argv[i + 1]))
+ {
+ fprintf(stderr, "Could not read config file: %s\n", argv[i + 1]);
+ }
+ }
+ i++; /* so program doesn't barf on next arg (the filename) */
+ }
+ else if (strcmp(argv[i], "--fullscreen") == 0 ||
+ strcmp(argv[i], "-f") == 0)
+ {
+ Opts_SetGlobalOpt(FULLSCREEN, 1);
+ }
+ else if (strcmp(argv[i], "--windowed") == 0 ||
+ strcmp(argv[i], "-w") == 0)
+ {
+ Opts_SetGlobalOpt(FULLSCREEN, 0);
+ }
+ else if (strcmp(argv[i], "--nosound") == 0 ||
+ strcmp(argv[i], "-s") == 0 ||
+ strcmp(argv[i], "--quiet") == 0 ||
+ strcmp(argv[i], "-q") == 0)
+ {
+ Opts_SetGlobalOpt(USE_SOUND, -1); // prevent options files from overwriting
+ }
+ else if (strcmp(argv[i], "--version") == 0 ||
+ strcmp(argv[i], "-v") == 0)
+ {
+ printf("Tux, of Math Command (\"tuxmath\")\n"
+ "Version " VERSION "\n");
+ cleanup_on_error();
+ exit(0);
+ }
+ else if (strcmp(argv[i], "--nobackground") == 0 ||
+ strcmp(argv[i], "-b") == 0)
+ {
+ Opts_SetUseBkgd(0);
+ }
+ else if (strcmp(argv[i], "--demo") == 0 ||
+ strcmp(argv[i], "-d") == 0)
+ {
+ Opts_SetDemoMode(1);
+ }
+ else if (strcmp(argv[i], "--keypad") == 0 ||
+ strcmp(argv[i], "-k") == 0)
+ {
+ Opts_SetGlobalOpt(USE_KEYPAD, 1);
+ }
+ else if (strcmp(argv[i], "--allownegatives") == 0 ||
+ strcmp(argv[i], "-n") == 0)
+ {
+ MC_SetOpt(ALLOW_NEGATIVES, 1);
+ }
+ else if (strcmp(argv[i], "--playthroughlist") == 0 ||
+ strcmp(argv[i], "-l") == 0)
+ {
+ MC_SetOpt(PLAY_THROUGH_LIST, 1);
+ }
+ else if (strcmp(argv[i], "--answersfirst") == 0)
+ {
+ MC_SetOpt(FORMAT_ANSWER_LAST, 0);
+ MC_SetOpt(FORMAT_ANSWER_FIRST, 1);
+ MC_SetOpt(FORMAT_ANSWER_MIDDLE, 0);
+ }
+ else if (strcmp(argv[i], "--answersmiddle") == 0)
+ {
+ MC_SetOpt(FORMAT_ANSWER_LAST, 0);
+ MC_SetOpt(FORMAT_ANSWER_FIRST, 0);
+ MC_SetOpt(FORMAT_ANSWER_MIDDLE, 1);
+ }
+ else if (strcmp(argv[i], "--speed") == 0 ||
+ strcmp(argv[i], "-s") == 0)
+ {
+ if (i >= argc - 1)
+ {
+ fprintf(stderr, "%s option requires an argument\n", argv[i]);
+ usage(1, argv[0]);
+ }
+
+ Opts_SetSpeed(strtod(argv[i + 1], (char **) NULL));
+ i++;
+ }
+ else if (strcmp(argv[i], "--debug-all") == 0)
+ {
+ debug_status |= debug_all;
+ }
+ else if (strcmp(argv[i], "--debug-setup") == 0)
+ {
+ debug_status |= debug_setup;
+ }
+ else if (strcmp(argv[i], "--debug-fileops") == 0)
+ {
+ debug_status |= debug_fileops;
+ }
+ else if (strcmp(argv[i], "--debug-loaders") == 0)
+ {
+ debug_status |= debug_loaders;
+ }
+ else if (strcmp(argv[i], "--debug-titlescreen") == 0)
+ {
+ debug_status |= debug_titlescreen;
+ }
+ else if (strcmp(argv[i], "--debug-menu") == 0)
+ {
+ debug_status |= debug_menu;
+ }
+ else if (strcmp(argv[i], "--debug-menu-parser") == 0)
+ {
+ debug_status |= debug_menu_parser;
+ }
+ else if (strcmp(argv[i], "--debug-game") == 0)
+ {
+ debug_status |= debug_game;
+ }
+ else if (strcmp(argv[i], "--debug-factoroids") == 0)
+ {
+ debug_status |= debug_factoroids;
+ }
+ else if (strcmp(argv[i], "--debug-lan") == 0)
+ {
+ debug_status |= debug_lan;
+ }
+ else if (strcmp(argv[i], "--debug-mathcards") == 0)
+ {
+ debug_status |= debug_mathcards;
+ }
+ else if (strcmp(argv[i], "--debug-sdl") == 0)
+ {
+ debug_status |= debug_sdl;
+ }
+ else if (strcmp(argv[i], "--debug-lessons") == 0)
+ {
+ debug_status |= debug_lessons;
+ }
+ else if (strcmp(argv[i], "--debug-highscore") == 0)
+ {
+ debug_status |= debug_highscore;
+ }
+ else if (strcmp(argv[i], "--debug-options") == 0)
+ {
+ debug_status |= debug_options;
+ }
+ else
+ /* TODO try to match unrecognized strings to config file names */
+ {
+ /* Display 'made' usage: */
+
+ fprintf(stderr, "Unknown option: %s\n", argv[i]);
+ usage(1, argv[0]);
+ }
+ }/* end of command-line args */
+
+ DEBUGMSG(debug_setup,"debug_status: %x", debug_status);
+
+ if (Opts_DemoMode() && Opts_GetGlobalOpt(USE_KEYPAD))
+ {
+ fprintf(stderr, "No use for keypad in demo mode!\n");
+ Opts_SetGlobalOpt(USE_KEYPAD, 0);
+ }
+}
+
+void initialize_SDL(void)
+{
+ // Audio parameters
+ int frequency, channels, n_timesopened;
+ Uint16 format;
+
+ /* Init SDL Video: */
+ screen = NULL;
+
+ if (SDL_Init(SDL_INIT_VIDEO) < 0)
+ {
+ fprintf(stderr,
+ "\nError: I could not initialize video!\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", SDL_GetError());
+ cleanup_on_error();
+ exit(1);
+ }
+
+ /* This sets up whichever text library we are using: */
+ if (!Setup_SDL_Text())
+ {
+ fprintf( stderr, "Couldn't initialize text (SDL_ttf or SDL_Pango)\n");
+ cleanup_on_error();
+ exit(2);
+ }
+
+// atexit(TTF_Quit); // Maybe this is redundant?
+
+
+
+ #ifndef NOSOUND
+ /* Init SDL Audio: */
+ Opts_SetSoundHWAvailable(0); // By default no sound HW
+ if (Opts_GetGlobalOpt(USE_SOUND))
+ {
+ if (SDL_Init(SDL_INIT_AUDIO) < 0)
+ {
+ fprintf(stderr,
+ "\nWarning: I could not initialize audio!\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", SDL_GetError());
+ }
+ else {
+ //if (Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 2048) < 0)
+ if (Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, AUDIO_S16SYS, 2, 2048) < 0)
+ {
+ fprintf(stderr,
+ "\nWarning: I could not set up audio for 44100 Hz "
+ "16-bit stereo.\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", SDL_GetError());
+
+ }
+ }
+ n_timesopened = Mix_QuerySpec(&frequency,&format,&channels);
+ if (n_timesopened > 0)
+ Opts_SetSoundHWAvailable(1);
+ else
+ frequency = format = channels = 0; //more helpful than garbage
+ DEBUGMSG(debug_setup, "Sound mixer: frequency = %d, "
+ "format = %x, "
+ "channels = %d, "
+ "n_timesopened = %d\n",
+ frequency,format,channels,n_timesopened);
+ }
+
+ #endif
+ {
+ const SDL_VideoInfo *videoInfo;
+ Uint32 surfaceMode;
+ videoInfo = SDL_GetVideoInfo();
+ if (videoInfo->hw_available)
+ {
+ surfaceMode = SDL_HWSURFACE;
+ DEBUGMSG(debug_setup, "HW mode\n");
+ }
+ else
+ {
+ surfaceMode = SDL_SWSURFACE;
+ DEBUGMSG(debug_setup, "SW mode\n");
+ }
+
+ // Determine the current resolution: this will be used as the
+ // fullscreen resolution, if the user wants fullscreen.
+ DEBUGMSG(debug_setup, "Current resolution: w %d, h %d.\n",videoInfo->current_w,videoInfo->current_h);
+ fs_res_x = videoInfo->current_w;
+ fs_res_y = videoInfo->current_h;
+
+ if (Opts_GetGlobalOpt(FULLSCREEN))
+ {
+ screen = SDL_SetVideoMode(fs_res_x, fs_res_y, PIXEL_BITS, SDL_FULLSCREEN | surfaceMode);
+ if (screen == NULL)
+ {
+ fprintf(stderr,
+ "\nWarning: I could not open the display in fullscreen mode.\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", SDL_GetError());
+ Opts_SetGlobalOpt(FULLSCREEN, 0);
+ }
+ }
+
+ if (!Opts_GetGlobalOpt(FULLSCREEN))
+ {
+ screen = SDL_SetVideoMode(win_res_x, win_res_y, PIXEL_BITS, surfaceMode);
+ }
+
+ if (screen == NULL)
+ {
+ fprintf(stderr,
+ "\nError: I could not open the display.\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", SDL_GetError());
+ cleanup_on_error();
+ exit(1);
+ }
+
+ seticon();
+
+ SDL_WM_SetCaption("Tux, of Math Command", "TuxMath");
+ }
+
+ /* --- Define the colors we use --- */
+ /* This was moved here because of wanting to replace some images
+ with fonts during setup */
+ black.r = 0x00; black.g = 0x00; black.b = 0x00;
+ gray.r = 0x80; gray.g = 0x80; gray.b = 0x80;
+ dark_blue.r = 0x00; dark_blue.g = 0x00; dark_blue.b = 0x60;
+ red.r = 0xff; red.g = 0x00; red.b = 0x00;
+ white.r = 0xff; white.g = 0xff; white.b = 0xff;
+ yellow.r = 0xff; yellow.g = 0xff; yellow.b = 0x00;
+}
+
+
+void load_data_files(void)
+{
+ if (!load_sound_data())
+ {
+ fprintf(stderr, "\nCould not load sound file - attempting to proceed without sound.\n");
+ Opts_SetSoundHWAvailable(0);
+ }
+
+ /* This now has to come after loading the font, because it replaces
+ a couple of images with translatable versions. */
+ /* NOTE now the text code will load the font if it isn't already loaded */
+ if (!load_image_data())
+ {
+ fprintf(stderr, "\nCould not load image file - exiting!\n");
+ cleanup_on_error();
+ exit(1);
+ }
+}
+
+
+
+/* Create flipped versions of certain images; also set up the flip
+ lookup table */
+void generate_flipped_images(void)
+{
+ int i;
+
+ /* Zero out the flip lookup table */
+ for (i = 0; i < NUM_IMAGES; i++)
+ flipped_img_lookup[i] = 0;
+
+ for (i = 0; i < NUM_FLIPPED_IMAGES; i++) {
+ flipped_images[i] = Flip(images[flipped_img[i]],1,0);
+ flipped_img_lookup[flipped_img[i]] = i;
+ }
+}
+
+/* Created images that are blends of two other images to smooth out
+ the transitions. */
+void generate_blended_images(void)
+{
+ blended_igloos[0] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.06);
+ blended_igloos[1] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.125);
+ blended_igloos[2] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.185);
+ blended_igloos[3] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.25);
+ blended_igloos[4] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.5);
+ blended_igloos[5] = Blend(images[IMG_IGLOO_REBUILDING1],NULL,0.75);
+ blended_igloos[6] = images[IMG_IGLOO_REBUILDING1];
+ blended_igloos[7] = Blend(images[IMG_IGLOO_REBUILDING2],images[IMG_IGLOO_REBUILDING1],0.25);
+ blended_igloos[8] = Blend(images[IMG_IGLOO_REBUILDING2],images[IMG_IGLOO_REBUILDING1],0.5);
+ blended_igloos[9] = Blend(images[IMG_IGLOO_REBUILDING2],images[IMG_IGLOO_REBUILDING1],0.75);
+ blended_igloos[10] = images[IMG_IGLOO_REBUILDING2];
+ blended_igloos[11] = Blend(images[IMG_IGLOO_INTACT],images[IMG_IGLOO_REBUILDING2],0.25);
+ blended_igloos[12] = Blend(images[IMG_IGLOO_INTACT],images[IMG_IGLOO_REBUILDING2],0.5);
+ blended_igloos[13] = Blend(images[IMG_IGLOO_INTACT],images[IMG_IGLOO_REBUILDING2],0.75);
+ blended_igloos[14] = images[IMG_IGLOO_INTACT];
+}
+
+
+/* save options and free heap */
+/* use for successful exit */
+void cleanup(void)
+{
+ /* No longer write settings here, because we only */
+ /* want to save settings from certain types of games. */
+ //write_user_config_file();
+ cleanup_memory();
+// exit(0);
+}
+
+
+
+/* save options and free heap */
+/* use for fail exit */
+void cleanup_on_error(void)
+{
+ cleanup_memory();
+ exit(1);
+}
+
+
+
+/* free any heap memory used during game DSB */
+/* and also quit SDL properly: */
+/* NOTE - this function will get called twice if */
+/* exit occurs because of window close, so we */
+/* need to check all pointers before freeing them, */
+/* and set them to NULL after freeing them, so we */
+/* avoid segfaults at exit from double free() */
+void cleanup_memory(void)
+{
+ int i;
+ int frequency,channels,n_timesopened;
+ Uint16 format;
+
+ /* Free all images and sounds used by SDL: */
+ Cleanup_SDL_Text();
+
+ for (i = 0; i < NUM_IMAGES; i++)
+ {
+ if (images[i])
+ SDL_FreeSurface(images[i]);
+ images[i] = NULL;
+ }
+
+ for (i = 0; i < NUM_SOUNDS; i++)
+ {
+ if (sounds[i])
+ Mix_FreeChunk(sounds[i]);
+ sounds[i] = NULL;
+ }
+
+ for (i = 0; i < NUM_MUSICS; i++)
+ {
+ if (musics[i])
+ Mix_FreeMusic(musics[i]);
+ musics[i] = NULL;
+ }
+
+ if (lesson_list_titles)
+ {
+ for (i = 0; i < num_lessons; i++)
+ {
+ if (lesson_list_titles[i])
+ {
+ free(lesson_list_titles[i]);
+ lesson_list_titles[i] = NULL;
+ }
+ }
+ free(lesson_list_titles);
+ lesson_list_titles = NULL;
+ }
+
+ if (lesson_list_filenames)
+ {
+ for (i = 0; i < num_lessons; i++)
+ {
+ if (lesson_list_filenames[i])
+ {
+ free(lesson_list_filenames[i]);
+ lesson_list_filenames[i] = NULL;
+ }
+ }
+ free(lesson_list_filenames);
+ lesson_list_filenames = NULL;
+ }
+
+ if (lesson_list_goldstars)
+ {
+ free(lesson_list_goldstars);
+ lesson_list_goldstars = NULL;
+ }
+
+ // Close the audio mixer. We have to do this at least as many times
+ // as it was opened.
+ n_timesopened = Mix_QuerySpec(&frequency,&format,&channels);
+ while (n_timesopened) {
+ Mix_CloseAudio();
+ n_timesopened--;
+ }
+
+ UnloadMenus();
+
+ // Finally, quit SDL
+ SDL_Quit();
+
+ /* frees the game_options struct: */
+ Opts_Cleanup();
+ /* frees any heap used by MathCards: */
+ MC_EndGame();
+}
+
+
+
+/* Set the application's icon: */
+
+void seticon(void)
+{
+ int masklen;
+ Uint8* mask;
+ SDL_Surface* icon;
+
+
+ /* Load icon into a surface: */
+ icon = IMG_Load(DATA_PREFIX "/images/icons/icon.png");
+ if (icon == NULL)
+ {
+ fprintf(stderr,
+ "\nWarning: I could not load the icon image: %s\n"
+ "The Simple DirectMedia error that occured was:\n"
+ "%s\n\n", DATA_PREFIX "/images/icons/icon.png", SDL_GetError());
+ return;
+ }
+
+
+ /* Create mask: */
+ masklen = (((icon -> w) + 7) / 8) * (icon -> h);
+ mask = malloc(masklen * sizeof(Uint8));
+ memset(mask, 0xFF, masklen);
+
+
+ /* Set icon: */
+ SDL_WM_SetIcon(icon, mask);
+
+
+ /* Free icon surface & mask: */
+ free(mask);
+ SDL_FreeSurface(icon);
+
+
+ /* Seed random-number generator: */
+ srand(SDL_GetTicks());
+}
+
+void usage(int err, char * cmd)
+{
+ FILE * f;
+
+ if (err == 0)
+ f = stdout;
+ else
+ f = stderr;
+
+ fprintf(f,
+ "\nUsage: %s {--help | --usage | --copyright}\n"
+ " [--optionfile <filename>]\n"
+ " [--playthroughlist] [--answersfirst] [--answersmiddle]\n"
+ " %s [--fullscreen] [--nosound] [--nobackground]\n"
+ " [--demo] [--keypad] [--allownegatives]\n"
+// " [--operator {add | subtract | multiply | divide} ...]\n"
+ " [--speed <val>]\n"
+ "\n", cmd, cmd);
+
+ exit (err);
+}
+
diff --git a/src/setup.h b/src/setup.h
new file mode 100644
index 0000000..0fb1588
--- /dev/null
+++ b/src/setup.h
@@ -0,0 +1,38 @@
+/*
+ setup.h
+
+ For TuxMath
+ Contains functions to initialize the settings structs,
+ read in command-line arguments, and to clean up on exit.
+ All code involving file I/O has been moved to fileops.h/fileops.c
+ and is called from the main setup function.
+
+ Some globals are declared in setup.c - all globals throughout tuxmath
+ are now extern'd in the same place in tuxmath.h
+
+ by Bill Kendrick
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ August 26, 2001 - February 18, 2004
+
+ Modified by David Bruce
+ davidstuartbruce at gmail.com
+ September 1, 2006
+*/
+
+
+#ifndef SETUP_H
+#define SETUP_H
+
+
+void setup(int argc, char * argv[]);
+void cleanup(void);
+void cleanup_on_error(void);
+extern void initialize_options_user(void);
+
+#endif
diff --git a/src/testclient.c b/src/testclient.c
new file mode 100644
index 0000000..7618621
--- /dev/null
+++ b/src/testclient.c
@@ -0,0 +1,544 @@
+/*
+* C Implementation: server.c
+*
+* Description: Test client program for LAN-based play in Tux,of Math Command.
+*
+*
+* Author: Akash Gangil, David Bruce, and the TuxMath team, (C) 2009
+* Developers list: <tuxmath-devel at lists.sourceforge.net>
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*
+* NOTE: This file was initially based on example code from The Game Programming Wiki
+* (http://gpwiki.org), in a tutorial covered by the GNU Free Documentation License 1.2.
+* No invariant sections were indicated, and no separate license for the example code
+* was listed. The author was also not listed. AFAICT,this scenario allows incorporation of
+* derivative works into a GPLv2+ project like TuxMath - David Bruce
+*/
+#ifdef HAVE_LIBSDL_NET
+
+#include "globals.h"
+#include "transtruct.h"
+#include "mathcards.h"
+#include "testclient.h"
+#include "throttle.h"
+#include "network.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <fcntl.h>
+
+//#include "SDL_net.h"
+
+/* Local (to testclient.c) "globals": */
+
+int quit = 0;
+int game_status = GAME_NOT_STARTED;
+
+MC_FlashCard comets[QUEST_QUEUE_SIZE]; //current questions
+int remaining_quests = 0;
+
+
+/* Local function prototypes: */
+int playgame(void);
+int erase_flashcard(MC_FlashCard* fc);
+MC_FlashCard* find_comet_by_id(int id);
+MC_FlashCard* check_answer(int ans);
+
+int read_stdin_nonblock(char* buf, size_t max_length);
+
+/* Functions to handle messages from server: */
+int game_check_msgs(void);
+int add_quest_recvd(char* buf);
+int remove_quest_recvd(char* buf);
+int player_msg_recvd(char* buf);
+int total_quests_recvd(char* buf);
+int mission_accompl_recvd(char* buf);
+
+/* Display to player: */
+void print_current_quests(void);
+
+/* Main function: ------------------------------------- */
+
+int main(int argc, char **argv)
+{
+ char buffer[NET_BUF_LEN]; // for command-line input
+ int servers_found = 0;
+ int server_number = -1;
+ Uint32 timer = 0;
+
+ //Scan local network to find running server:
+ servers_found = LAN_DetectServers();
+
+ if(servers_found < 1)
+ {
+ printf("No server could be found - exiting.\n");
+ exit(EXIT_FAILURE);
+ }
+ else if(servers_found == 1) //One server - connect without player intervention
+ {
+ printf("Single server found - connecting automatically...");
+
+ if(!LAN_AutoSetup(0)) //i.e.first (and only) entry in list
+ {
+ printf("setup_client() failed - exiting.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ printf("connected\n");
+ }
+
+
+ else // More than one server - will have to get player selection:
+ {
+ while(server_number < 0 || server_number >= servers_found)
+ {
+ printf("The following TuxMath servers were detected:\n");
+ print_server_list();
+ printf("Enter the SERVER NUMBER you would like to connect to:\n");
+ scanf("%d", &server_number);
+ if(server_number < 0 || server_number >= servers_found)
+ printf("Illegal value - try again.\n");
+ }
+ if(!LAN_AutoSetup(server_number)) //i.e.first (and only) entry in list
+ {
+ printf("setup_client() failed - exiting.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ printf("connected\n");
+ }
+
+
+ /* Now we are connected - get nickname from player: */
+ {
+ char name[NAME_SIZE];
+ char* p;
+
+ printf("Please enter your name:\n>\n");
+ fgets(buffer, NAME_SIZE, stdin);
+ p = strchr(buffer, '\n'); //get rid of newline character
+ if(p)
+ *p = '\0';
+ strncpy(name, buffer, NAME_SIZE);
+ /* If no nickname received, use default: */
+ if(strlen(name) == 1)
+ strcpy(name, "Anonymous Coward");
+
+ snprintf(buffer, NET_BUF_LEN, "%s", name);
+ LAN_SetName(name);
+ }
+
+ printf("Welcome to the Tux Math Test Client!\n");
+ printf("Type:\n"
+ "'game' to start math game;\n"
+ "'exit' to end client leaving server running;\n"
+ "'quit' to end both client and server\n>\n");
+
+
+ /* Set stdin to be non-blocking: */
+ fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK);
+
+
+ quit = 0;
+ while(!quit)
+ {
+ // See if we have any messages from server:
+ game_check_msgs();
+
+ //Get user input from command line and send it to server:
+ /*now display the options*/
+ if(read_stdin_nonblock(buffer, NET_BUF_LEN))
+ {
+ //Figure out if we are trying to quit:
+ if( (strncmp(buffer, "exit", 4) == 0)
+ ||(strncmp(buffer, "quit", 4) == 0))
+
+ {
+ quit = 1;
+ }
+ else if (strncmp(buffer, "game", 4) == 0)
+ {
+ // Begin the actual math game
+ playgame();
+ printf("Math game finished.\n\n");
+ printf("Type:\n"
+ "'game' to start math game;\n"
+ "'exit' to end client leaving server running;\n"
+ "'quit' to end both client and server\n>\n");
+ }
+ else
+ {
+ printf("Command not recognized. Type:\n"
+ "'game' to start math game;\n"
+ "'exit' to end client leaving server running;\n"
+ "'quit' to end both client and server\n\n>\n");
+ }
+ }
+ //Limit loop to once per 10 msec so we don't eat all CPU
+ Throttle(10, &timer);
+ }
+
+ LAN_Cleanup();
+
+ return EXIT_SUCCESS;
+}
+
+
+
+
+
+int game_check_msgs(void)
+{
+ char buf[NET_BUF_LEN];
+ int status = 1;
+ while(1)
+ {
+ buf[0] = '\0';
+ status = LAN_NextMsg(buf);
+ if (status == -1) //Fatal error
+ {
+ printf("Error - LAN_NextMsg() returned -1\n");
+ return -1;
+ }
+
+ if (status == 0) //No more messages
+ {
+ break;
+ }
+
+ DEBUGMSG(debug_lan, "Buffer from server is: %s\n", buf);
+
+ /* Now we process the buffer according to the command: */
+ if(strncmp(buf, "SEND_QUESTION", strlen("SEND_QUESTION")) == 0)
+ {
+ if(!add_quest_recvd(buf))
+ printf("SEND_QUESTION received but could not add question\n");
+ else
+ // If we successfully added question, show new questions to user:
+ print_current_quests();
+ }
+ else if(strncmp(buf, "ADD_QUESTION", strlen("ADD_QUESTION")) == 0)
+ {
+ if(!add_quest_recvd(buf))
+ printf("ADD_QUESTION received but could not add question\n");
+ else
+ print_current_quests();
+ }
+ else if(strncmp(buf, "REMOVE_QUESTION", strlen("REMOVE_QUESTION")) == 0)
+ {
+ if(!remove_quest_recvd(buf)) //remove the question with id in buf
+ printf("REMOVE_QUESTION received but could not remove question\n");
+ else
+ print_current_quests();
+ }
+ else if(strncmp(buf, "SEND_MESSAGE", strlen("SEND_MESSAGE")) == 0)
+ {
+ printf("%s\n", buf);
+ }
+ else if(strncmp(buf, "PLAYER_MSG", strlen("PLAYER_MSG")) == 0)
+ {
+ player_msg_recvd(buf);
+ }
+ else if(strncmp(buf, "TOTAL_QUESTIONS", strlen("TOTAL_QUESTIONS")) == 0)
+ {
+ //update the "questions remaining" counter
+ total_quests_recvd(buf);
+ }
+ else if(strncmp(buf, "MISSION_ACCOMPLISHED", strlen("MISSION_ACCOMPLISHED")) == 0)
+ {
+ game_status = GAME_OVER_WON;
+ }
+ else
+ {
+ printf("game_check_msgs() - unrecognized message: %s\n", buf);
+ }
+ }
+
+ return 1;
+}
+
+
+
+int add_quest_recvd(char* buf)
+{
+ MC_FlashCard* fc = find_comet_by_id(-1);
+
+ if(!fc || !buf)
+ {
+ printf("NULL fc or buf\n");
+ return 0;
+ }
+ /* function call to parse buffer and receive question */
+ if(!Make_Flashcard(buf, fc))
+ {
+ printf("Unable to parse buffer into FlashCard\n");
+ return 0;
+ }
+
+ return 1;
+}
+
+
+
+int remove_quest_recvd(char* buf)
+{
+ int id = 0;
+ char* p = NULL;
+ MC_FlashCard* fc = NULL;
+
+ if(!buf)
+ return 0;
+
+ p = strchr(buf, '\t');
+ if(!p)
+ return 0;
+
+ id = atoi(p);
+ fc = find_comet_by_id(id);
+ if(!fc)
+ return 0;
+
+ erase_flashcard(fc);
+ return 1;
+}
+
+
+
+/* This function prints the 'msg' part of the buffer (i.e. everything */
+/* after the first '\t') to stdout. */
+int player_msg_recvd(char* buf)
+{
+ char* p;
+ if(buf == NULL)
+ return 0;
+ p = strchr(buf, '\t');
+ if(p)
+ {
+ p++;
+ printf("%s\n", p);
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+int total_quests_recvd(char* buf)
+{
+ char* p;
+ if(buf == NULL)
+ return 0;
+ p = strchr(buf, '\t');
+ if(p)
+ {
+ p++;
+ remaining_quests = atoi(p);
+ return 1;
+ }
+ else
+ return 0;
+}
+
+
+
+
+
+
+int playgame(void)
+{
+ int ans = 0;
+ MC_FlashCard* fc = NULL;
+ char buf[NET_BUF_LEN];
+ Uint32 timer = 0;
+
+ printf("\nStarting Tux, of the Math Command Line ;-)\n");
+ printf("Waiting for other players to be ready...\n\n");
+
+ //Tell server we're ready to start:
+ LAN_StartGame();
+ game_status = GAME_IN_PROGRESS;
+
+ /* Start out with our "comets" empty: */
+ {
+ int i;
+ for(i = 0; i < QUEST_QUEUE_SIZE; i ++)
+ erase_flashcard(&comets[i]);
+ }
+
+ //Begin game loop:
+ while (game_status == GAME_IN_PROGRESS)
+ {
+
+ //Check our network messages, bailing out for fatal errors:
+ if (game_check_msgs() == -1)
+ return -1;
+
+
+ //Now we check for any user responses
+
+ //This function returns 1 and updates buf with input from
+ //stdin if input is present.
+ //If no input, it returns 0 without blocking or waiting
+ if(read_stdin_nonblock(buf, NET_BUF_LEN))
+ {
+ //While in game, these just quit the current math game:
+ if ((strncmp(buf, "quit", 4) == 0)
+ ||(strncmp(buf, "exit", 4) == 0)
+ ||(strncmp(buf, "q", 1) == 0))
+ {
+ game_status = GAME_OVER_ESCAPE;
+// end = 1; //Exit our loop in playgame()
+ //Tell server we are quitting current game:
+ LAN_LeaveGame();
+ }
+ else
+ {
+ /*NOTE atoi() will return zero for any string that is not
+ a valid int, not just '0' - should not be a big deal for
+ our test program - DSB */
+ ans = atoi(buf);
+ fc = check_answer(ans);
+ if((fc != NULL))
+ {
+ printf("%s is correct!\nAwait next question...\n>\n", buf);
+ //Tell server we answered it right:
+ //NOTE the '-1' means we aren't tracking times for testclient
+ LAN_AnsweredCorrectly(fc->question_id, -1);
+ erase_flashcard(fc);
+ print_current_quests();
+ }
+ else //we got input, but not the correct answer:
+ {
+ int i = rand()%QUEST_QUEUE_SIZE;
+ printf("Sorry, %s is incorrect. Try again!\n", buf);
+ // Can't tell which question was the 'wrong' one, so we
+ // a non-empty one at random. Note that this is just for
+ // purposes of testing LAN_NotAnsweredCorrectly()
+ while(-1 == comets[i].question_id)
+ i = rand()%QUEST_QUEUE_SIZE;
+ LAN_NotAnsweredCorrectly(comets[i].question_id);
+ print_current_quests();
+ }
+ } //input wasn't any of our keywords
+ } // Input was received
+
+ Throttle(10, &timer); //so don't eat all CPU
+ } //End of game loop
+
+ switch(game_status)
+ {
+ case GAME_OVER_ESCAPE:
+ printf("You quit :(\n");
+ break;
+ case GAME_OVER_WON:
+ printf("You won! :-)\n");
+ }
+
+ DEBUGMSG(debug_lan, "Leaving playgame()\n");
+
+ return 1;
+}
+
+
+
+
+//Here we read up to max_length bytes from stdin into the buffer.
+//The first '\n' in the buffer, if present, is replaced with a
+//null terminator.
+//returns 0 if no data ready, 1 if at least one byte read.
+//NOTE for this to work we must first set stdin to O_NONBLOCK with:
+// fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK);
+
+int read_stdin_nonblock(char* buf, size_t max_length)
+{
+ int bytes_read = 0;
+ char* term = NULL;
+ buf[0] = '\0';
+
+ bytes_read = fread (buf, 1, max_length, stdin);
+ term = strchr(buf, '\n');
+ if (term)
+ *term = '\0';
+
+ if(bytes_read > 0)
+ bytes_read = 1;
+ else
+ bytes_read = 0;
+
+ return bytes_read;
+}
+
+/* Display the current questions and the number of remaining questions: */
+void print_current_quests(void)
+{
+ int i;
+ printf("\n------------ Current Questions: -----------\n");
+ for(i = 0; i < QUEST_QUEUE_SIZE; i ++)
+ {
+ if(comets[i].question_id != -1)
+ printf("Comet %d - question %d:\t%s\n", i, comets[i].question_id, comets[i].formula_string);
+ else
+ printf("Comet %d:\tEmpty\n", i);
+ }
+ printf("-----------------------------------------------\n");
+}
+
+
+int erase_flashcard(MC_FlashCard* fc)
+{
+ if(!fc)
+ return 0;
+ fc->formula_string[0] = '\0';
+ fc->answer_string[0] = '\0';
+ fc->question_id = -1;
+ fc->answer = -9999;
+ fc->difficulty = 0;
+ return 1;
+}
+
+
+/* Return a pointer to an empty comet slot, */
+/* returning NULL if no vacancy found: */
+
+MC_FlashCard* find_comet_by_id(int id)
+{
+ int i = 0;
+ for(i = 0; i < QUEST_QUEUE_SIZE; i++)
+ {
+ if(comets[i].question_id == id)
+ return &comets[i];
+ }
+ //if we don't find a match:
+ return NULL;
+}
+
+/* Check the "comets" in order to see if the given */
+/* value matches the answer for any of the comets: */
+/* Returns a pointer to the matching comet, or */
+/* NULL if the answer doesn't match: */
+
+MC_FlashCard* check_answer(int ans)
+{
+ int i = 0;
+ for(i = 0; i < QUEST_QUEUE_SIZE; i++)
+ {
+ /* Make sure we don't "match" an empty question with a zero answer: */
+ if( (comets[i].question_id != -1)
+ && (comets[i].answer == ans))
+
+ return &comets[i];
+ }
+ //if we don't find a matching question:
+ return NULL;
+}
+#else
+/* if no SDL_net, do nothing: */
+int main(int argc, char **argv)
+{
+ return 0;
+}
+#endif
diff --git a/src/testclient.h b/src/testclient.h
new file mode 100644
index 0000000..991be10
--- /dev/null
+++ b/src/testclient.h
@@ -0,0 +1,35 @@
+/*
+
+ testclient.h
+
+ Description: As of now it conatinsthe enum, which identifies
+ the network commands , as they are added(WORK IN PROGRESS).
+
+ Author: David Bruce ,Akash Gangil and the TuxMath team, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+
+#ifndef TESTCLIENT_H
+#define TESTCLIENT_H
+
+
+enum {
+ GAME_NOT_STARTED,
+ GAME_IN_PROGRESS,
+ GAME_OVER_WON,
+ GAME_OVER_LOST,
+ GAME_OVER_OTHER,
+ GAME_OVER_ESCAPE,
+ GAME_OVER_WINDOW_CLOSE,
+ GAME_OVER_CHEATER,
+ GAME_OVER_ERROR
+};
+
+
+enum {
+ SEND_QUESTION
+};
+
+#endif
diff --git a/src/throttle.c b/src/throttle.c
new file mode 100644
index 0000000..5052fc8
--- /dev/null
+++ b/src/throttle.c
@@ -0,0 +1,45 @@
+/*
+* C Implementation: network.c
+*
+* Description: A simple function that uses SDL_Delay() to keep
+* loops from eating all available CPU.
+
+*
+* Author: David Bruce, and the TuxMath team, (C) 2009
+* Developers list: <tuxmath-devel at lists.sourceforge.net>
+*
+* Copyright: See COPYING file that comes with this distribution. (Briefly, GNU GPL).
+*/
+
+
+#include "SDL.h"
+
+/* NOTE now store the time elsewhere to make function thread-safe */
+
+void Throttle(int loop_msec, Uint32* last_t)
+{
+ Uint32 now_t, wait_t;
+
+ if(!last_t)
+ return;
+
+ //Target loop time must be between 0 and 1000 msec:
+ if(loop_msec < 0)
+ loop_msec = 0;
+ if(loop_msec > 1000)
+ loop_msec = 1000;
+
+ //See if we need to wait:
+ now_t = SDL_GetTicks();
+ if (now_t < (*last_t + loop_msec))
+ {
+ wait_t = (*last_t + loop_msec) - now_t;
+ //Avoid problem if we somehow wrap past uint32 size (at 49.7 days!)
+ if(wait_t < 0)
+ wait_t = 0;
+ if(wait_t > loop_msec)
+ wait_t = loop_msec;
+ SDL_Delay(wait_t);
+ }
+ *last_t = SDL_GetTicks();
+}
diff --git a/src/throttle.h b/src/throttle.h
new file mode 100644
index 0000000..6d55501
--- /dev/null
+++ b/src/throttle.h
@@ -0,0 +1,24 @@
+/*
+
+ throttle.h
+
+ Description: A simple function that uses SDL_Delay() to keep loops from eating all available
+ CPU
+ Author: David Bruce and the TuxMath team, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+
+#ifndef THROTTLE_H
+#define THROTTLE_H
+
+#include "SDL.h"
+
+// This simple function uses SDL_Delay() to wait to return until 'loop_msec'
+// milliseconds after it returned the last time. Per SDL docs, the granularity
+// is likely no better than 10 msec
+// NOTE Uint32* last_t arg added to make function thread-safe
+void Throttle(int loop_msec, Uint32* last_t);
+
+#endif
diff --git a/src/titlescreen.c b/src/titlescreen.c
new file mode 100644
index 0000000..6e48388
--- /dev/null
+++ b/src/titlescreen.c
@@ -0,0 +1,901 @@
+/*
+ titlescreen.c
+
+ Splash, background and title screen items.
+
+ begin : Thur May 4 2000
+ copyright : (C) 2000 by Sam Hart
+ : (C) 2003 by Jesse Andrews
+ email : tuxtype-dev at tux4kids.net
+
+ Modified for use in tuxmath by David Bruce - 2006-2007.
+ email : <davidstuartbruce at gmail.com>
+ <tuxmath-devel at lists.sourceforge.net>
+
+ Also significantly enhanced by Tim Holy - 2007
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#include "titlescreen.h"
+
+#include "tuxmath.h"
+#include "options.h"
+#include "fileops.h"
+#include "setup.h"
+#include "loaders.h"
+#include "SDL_extras.h"
+#include "menu.h"
+#include "throttle.h"
+
+/* --- Data Structure for Dirty Blitting --- */
+SDL_Rect srcupdate[MAX_UPDATES];
+SDL_Rect dstupdate[MAX_UPDATES];
+int numupdates = 0; // tracks how many blits to be done
+
+// Colors we use:
+SDL_Color black;
+SDL_Color gray;
+SDL_Color dark_blue;
+SDL_Color red;
+SDL_Color white;
+SDL_Color yellow;
+
+// Type needed for trans_wipe():
+struct blit {
+ SDL_Surface *src;
+ SDL_Rect *srcrect;
+ SDL_Rect *dstrect;
+ unsigned char type;
+} blits[MAX_UPDATES];
+
+// Lessons available for play
+char **lesson_list_titles = NULL;
+char **lesson_list_filenames = NULL;
+int num_lessons = 0;
+
+/*TODO: move these constants into a config file
+ (together with menu.c constants ? ) */
+const float title_pos[4] = {0.0, 0.0, 0.3, 0.25};
+const float tux_pos[4] = {0.0, 0.6, 0.3, 0.4};
+const char* bkg_path = "title/menu_bkg.jpg";
+const char* standby_path = "status/standby.svg";
+const char* title_path = "title/title1.svg";
+const char* egg_path = "title/egg.svg";
+const char* tux_path = "tux/bigtux";
+/* beak coordinates relative to tux rect */
+const float beak_pos[4] = {0.36, 0.21, 0.27, 0.14};
+
+
+SDL_Event event;
+
+/* screen dimensions to which titlescreen graphics are currently rendered */
+int curr_res_x = -1;
+int curr_res_y = -1;
+
+/* titlescreen items */
+SDL_Surface* win_bkg = NULL;
+SDL_Surface* fs_bkg = NULL;
+
+SDL_Surface* logo = NULL;
+sprite* Tux = NULL;
+SDL_Surface* title = NULL;
+
+/* "Easter Egg" cursor */
+SDL_Surface* egg = NULL;
+int egg_active = 0; //are we currently using the egg cursor?
+
+/* locations we need */
+SDL_Rect bkg_rect,
+ logo_rect,
+ tux_rect,
+ title_rect,
+ cursor,
+ beak;
+
+SDL_Surface* current_bkg()
+ /* This syntax makes my brain start to explode! */
+ { return screen->flags & SDL_FULLSCREEN ? fs_bkg : win_bkg; }
+
+/* FIXME don't we have to scale these? */
+void set_current_bkg(SDL_Surface* new_bkg)
+{
+ if(screen->flags & SDL_FULLSCREEN)
+ {
+ if(fs_bkg != NULL)
+ SDL_FreeSurface(fs_bkg);
+ fs_bkg = new_bkg;
+ }
+ else
+ {
+ if(win_bkg != NULL)
+ SDL_FreeSurface(win_bkg);
+ win_bkg = new_bkg;
+ }
+}
+
+/* Local function prototypes: */
+void NotImplemented(void);
+
+void free_titlescreen(void);
+
+void trans_wipe(SDL_Surface* newbkg, int type, int var1, int var2);
+void init_blits(void);
+void update_screen(int* frame);
+void add_rect(SDL_Rect* src, SDL_Rect* dst);
+
+int handle_easter_egg(const SDL_Event* evt);
+
+
+
+/***********************************************************/
+/* */
+/* "Public functions" (callable throughout program) */
+/* */
+/***********************************************************/
+
+
+/* Display Tux4Kids logo, then animate title screen
+ items onto the screen and run main menu */
+void TitleScreen(void)
+{
+ Uint32 start_time = 0;
+ SDL_Rect tux_anim, title_anim;
+ int i, tux_pix_skip, title_pix_skip, curr_time;
+
+ if (Opts_UsingSound())
+ {
+ Opts_SetGlobalOpt(MENU_SOUND, 1);
+ Opts_SetGlobalOpt(MENU_MUSIC, 1);
+ }
+
+ start_time = SDL_GetTicks();
+ logo = LoadImage(standby_path, IMG_REGULAR);
+
+ /* display the Standby screen */
+ if(logo)
+ {
+ /* Center horizontally and vertically */
+ logo_rect.x = (screen->w - logo->w) / 2;
+ logo_rect.y = (screen->h - logo->h) / 2;
+
+ logo_rect.w = logo->w;
+ logo_rect.h = logo->h;
+
+ SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
+ SDL_BlitSurface(logo, NULL, screen, &logo_rect);
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+ /* Play "harp" greeting sound lifted from Tux Paint */
+ playsound(SND_HARP);
+ SDL_FreeSurface(logo);
+ /* load menus */
+ LoadMenus();
+ }
+
+ /* load backgrounds */
+ LoadBothBkgds(bkg_path, &fs_bkg, &win_bkg);
+ if(fs_bkg == NULL || win_bkg == NULL)
+ {
+ fprintf(stderr, "Backgrounds were not properly loaded, exiting");
+ if(fs_bkg)
+ SDL_FreeSurface(fs_bkg);
+ if(win_bkg)
+ SDL_FreeSurface(win_bkg);
+ return;
+ }
+
+ /* load titlescreen images */
+ if(RenderTitleScreen() == 0)
+ {
+ fprintf(stderr, "Media was not properly loaded, exiting");
+ return;
+ }
+
+ /* --- wait --- */
+ while ((SDL_GetTicks() - start_time) < 2000)
+ {
+ /* Check to see if user pressed escape */
+ if (SDL_PollEvent(&event)
+ && event.type==SDL_KEYDOWN
+ && event.key.keysym.sym == SDLK_ESCAPE)
+ {
+ return;
+ }
+ SDL_Delay(50);
+ }
+
+ /* NOTE: do we need this ? */
+ DEBUGCODE(debug_titlescreen)
+ SDL_WM_GrabInput(SDL_GRAB_OFF); /* in case of a freeze, this traps the cursor */
+ else // NOTE- the accompanying "if" is inside the DEBUGCODE macro
+ SDL_WM_GrabInput(SDL_GRAB_ON); /* User input goes to TuxMath, not window manager */
+ SDL_ShowCursor(1);
+
+
+ /* Tux and Title animations */
+ DEBUGMSG(debug_titlescreen, "TitleScreen(): Now Animating Tux and Title onto the screen\n" );
+
+ /* Draw background (center it if it's smaller than screen) */
+ if(current_bkg())
+ {
+ /* FIXME not sure trans_wipe() works in Windows: */
+ trans_wipe(current_bkg(), RANDOM_WIPE, 10, 20);
+ /* Make sure background gets drawn (since trans_wipe() doesn't */
+ /* seem to work reliably as of yet): */
+ SDL_BlitSurface(current_bkg(), NULL, screen, &bkg_rect);
+ }
+
+ /* --- Pull tux & logo onscreen --- */
+ if(title && Tux && Tux->frame[0])
+ {
+ /* final tux & title positioins are already calculated,
+ start outside the screen */
+ tux_anim = tux_rect;
+ tux_anim.y = screen->h;
+
+ title_anim = title_rect;
+ title_anim.x = screen->w;
+
+ for(i = 0; i < ANIM_FRAMES; i++)
+ {
+ start_time = SDL_GetTicks();
+
+ /* Draw the entire background, over a black screen if necessary */
+ if(current_bkg()->w != screen->w || current_bkg()->h != screen->h)
+ SDL_FillRect(screen, &screen->clip_rect, 0);
+
+ SDL_BlitSurface(current_bkg(), NULL, screen, &bkg_rect);
+
+ /* calculate shifts */
+ tux_pix_skip = (tux_anim.y - tux_rect.y) / (ANIM_FRAMES - i);
+ tux_anim.y -= tux_pix_skip;
+ title_pix_skip = (title_anim.x - title_rect.x) / (ANIM_FRAMES - i);
+ title_anim.x -= title_pix_skip;
+
+ /* update screen */
+ SDL_BlitSurface(Tux->frame[0], NULL, screen, &tux_anim);
+ SDL_BlitSurface(title, NULL, screen, &title_anim);
+
+ SDL_UpdateRect(screen, tux_anim.x, tux_anim.y, tux_anim.w,
+ min(tux_anim.h + tux_pix_skip, screen->h - tux_anim.y));
+ SDL_UpdateRect(screen, title_anim.x, title_anim.y,
+ min(title_anim.w + title_pix_skip, screen->w - title_anim.x), title_anim.h);
+
+ curr_time = SDL_GetTicks();
+ if((curr_time - start_time) < 1000 / ANIM_FPS)
+ SDL_Delay(1000 / ANIM_FPS - (curr_time - start_time));
+ }
+ }
+
+ DEBUGMSG(debug_titlescreen, "TitleScreen(): Tux and Title are in place now\n");
+
+ /* Start playing menu music if desired: */
+ if (Opts_GetGlobalOpt(MENU_MUSIC))
+ {
+ audioMusicLoad("tuxi.ogg", -1);
+ }
+
+ /* If necessary, have the user log in */
+ if (RunLoginMenu() != -1) {
+ /* Finish parsing user options */
+ initialize_options_user();
+ /* Start the main menu */
+ RunMainMenu();
+ }
+
+ /* User has selected quit, clean up */
+ DEBUGMSG(debug_titlescreen, "TitleScreen(): Freeing title screen images\n");
+ free_titlescreen();
+
+ DEBUGMSG(debug_titlescreen, "leaving TitleScreen()\n");
+}
+
+void DrawTitleScreen(void)
+{
+ SDL_BlitSurface(current_bkg(), NULL, screen, &bkg_rect);
+ SDL_BlitSurface(Tux->frame[0], NULL, screen, &tux_rect);
+ SDL_BlitSurface(title, NULL, screen, &title_rect);
+ //SDL_UpdateRect(screen, 0, 0, 0, 0);
+}
+
+/* Render and position all titlescreen items to match current
+ screen size. Rendering is done only if needed.
+ This function must be called after every resolution change
+ returns 1 on success, 0 on failure */
+int RenderTitleScreen(void)
+{
+ SDL_Surface* new_bkg = NULL;
+
+ if(curr_res_x != screen->w || curr_res_y != screen->h)
+ {
+ /* we need to rerender titlescreen items */
+ DEBUGMSG(debug_titlescreen, "Re-rendering titlescreen items.\n");
+
+ /* we keep two backgrounds to make screen mode switch faster */
+ if(current_bkg()->w != screen->w || current_bkg()->h != screen->h)
+ {
+ new_bkg = LoadBkgd(bkg_path, screen->w, screen->h);
+ if(new_bkg == NULL)
+ {
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): Failed to load new background.\n");
+ return 0;
+ }
+ else
+ {
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): New background loaded.\n");
+ set_current_bkg(new_bkg);
+ }
+ }
+
+ bkg_rect = current_bkg()->clip_rect;
+ bkg_rect.x = (screen->w - bkg_rect.w) / 2;
+ bkg_rect.y = (screen->h - bkg_rect.h) / 2;
+
+ /* Tux in lower left corner of the screen */
+ SetRect(&tux_rect, tux_pos);
+ Tux = LoadSpriteOfBoundingBox(tux_path, IMG_ALPHA, tux_rect.w, tux_rect.h);
+ if(Tux && Tux->frame[0])
+ {
+ tux_rect.w = Tux->frame[0]->clip_rect.w;
+ tux_rect.h = Tux->frame[0]->clip_rect.h;
+ }
+ else
+ {
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): Failed to load Tux image.\n");
+ return 0;
+ }
+
+ /* "Tux, of math command" title in upper right corner */
+ SetRect(&title_rect, title_pos);
+ title = LoadImageOfBoundingBox(title_path, IMG_ALPHA, title_rect.w, title_rect.h);
+ if(title)
+ {
+ title_rect.w = title->clip_rect.w;
+ title_rect.h = title->clip_rect.h;
+ }
+ else
+ {
+ DEBUGMSG(debug_titlescreen, "RenderTitleScreen(): Failed to load title image.\n");
+ return 0;
+ }
+
+ /* easter egg */
+#ifdef HAVE_RSVG
+ egg = LoadImage(egg_path, IMG_ALPHA | IMG_NOT_REQUIRED);
+#else
+ egg = LoadImage(egg_path, IMG_COLORKEY | IMG_NOT_REQUIRED);
+#endif
+
+ beak.x = tux_rect.x + beak_pos[0] * tux_rect.w;
+ beak.y = tux_rect.y + beak_pos[1] * tux_rect.h;
+ beak.w = beak_pos[2] * tux_rect.w;
+ beak.h = beak_pos[3] * tux_rect.h;
+
+ curr_res_x = screen->w;
+ curr_res_y = screen->h;
+
+ DEBUGMSG(debug_titlescreen, "Leaving RenderTitleScreen().\n");
+ }
+ return 1;
+}
+
+
+/* handle titlescreen events (easter egg)
+ this function should be called from event loops
+ return 1 if events require full redraw */
+int HandleTitleScreenEvents(const SDL_Event* evt)
+{
+ return handle_easter_egg(evt);
+}
+
+/* handle all titlescreen blitting
+ this function should be called after every animation frame */
+void HandleTitleScreenAnimations()
+{
+ static int frame_counter = 0;
+ int tux_frame;
+
+ /* --- make Tux blink --- */
+ switch (frame_counter % TUX6)
+ {
+ case 0: tux_frame = 1; break;
+ case TUX1: tux_frame = 2; break;
+ case TUX2: tux_frame = 3; break;
+ case TUX3: tux_frame = 4; break;
+ case TUX4: tux_frame = 3; break;
+ case TUX5: tux_frame = 2; break;
+ default: tux_frame = 0;
+ }
+
+ if (Tux && tux_frame)
+ {
+ /* Redraw background to keep edges anti-aliased properly: */
+ SDL_BlitSurface(current_bkg(),&tux_rect, screen, &tux_rect);
+ SDL_BlitSurface(Tux->frame[tux_frame - 1], NULL, screen, &tux_rect);
+ UpdateRect(screen, &tux_rect);
+ }
+
+ if (egg_active) { //if we need to, draw the egg cursor
+ //who knows why GetMouseState() doesn't take Sint16's...
+ SDL_GetMouseState((int*)(&cursor.x), (int*)(&cursor.y));
+ cursor.x -= egg->w / 2; //center vertically
+ SDL_BlitSurface(egg, NULL, screen, &cursor);
+ UpdateRect(screen, &cursor);
+ }
+
+ frame_counter++;
+}
+
+
+/***********************************************************/
+/* */
+/* "Private functions" (callable only from this file) */
+/* */
+/***********************************************************/
+
+
+void free_titlescreen(void)
+{
+ DEBUGMSG(debug_titlescreen, "Entering free_titlescreen()\n");
+
+ FreeSprite(Tux);
+ Tux = NULL;
+
+ if(egg)
+ {
+ SDL_FreeSurface(egg);
+ egg = NULL;
+ }
+
+ if(title)
+ {
+ SDL_FreeSurface(title);
+ title = NULL;
+ }
+
+ if(fs_bkg)
+ {
+ SDL_FreeSurface(fs_bkg);
+ fs_bkg = NULL;
+ }
+
+ if(win_bkg)
+ {
+ SDL_FreeSurface(win_bkg);
+ win_bkg = NULL;
+ }
+}
+
+
+
+void NotImplemented(void)
+{
+ const char *s1, *s2, *s3, *s4;
+
+ s1 = _("Work In Progress!");
+ s2 = _("This feature is not ready yet");
+ s3 = _("Discuss the future of TuxMath at");
+ s4 = N_("tuxmath-devel at lists.sourceforge.net");
+
+ ShowMessage(DEFAULT_MENU_FONT_SIZE, s1, s2, s3, s4);
+}
+
+
+
+
+
+void ShowMessage(int font_size, const char* str1, const char* str2,
+ const char* str3, const char* str4)
+{
+ SDL_Surface *s1, *s2, *s3, *s4;
+ SDL_Rect loc;
+ int finished = 0;
+ Uint32 timer = 0;
+
+ /* To adjust font size: */
+ float scale = screen->w / 640;
+
+ s1 = s2 = s3 = s4 = NULL;
+
+ DEBUGMSG(debug_titlescreen, "ShowMessage() - creating text\n" );
+
+ if (str1)
+ s1 = BlackOutline(str1, font_size * scale, &white);
+ if (str2)
+ s2 = BlackOutline(str2, font_size * scale, &white);
+ if (str3)
+ s3 = BlackOutline(str3, font_size * scale, &white);
+ if (str4)
+ s4 = BlackOutline(str4, font_size * scale, &white);
+
+ DEBUGMSG(debug_titlescreen, "ShowMessage() - drawing screen\n" );
+
+ DrawTitleScreen();
+ /* Red "Stop" circle in upper right corner to go back to main menu: */
+ if (stop_button)
+ SDL_BlitSurface(stop_button, NULL, screen, &stop_rect);
+
+ /* Draw shaded background for better legibility: */
+ loc.x = screen->w * 0.25;
+ loc.y = screen->h * 0.1;
+ loc.w = screen->w * 0.5;
+ loc.h = screen->h * 0.8;
+ DrawButton(&loc, 50, SEL_RGBA);
+
+
+ /* Draw lines of text (do after drawing Tux so text is in front): */
+ if (s1)
+ {
+ loc.x = (screen->w / 2) - (s1->w/2); loc.y = screen->h * 0.2;
+ SDL_BlitSurface( s1, NULL, screen, &loc);
+ }
+ if (s2)
+ {
+ loc.x = (screen->w / 2) - (s2->w/2); loc.y = screen->h * 0.35;
+ SDL_BlitSurface( s2, NULL, screen, &loc);
+ }
+ if (s3)
+ {
+ //loc.x = 320 - (s3->w/2); loc.y = 300;
+ loc.x = (screen->w / 2) - (s3->w/2); loc.y = screen->h * 0.5;
+ SDL_BlitSurface( s3, NULL, screen, &loc);
+ }
+ if (s4)
+ {
+ //loc.x = 320 - (s4->w/2); loc.y = 340;
+ loc.x = (screen->w / 2) - (s4->w/2); loc.y = screen->h * 0.65;
+ SDL_BlitSurface( s4, NULL, screen, &loc);
+ }
+
+ /* and update: */
+ SDL_UpdateRect(screen, 0, 0, 0, 0);
+
+ while (!finished)
+ {
+ while (SDL_PollEvent(&event))
+ {
+ switch (event.type)
+ {
+ case SDL_QUIT:
+ {
+ cleanup();
+ }
+
+ case SDL_MOUSEBUTTONDOWN:
+ /* "Stop" button - go to main menu: */
+ {
+ if (inRect(stop_rect, event.button.x, event.button.y ))
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ break;
+ }
+ }
+ case SDL_KEYDOWN:
+ {
+ finished = 1;
+ playsound(SND_TOCK);
+ }
+ }
+ }
+
+ HandleTitleScreenAnimations();
+
+ /* Wait so we keep frame rate constant: */
+ Throttle(20, &timer);
+ } // End of while (!finished) loop
+
+ SDL_FreeSurface(s1);
+ SDL_FreeSurface(s2);
+ SDL_FreeSurface(s3);
+ SDL_FreeSurface(s4);
+}
+
+/* Was in playgame.c in tuxtype: */
+
+/* trans_wipe: Performs various wipes to new bkgs
+ Given a wipe request type, and any variables
+ that wipe requires, will perform a wipe from
+ the current screen image to a new one. */
+void trans_wipe(SDL_Surface* newbkg, int type, int var1, int var2)
+{
+ int i, j, x1, x2, y1, y2;
+ int step1, step2, step3, step4;
+ int frame;
+ SDL_Rect src;
+ SDL_Rect dst;
+
+ if (!screen)
+ {
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): screen not valid!\n");
+ return;
+ }
+
+ if (!newbkg)
+ {
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): newbkg not valid!\n");
+ return;
+ }
+
+ init_blits();
+
+ numupdates = 0;
+ frame = 0;
+
+ if(newbkg->w == screen->w && newbkg->h == screen->h) {
+ if( type == RANDOM_WIPE )
+ type = (RANDOM_WIPE * ((float) rand()) / (RAND_MAX+1.0));
+
+ switch( type ) {
+ case WIPE_BLINDS_VERT: {
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): Doing 'WIPE_BLINDS_VERT'\n");
+ /*var1 isnum ofdivisions
+ var2is howmany framesanimation shouldtake */
+ if(var1 <1 )var1 =1;
+ if( var2< 1) var2= 1;
+ step1= screen->w/ var1;
+ step2= step1/ var2;
+
+ for(i= 0;i <=var2; i++)
+ {
+ for(j= 0;j <=var1; j++)
+ {
+ x1= step1* (j- 0.5)- i* step2+ 1;
+ x2= step1* (j- 0.5)+ i* step2+ 1;
+ src.x= x1;
+ src.y= 0;
+ src.w= step2;
+ src.h= screen->h;
+ dst.x= x2;
+ dst.y= 0;
+ dst.w= step2;
+ dst.h= screen->h;
+
+ SDL_BlitSurface(newbkg,&src, screen,&src);
+ SDL_BlitSurface(newbkg, &dst,screen, &dst);
+
+ add_rect(&src,&src);
+ add_rect(&dst, &dst);
+ }
+ update_screen(&frame);
+ }
+
+ src.x= 0;
+ src.y= 0;
+ src.w= screen->w;
+ src.h= screen->h;
+ SDL_BlitSurface(newbkg,NULL, screen,&src);
+ SDL_Flip(screen);
+
+ break;
+ }
+ case WIPE_BLINDS_HORIZ:{
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): Doing 'WIPE_BLINDS_HORIZ'\n");
+ /* var1is numof divisions
+ var2 ishow manyframes animationshould take*/
+ if( var1< 1) var1= 1;
+ if(var2 <1 )var2 =1;
+ step1 =screen->h /var1;
+ step2 =step1 /var2;
+
+ for(i =0; i<= var2;i++) {
+ for(j= 0;j <=var1; j++){
+ y1 =step1 *(j -0.5) -i *step2 +1;
+ y2 =step1 *(j -0.5) +i *step2 +1;
+ src.x =0;
+ src.y =y1;
+ src.w =screen->w;
+ src.h =step2;
+ dst.x =0;
+ dst.y =y2;
+ dst.w =screen->w;
+ dst.h =step2;
+
+ SDL_BlitSurface(newbkg, &src,screen, &src);
+ SDL_BlitSurface(newbkg,&dst, screen,&dst);
+
+ add_rect(&src, &src);
+ add_rect(&dst,&dst);
+ }
+ update_screen(&frame);
+ }
+
+ src.x =0;
+ src.y =0;
+ src.w =screen->w;
+ src.h =screen->h;
+ SDL_BlitSurface(newbkg, NULL,screen, &src);
+ SDL_Flip(screen);
+
+ break;
+ }
+ case WIPE_BLINDS_BOX:{
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): Doing 'WIPE_BLINDS_BOX'\n");
+ /* var1is numof divisions
+ var2 ishow manyframes animationshould take*/
+ if( var1< 1) var1= 1;
+ if(var2 <1 )var2 =1;
+ step1 =screen->w /var1;
+ step2 =step1 /var2;
+ step3 =screen->h /var1;
+ step4 =step1 /var2;
+
+ for(i =0; i<= var2;i++) {
+ for(j= 0;j <=var1; j++){
+ x1 =step1 *(j -0.5) -i *step2 +1;
+ x2 =step1 *(j -0.5) +i *step2 +1;
+ src.x =x1;
+ src.y =0;
+ src.w =step2;
+ src.h =screen->h;
+ dst.x =x2;
+ dst.y =0;
+ dst.w =step2;
+ dst.h =screen->h;
+
+ SDL_BlitSurface(newbkg, &src,screen, &src);
+ SDL_BlitSurface(newbkg,&dst, screen,&dst);
+
+ add_rect(&src, &src);
+ add_rect(&dst,&dst);
+ y1 =step3 *(j -0.5) -i *step4 +1;
+ y2 =step3 *(j -0.5) +i *step4 +1;
+ src.x =0;
+ src.y =y1;
+ src.w =screen->w;
+ src.h =step4;
+ dst.x =0;
+ dst.y =y2;
+ dst.w =screen->w;
+ dst.h =step4;
+ SDL_BlitSurface(newbkg, &src,screen, &src);
+ SDL_BlitSurface(newbkg,&dst, screen,&dst);
+ add_rect(&src, &src);
+ add_rect(&dst,&dst);
+ }
+ update_screen(&frame);
+ }
+
+ src.x =0;
+ src.y =0;
+ src.w =screen->w;
+ src.h =screen->h;
+ SDL_BlitSurface(newbkg, NULL,screen, &src);
+ SDL_Flip(screen);
+
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ DEBUGMSG(debug_titlescreen, "trans_wipe(): FINISH\n");
+}
+
+/* InitEngine - Set up the update rectangle pointers
+ (user by trans_wipe() ) */
+void init_blits(void) {
+ int i;
+
+ for (i = 0; i < MAX_UPDATES; ++i) {
+ blits[i].srcrect = &srcupdate[i];
+ blits[i].dstrect = &dstupdate[i];
+ }
+}
+
+
+/* update_screen : Update the screen and increment the frame num
+ (used by trans_wipe() ) */
+void update_screen(int *frame) {
+ int i;
+
+ /* -- First erase everything we need to -- */
+ for (i = 0; i < numupdates; i++)
+ if (blits[i].type == 'E')
+ SDL_LowerBlit(blits[i].src, blits[i].srcrect, screen, blits[i].dstrect);
+// SNOW_erase();
+
+ /* -- then draw -- */
+ for (i = 0; i < numupdates; i++)
+ if (blits[i].type == 'D')
+ SDL_BlitSurface(blits[i].src, blits[i].srcrect, screen, blits[i].dstrect);
+// SNOW_draw();
+
+/* -- update the screen only where we need to! -- */
+// if (SNOW_on)
+// SDL_UpdateRects(screen, SNOW_add( (SDL_Rect*)&dstupdate, numupdates ), SNOW_rects);
+// else
+ SDL_UpdateRects(screen, numupdates, dstupdate);
+
+ numupdates = 0;
+ *frame = *frame + 1;
+}
+
+
+/* add_rect: Don't actually blit a surface,
+ but add a rect to be updated next update
+ (used by trans_wipe() ) */
+void add_rect(SDL_Rect* src, SDL_Rect* dst) {
+ /*borrowed from SL's alien (and modified)*/
+
+ struct blit *update;
+
+ if (!src || !dst)
+ {
+ DEBUGMSG(debug_titlescreen, "add_rect(): src or dst invalid!\n");
+ return;
+ }
+
+ update = &blits[numupdates++];
+
+ update->srcrect->x = src->x;
+ update->srcrect->y = src->y;
+ update->srcrect->w = src->w;
+ update->srcrect->h = src->h;
+ update->dstrect->x = dst->x;
+ update->dstrect->y = dst->y;
+ update->dstrect->w = dst->w;
+ update->dstrect->h = dst->h;
+ update->type = 'I';
+}
+
+int handle_easter_egg(const SDL_Event* evt)
+ {
+ static int eggtimer = 0;
+ int tuxframe;
+
+ // Avoid segfaults if needed images not available:
+ if (!Tux || !egg)
+ {
+ fprintf(stderr,
+ "handle_easter_egg() - needed images not avail, bailing out\n");
+ egg_active = 0;
+ return 1;
+ }
+
+ tuxframe = Tux->num_frames;
+
+
+ if (egg_active) //are we using the egg cursor?
+ {
+
+ if (eggtimer < SDL_GetTicks() ) //time's up
+ {
+ SDL_ShowCursor(SDL_ENABLE);
+ //SDL_FillRect(screen, &cursor, 0);
+ SDL_BlitSurface(current_bkg(), NULL, screen, &bkg_rect); //cover egg up once more
+ SDL_WarpMouse(cursor.x, cursor.y);
+ SDL_UpdateRect(screen, cursor.x, cursor.y, cursor.w, cursor.h); //egg->x, egg->y, egg->w, egg->h);
+ egg_active = 0;
+ }
+ return 1;
+ }
+ else //if not, see if the user clicked Tux's beak
+ {
+ eggtimer = 0;
+ if (evt->type == SDL_MOUSEBUTTONDOWN &&
+ inRect(beak, evt->button.x, evt->button.y) )
+ {
+ SDL_ShowCursor(SDL_DISABLE);
+
+ //animate
+ while (tuxframe != 0)
+ {
+ SDL_BlitSurface(current_bkg(), &tux_rect, screen, &tux_rect);
+ SDL_BlitSurface(Tux->frame[--tuxframe], NULL, screen, &tux_rect);
+ SDL_UpdateRect(screen, tux_rect.x, tux_rect.y, tux_rect.w, tux_rect.h);
+ SDL_Delay(GOBBLE_ANIM_MS / Tux->num_frames);
+ }
+
+ eggtimer = SDL_GetTicks() + EASTER_EGG_MS;
+ egg_active = 1;
+ SDL_WarpMouse(tux_rect.x + tux_rect.w / 2, tux_rect.y + tux_rect.h - egg->h);
+
+ }
+
+ return 0;
+ }
+ }
diff --git a/src/titlescreen.h b/src/titlescreen.h
new file mode 100644
index 0000000..3e0734f
--- /dev/null
+++ b/src/titlescreen.h
@@ -0,0 +1,115 @@
+/*
+ titlescreen.h
+
+ Splash, background and title screen items.
+ (interface)
+
+ begin : Thur May 4 2000
+ copyright : (C) 2000 by Sam Hart
+ : (C) 2003 by Jesse Andrews
+ email : tuxtype-dev at tux4kids.net
+
+ Modified for use in tuxmath by David Bruce - 2006-2007.
+ email : <davidstuartbruce at gmail.com>
+ <tuxmath-devel at lists.sourceforge.net>
+
+ Also significantly enhanced by Tim Holy - 2007
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ Copyright: See COPYING file that comes with this distribution.
+*/
+
+#ifndef TITLESCREEN_H
+#define TITLESCREEN_H
+
+#define to_upper(c) (((c) >= 'a' && (c) <= 'z') ? (c) -32 : (c))
+#define COL2RGB( col ) SDL_MapRGB( screen->format, col->r, col->g, col->b )
+
+//#define FNLEN 200
+
+
+#include <string.h>
+#include <math.h>
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <dirent.h>
+
+#include "SDL.h"
+#include "SDL_image.h"
+#include "SDL_mixer.h"
+
+#ifndef MACOSX
+//#include "config.h"
+#endif
+
+#include "tuxmath.h"
+#include "loaders.h"
+
+#define MAX_LESSONS 100
+#define MAX_NUM_WORDS 500
+#define MAX_WORD_SIZE 8
+
+//MAX_UPDATES needed for TransWipe() and friends:
+#define MAX_UPDATES 180
+
+#define WAIT_MS 2500
+#define FRAMES_PER_SEC 50
+#define FULL_CIRCLE 140
+
+
+/* trans_wipe() animation constants */
+#define ANIM_FRAMES 30 /* frames to be displayed */
+#define ANIM_FPS 25 /* max fps */
+
+
+extern SDL_Event event;
+
+
+#define MUSIC_FADE_OUT_MS 80
+
+enum {
+ WIPE_BLINDS_VERT,
+ WIPE_BLINDS_HORIZ,
+ WIPE_BLINDS_BOX,
+ RANDOM_WIPE,
+
+ NUM_WIPES
+};
+// End of code from tuxtype's globals.h
+
+/* --- timings for tux blinking --- */
+#define TUX1 115
+#define TUX2 118
+#define TUX3 121
+#define TUX4 124
+#define TUX5 127
+#define TUX6 130
+
+#define EASTER_EGG_MS 5000 //length of time to replace cursor
+#define GOBBLE_ANIM_MS 1000 //duration of the gobbling animation
+
+/********************************/
+/* "Global" Function Prototypes */
+/********************************/
+
+/*In titlescreen.c */
+void TitleScreen(void);
+int RenderTitleScreen(void);
+void DrawTitleScreen(void);
+int HandleTitleScreenEvents(const SDL_Event* evt);
+void HandleTitleScreenAnimations();
+void ShowMessage(int font_size, const char* str1, const char* str2, const char* str3, const char* str4);
+SDL_Surface* current_bkg(); //appropriate background for current video mode
+
+
+/* in audio.c (from tuxtype): */
+void playsound(int snd);
+void audioMusicLoad(char* musicFilename, int repeatQty);
+void audioMusicUnload(void);
+void audioMusicPlay(Mix_Music* musicData, int repeatQty);
+
+#endif //TITLESCREEN_H
diff --git a/src/transtruct.h b/src/transtruct.h
new file mode 100644
index 0000000..1e084f3
--- /dev/null
+++ b/src/transtruct.h
@@ -0,0 +1,39 @@
+/*
+
+ transtruct.h
+
+ Description: contains headers for the data structures
+ that would be transferred between the server and the client
+ during the multiplayer LAN game.
+
+ Author: David Bruce ,Akash Gangil and the TuxMath team, (C) 2009
+
+ Copyright: See COPYING file that comes with this distribution (briefly, GNU GPL version 2 or later)
+
+*/
+#ifndef TRANSTRUCT_H
+#define TRANSTRUCT_H
+
+#define NET_BUF_LEN 512
+#define DEFAULT_PORT 4779
+#define NAME_SIZE 50
+#define MAX_SERVERS 50
+#define MAX_CLIENTS 16
+
+#define MC_USE_NEWARC
+#define MC_FORMULA_LEN 40
+#define MC_ANSWER_LEN 5
+
+#define QUEST_QUEUE_SIZE 10
+
+
+typedef struct _MC_FlashCard {
+ char formula_string[MC_FORMULA_LEN];
+ char answer_string[MC_ANSWER_LEN];
+ int question_id;
+ int answer;
+ int difficulty;
+} MC_FlashCard;
+
+
+#endif
diff --git a/src/tuxmath.c b/src/tuxmath.c
new file mode 100644
index 0000000..386a3a9
--- /dev/null
+++ b/src/tuxmath.c
@@ -0,0 +1,61 @@
+/*
+ tuxmath.c
+
+ Main function for TuxMath
+ Calls functions in other modules (eg, "setup", "title", "game", etc.)
+ as needed.
+
+ Original source code by Bill Kendrick, New Breed Software
+ bill at newbreedsoftware.com
+ http://www.newbreedsoftware.com/
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+
+ August 26, 2001 - August 28, 2001
+
+ Largely rewritten by David Bruce, Karl Ove Hufthammer,
+ and Tim Holy.
+ 2006-2007
+*/
+
+/* (tuxmath.h brings in "gettext.h" and <locale.h> */
+#include "tuxmath.h"
+#include "setup.h"
+#include "titlescreen.h"
+#include "linewrap.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef WIN32
+#define TUXLOCALE "./locale"
+#else
+#define TUXLOCALE LOCALEDIR
+#endif
+
+int main(int argc, char* argv[])
+{
+ const char *s1, *s2, *s3, *s4;
+
+ s1 = setlocale(LC_ALL, "");
+ s2 = bindtextdomain(PACKAGE, TUXLOCALE);
+ s3 = bind_textdomain_codeset(PACKAGE, "UTF-8");
+ s4 = textdomain(PACKAGE);
+
+ setup(argc, argv);
+
+ DEBUGMSG(debug_setup, "PACKAGE = %s\n", PACKAGE);
+ DEBUGMSG(debug_setup, "TUXLOCALE = %s\n", TUXLOCALE);
+ DEBUGMSG(debug_setup, "setlocale(LC_ALL, \"\") returned: %s\n", s1);
+ DEBUGMSG(debug_setup, "bindtextdomain(PACKAGE, TUXLOCALE) returned: %s\n", s2);
+ DEBUGMSG(debug_setup, "bind_textdomain_codeset(PACKAGE, \"UTF-8\") returned: %s\n", s3);
+ DEBUGMSG(debug_setup, "textdomain(PACKAGE) returned: %s\n", s4);
+ DEBUGMSG(debug_setup, "gettext(\"Help\"): %s\n\n", gettext("Help"));
+ DEBUGMSG(debug_setup, "After gettext() call\n");
+
+ TitleScreen(); /* Run the game! */
+ cleanup();
+ return 0;
+}
+
diff --git a/src/tuxmath.h b/src/tuxmath.h
new file mode 100644
index 0000000..e59f28b
--- /dev/null
+++ b/src/tuxmath.h
@@ -0,0 +1,81 @@
+/*
+ tuxmath.h
+
+ For TuxMath
+ Contains global data for configuration of math questions and
+ for general game options, as well as constants and defaults.
+
+ Author: David Bruce <davidstuartbruce at gmail.com>, (C) 2006
+
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.org/
+
+ Added March 2, 2006
+
+ Copyright: See COPYING file that comes with this distribution
+ (briefly - GNU GPL v2 or later)
+*/
+
+
+
+#ifndef TUXMATH_H
+#define TUXMATH_H
+
+#include "globals.h"
+
+#include "SDL.h"
+#include "SDL_image.h"
+
+#ifndef NOSOUND
+#include "SDL_mixer.h"
+#endif
+
+
+#define MAX_SPRITE_FRAMES 30
+
+typedef struct {
+ SDL_Surface *frame[MAX_SPRITE_FRAMES];
+ SDL_Surface *default_img;
+ int num_frames;
+ int cur;
+} sprite;
+
+/* Global data gets 'externed' here: */
+
+/* declared in setup.c */
+/* windowed mode screen size */
+extern int win_res_x;
+extern int win_res_y;
+
+/* full screen size */
+extern int fs_res_x;
+extern int fs_res_y;
+
+extern SDL_Color black;
+extern SDL_Color gray;
+extern SDL_Color dark_blue;
+extern SDL_Color red;
+extern SDL_Color white;
+extern SDL_Color yellow;
+
+extern SDL_Surface* screen; /* declared in setup.c; also used in game.c, options.c, fileops.c, credits.c, titlescreen.c */
+extern SDL_Surface* images[]; /* declared in setup.c, used in same files as screen */
+extern sprite* sprites[];
+extern SDL_Surface* flipped_images[];
+#define NUM_BLENDED_IGLOOS 15
+extern SDL_Surface* blended_igloos[];
+extern int flipped_img_lookup[];
+
+extern int glyph_offset;
+
+
+#ifndef NOSOUND
+extern Mix_Chunk* sounds[]; /* declared in setup.c; also used in fileops.c, playsound.c */
+extern Mix_Music* musics[]; /* declared in setup.c; also used in fileops.c, game.c */
+#endif
+
+
+/* NOTE: default values for math options are now in mathcards.h */
+
+#endif
diff --git a/src/tuxmathadmin.c b/src/tuxmathadmin.c
new file mode 100644
index 0000000..d26c934
--- /dev/null
+++ b/src/tuxmathadmin.c
@@ -0,0 +1,907 @@
+/*
+ tuxmathadmin.c
+
+ Administer user tuxmath accounts: create accounts, clear gold stars, etc.
+
+ by Tim Holy
+ holy at wustl.edu
+
+ Part of "Tux4Kids" Project
+ http://www.tux4kids.com/
+ Subversion repository:
+ https://svn.debian.alioth.org/tux4kids/tuxmath/
+
+
+ December 3, 2007
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+// error.h not always available - e.g. MacOSX, BeOS:
+#ifdef HAVE_ERROR_H
+#include <error.h>
+#else
+#define error(status, errnum, rest...) \
+ fsync(stdout); fprintf(stderr, ## rest); exit(status)
+#endif
+
+// The next two are for mkdir and umask
+#include <sys/types.h>
+#include <sys/stat.h>
+// The next is needed for opendir
+#include <dirent.h>
+// The next is for isspace
+#include <ctype.h>
+// The next is for fsync
+#include <unistd.h>
+
+
+#ifdef BUILD_MINGW32
+#define USER_MENU_ENTRIES_FILENAME "user_menu_entries.txt"
+#define HIGHSCORE_FILENAME "highscores.txt"
+#define GOLDSTAR_FILENAME "goldstars.txt"
+#else
+#define USER_MENU_ENTRIES_FILENAME "user_menu_entries"
+#define HIGHSCORE_FILENAME "highscores"
+#define GOLDSTAR_FILENAME "goldstars"
+#endif
+
+#define PATH_MAX 4096
+#define MAX_USERS 100000
+#define ADMINVERSION "0.1.1"
+
+void display_help(void);
+void usage(int err, char * cmd);
+int extract_variable(FILE *fp, const char *varname, char** value);
+int directory_crawl(const char *path);
+void free_directories(int n);
+void create_homedirs(const char *path,const char *file);
+void config_highscores(const char *path,int level);
+void unconfig_highscores(const char *path);
+void clear_highscores(const char *path);
+void clear_goldstars(const char *path);
+void consolidate_logs(const char *path);
+void clear_logs(const char *path);
+void clear_file(const char *path,const char *filename,const char *invoke_name);
+char* eatwhite(char *buf);
+
+char *directory[MAX_USERS];
+int directory_level[MAX_USERS];
+
+int main(int argc, char *argv[])
+{
+ int i;
+ FILE *fp;
+ DIR *dir;
+
+ int is_creatinghomedirs = 0;
+ int is_confighighscores = 0;
+ int is_unconfighighscores = 0;
+ int is_clearinggoldstars = 0;
+ int is_clearinghighscores = 0;
+ int is_consolidatinglogs = 0;
+ int is_clearinglogs = 0;
+ char *path = NULL;
+ char *file = NULL;
+ int level = 0;
+ int success;
+
+ // Null-out global directory pointers
+ for (i = 0; i < MAX_USERS; i++)
+ directory[i] = NULL;
+
+ if (argc < 2) {
+ display_help();
+ exit(EXIT_FAILURE);
+ }
+
+ // Check global config file for a homedir path (must be uncommented)
+ fp = fopen(DATA_PREFIX "/missions/options", "r");
+ if (fp) {
+ extract_variable(fp,"homedir",&path);
+ free(path);
+ fclose(fp);
+ }
+
+ // Parse the command line options
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0) {
+ display_help();
+ exit(EXIT_SUCCESS);
+ }
+ else if (strcmp(argv[i], "--copyright") == 0 ||
+ strcmp(argv[i], "-c") == 0)
+ {
+ printf(
+ "\ntuxmathadmin version " ADMINVERSION ", Copyright (C) 2007 Tim Holy\n"
+ "This program is free software; you can redistribute it and/or\n"
+ "modify it under the terms of the GNU General Public License\n"
+ "as published by the Free Software Foundation. See COPYING.txt\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"
+ "\n");
+ exit(EXIT_SUCCESS);
+ }
+ else if (strcmp(argv[i], "--usage") == 0 ||
+ strcmp(argv[i], "-u") == 0) {
+ usage(0, argv[0]);
+ exit(EXIT_SUCCESS);
+ }
+ else if (strcmp(argv[i], "--path") == 0) {
+ if (i+1 > argc) {
+ fprintf(stderr, "%s option requires an argument (a directory name)\n", argv[i]);
+ usage(EXIT_FAILURE, argv[0]);
+ }
+ else {
+ path = argv[i+1];
+ dir = opendir(path); // determine whether directory exists
+ if (dir == NULL)
+ error(EXIT_FAILURE,errno,"path:\n %s",path);
+ closedir(dir);
+ i++; // increment so further processing skips over the argument
+ }
+ }
+ else if (strcmp(argv[i], "--level") == 0) {
+ if (i+1 > argc) {
+ fprintf(stderr, "%s option requires an argument (a level number)\n", argv[i]);
+ usage(EXIT_FAILURE, argv[0]);
+ }
+ else {
+ success = sscanf(argv[i+1],"%d",&level);
+ if (!success) {
+ fprintf(stderr,"level: %s is not a number\n",argv[i+1]);
+ exit(EXIT_FAILURE);
+ }
+ i++; // increment so further processing skips over the argument
+ }
+ }
+ else if (strcmp(argv[i], "--createhomedirs") == 0) {
+ is_creatinghomedirs = 1;
+ if (i+1 > argc) {
+ fprintf(stderr, "%s option requires an argument (a file name)\n", argv[i]);
+ usage(EXIT_FAILURE, argv[0]);
+ }
+ else {
+ file = argv[i+1];
+ fp = fopen(file,"r"); // determine whether the file exists
+ if (fp == NULL)
+ error(EXIT_FAILURE,errno,"createhomedirs using:\n %s",file);
+ fclose(fp); // don't read it yet, do that elsewhere
+ i++; // increment so further processing skips over the argument
+ }
+ }
+ else if (strcmp(argv[i], "--confighighscores") == 0) {
+ is_confighighscores = 1;
+ }
+ else if (strcmp(argv[i], "--unconfighighscores") == 0) {
+ is_unconfighighscores = 1;
+ }
+ else if (strcmp(argv[i], "--clearhighscores") == 0) {
+ is_clearinghighscores = 1;
+ }
+ else if (strcmp(argv[i], "--cleargoldstars") == 0) {
+ is_clearinggoldstars = 1;
+ }
+ else if (strcmp(argv[i], "--consolidatelogs") == 0) {
+ is_consolidatinglogs = 1;
+ }
+ else if (strcmp(argv[i], "--clearlogs") == 0) {
+ is_clearinglogs = 1;
+ }
+ else {
+ fprintf(stderr,"Error: option %s not recognized.\n",argv[i]);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ // All operations require a valid path, so check that now
+ if (path == NULL) {
+ fprintf(stderr,"Must have a valid path (either with --path or in the global configuration)\n");
+ usage(EXIT_FAILURE, argv[0]);
+ }
+
+ // Create homedirs
+ if (is_creatinghomedirs) {
+ if (file == NULL) {
+ fprintf(stderr,"Must specify a filename when creating homedirs\n");
+ usage(EXIT_FAILURE, argv[0]);
+ }
+ create_homedirs(path,file);
+ }
+
+ // Configure high scores
+ if (is_confighighscores) {
+ if (level == 0) {
+ fprintf(stderr,"Must specify a level when configuring highscores\n");
+ usage(EXIT_FAILURE, argv[0]);
+ }
+ config_highscores(path,level);
+ }
+
+ // Unconfigure high scores
+ if (is_unconfighighscores) {
+ unconfig_highscores(path);
+ }
+
+ // Clear high scores
+ if (is_clearinghighscores) {
+ clear_highscores(path);
+ }
+
+ // Clear gold stars
+ if (is_clearinggoldstars) {
+ clear_goldstars(path);
+ }
+
+ // Consolidate logs
+ if (is_consolidatinglogs) {
+ consolidate_logs(path);
+ }
+
+ // Clear logs
+ if (is_clearinglogs) {
+ clear_logs(path);
+ }
+
+ return EXIT_SUCCESS;
+}
+
+
+void usage(int err, char * cmd)
+{
+ FILE * f;
+
+ if (err == 0)
+ f = stdout;
+ else
+ f = stderr;
+
+ fprintf(f,
+ "\nUsage: %s {--help | --usage | --copyright}\n"
+ " %s [--path <directory>] --createhomedirs <file>\n"
+ " %s [--level <levelnum>] --confighighscores\n"
+ " %s [--path <directory>] [--clearhighscores] [--cleargoldstars] [--consolidatelogs] [--clearlogs]\n"
+ "\n", cmd, cmd, cmd, cmd);
+
+ exit (err);
+}
+
+void display_help(void)
+{
+ printf("\ntuxmathadmin\n"
+ "This program facilitates administering tuxmath, and is particularly\n"
+ "useful for schools and the like that may have many users.\n\n"
+ "Examples:\n"
+ " tuxmathadmin --path /servervolume/tuxmath_users --createhomedirs users.csv\n"
+ " tuxmathadmin --createhomedirs users.csv\n"
+ " Creates a user directory tree in location /servervolume/tuxmath_users,\n"
+ " according to the structure specified in users.csv. See configure.pdf\n"
+ " for details. The second syntax is applicable if you've defined the\n"
+ " homedir path in the global configuration file.\n\n"
+ " tuxmathadmin --confighighscores --level 3\n"
+ " Sets up sharing of high scores at level 3 of the hierarchy (top is\n"
+ " level 1). If students logging in are presented with a choice of grade,\n"
+ " then classroom, and then user, then level 1 is the school, level 2 is the\n"
+ " grade, level 3 is the classroom, and level 4 is the individual student.\n"
+ " So level 3 would set it up so that all kids in the same classroom would\n"
+ " compete for high scores.\n\n"
+ " tuxmathadmin --unconfighighscores\n"
+ " Removes any existing highscores configuration.\n\n"
+ " tuxmathadmin --clearhighscores\n"
+ " Clears high scores for all users in the location specified by the homedir\n"
+ " setting in the global configuration file.\n\n"
+ " tuxmathadmin --path /servervolume/tuxmath_users/2ndgrade --clearhighscores\n"
+ " Clears the high scores for all users inside the 2ndgrade hierarchy.\n\n"
+ " tuxmathadmin --cleargoldstars\n"
+ " Clears the gold stars for all users.\n\n"
+ " tuxmathadmin --path /servervolume/tuxmath_users/1st\\ grade/Mrs.\\ Smith --cleargoldstars\n"
+ " Clears the gold stars for all users in Mrs. Smith's first grade class.\n\n"
+ " tuxmathadmin --consolidatelogs\n"
+ " Creates consolidated_log.csv files at one level above the lowest level\n"
+ " of the directory hierarchy. These files can be opened with a spreadsheet\n"
+ " program. This may be useful for tracking student progress.\n"
+ " Note also that each student has a personal log.csv file in his/her own\n"
+ " directory.\n\n"
+ " tuxmathadmin --clearlogs\n"
+ " Deletes all log.csv files in the directory hierarchy.\n\n"
+ );
+}
+
+// This function does the work of creating the user directory tree,
+// given the structure specified in the CSV (comma separated value)
+// file "file". "path" is the base directory in which this tree is
+// created.
+void create_homedirs(const char *path,const char *file)
+{
+ FILE *fp,*fpue;
+ char buf[PATH_MAX];
+ char *line_begin;
+ char *line_cur;
+ char *line_cur_end;
+ char *copy_start;
+ char fullpath[PATH_MAX];
+ char **current_dirtree = NULL;
+ int current_depth;
+ int max_depth = 0;
+ int this_line_total_depth;
+ int stop_blanking;
+ int i;
+ int len;
+ mode_t mask;
+
+ fp = fopen(file,"r");
+ if (!fp)
+ error(EXIT_FAILURE,errno,"Error: couldn't open:\n %s for reading",file);
+
+ mask = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH | S_IXUSR | S_IXGRP | S_IXOTH;
+ umask(0x0); // make dirs read/write for everyone
+ while (fgets (buf, PATH_MAX, fp)) {
+ // Skip leading & trailing whitespace
+ line_begin = eatwhite(buf);
+ // Skip comments
+ if ((*line_begin == ';') || (*line_begin == '#'))
+ continue;
+ // Make sure this line isn't blank
+ if (strlen(line_begin) == 0)
+ continue;
+ //printf("Read the line %s\n",line_begin);
+
+ // Count the number of levels by counting the commas + 1
+ this_line_total_depth = 1;
+ line_cur = line_begin;
+ while (!(*line_cur == '\r' || *line_cur == '\n' || *line_cur == '\0')) {
+ if (*line_cur == ',')
+ this_line_total_depth++;
+ line_cur++;
+ }
+
+ // If this is our first time, set up the tree structure
+ if (max_depth == 0) {
+ max_depth = this_line_total_depth;
+ current_dirtree = (char **) malloc(max_depth * sizeof(char*));
+ if (current_dirtree == NULL) {
+ fprintf(stderr,"Error: couldn't allocate memory for directory tree.\n");
+ exit(EXIT_FAILURE);
+ }
+ for (i = 0; i < max_depth; i++) {
+ current_dirtree[i] = (char *) malloc(PATH_MAX * sizeof(char));
+ if (current_dirtree[i] == NULL){
+ fprintf(stderr,"Error: couldn't allocate memory for directory tree.\n");
+ exit(EXIT_FAILURE);
+ } else
+ *(current_dirtree[i]) = '\0'; // initialize with blank string
+ }
+ }
+ else {
+ // Check that this line doesn't change the size of the directory hierarchy
+ if (this_line_total_depth != max_depth) {
+ fprintf(stderr,"Error: line\n '%s'\ncontains a different number of depths to the hierarchy than the previous setting (%d).\n",buf,max_depth);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ // Parse the pathname from back to front. Blank fields at the end
+ // indicate a lack of subdirectories; blank fields at the
+ // beginning indicate that the higher levels of the hierarchy are
+ // not to be changed (just copied "down"). So these have to be
+ // treated differently.
+ *line_cur = '\0'; // replace linefeed with terminal \0
+ line_cur_end = line_cur;
+ current_depth = max_depth-1;
+ stop_blanking = 0;
+ while (current_depth >= 0) {
+ // Back up to the previous comma
+ // Note that line_cur+1 points to the first "real character" of
+ // the string, so don't be bothered that line_cur could get to be
+ // one less than line_begin.
+ while (line_cur >= line_begin && *line_cur != ',')
+ line_cur--;
+ // Determine whether we have a new directory name
+ if (line_cur+1 < line_cur_end) {
+ // We do, copy it over including the terminal \0
+ copy_start = line_cur+1;
+ if (*copy_start == '\"')
+ copy_start++;
+ if (line_cur_end[-1] == '\"') {
+ line_cur_end--;
+ *line_cur_end = '\0';
+ }
+ memcpy(current_dirtree[current_depth],copy_start,line_cur_end-copy_start+1);
+ stop_blanking = 1; // don't clear blank fields in the future
+ }
+ else {
+ // Blank this particular field, because we don't want old
+ // subdirectories hanging around
+ if (!stop_blanking)
+ *(current_dirtree[current_depth]) = '\0';
+ }
+ current_depth--;
+ if (line_cur >= line_begin)
+ *line_cur = '\0'; // end the processing at the comma
+ line_cur_end = line_cur;
+ }
+
+ // Create the full path
+ strncpy(fullpath, path, PATH_MAX);
+ len = strlen(fullpath);
+ if (fullpath[len-1] != '/' && len+1 < PATH_MAX) {
+ fullpath[len] = '/'; // append a slash, if need be
+ fullpath[len+1] = '\0';
+ }
+ for (i = 0; i < max_depth; i++) {
+ len = strlen(fullpath);
+ strncpy(fullpath+len,current_dirtree[i],PATH_MAX-len);
+ len = strlen(fullpath);
+ if (fullpath[len-1] != '/' && len+1 < PATH_MAX) {
+ fullpath[len] = '/'; // append a slash, if need be
+ fullpath[len+1] = '\0';
+ }
+ }
+
+ // Create the directory
+ if (strlen(fullpath) < PATH_MAX) {
+ if (mkdir(fullpath,mask) < 0) {
+ // There was some kind of error, figure out what happened.
+ // Be a little more verbose than the standard library errors.
+ if (errno == EEXIST) {
+ fprintf(stderr,"Warning: %s already exists, continuing.\n",fullpath);
+ }
+ else if (errno == ENAMETOOLONG) {
+ fprintf(stderr,"Error: the directory name:\n %s\nwas too long.\n",fullpath);
+ exit(EXIT_FAILURE);
+ }
+ else if (errno == ENOENT) {
+ fprintf(stderr,"Error: One of the upper-level directories in:\n %s\ndoesn't exist. Check the syntax of your configuration file.\n",fullpath);
+ exit(EXIT_FAILURE);
+ }
+ else if (errno == ENOSPC) {
+ fprintf(stderr,"Error: the device has no room available.\n");
+ exit(EXIT_FAILURE);
+ }
+ else {
+ // Fall back on the standard library for the remaining error
+ // handling
+ fprintf(stderr,"Error: couldn't make directory %s:\nDo you have write permission for this location?\nDo you need to be root/administrator?\n",fullpath);
+ error(EXIT_FAILURE,errno,"error");
+ }
+ }
+ else {
+ fsync(fileno(stderr));
+ fprintf(stdout,"Creating %s\n",fullpath);
+ fsync(fileno(stdout));
+
+ // Append the name to the user_menu_entries file
+ // First we split off the last item in fullpath
+ line_begin = fullpath;
+ len = strlen(line_begin);
+ line_begin[len-1] = '\0'; // replace terminal '/' with \0
+ line_cur = line_begin + len-1;
+ while (line_cur > line_begin && *line_cur != '/')
+ line_cur--;
+ if (line_cur > line_begin) { // as long as not making in the root directory...a bad idea anyway!
+ *line_cur = '\0'; // Split into two strings
+ }
+ else {
+ line_begin = "/";
+ }
+ line_cur++; // line_cur now points to beginning of newest directory
+ strncpy(buf,line_begin,PATH_MAX); // we don't need buf anymore
+ buf[strlen(buf)] = '/'; // append directory separator
+ len = strlen(buf);
+ strncpy(buf+len,USER_MENU_ENTRIES_FILENAME,PATH_MAX-len-strlen(USER_MENU_ENTRIES_FILENAME));
+ // Now do the appending
+ fpue = fopen(buf,"a");
+ if (!fpue) {
+ fprintf(stderr,"Error: can't open file %s for writing.\n",buf);
+ exit(EXIT_FAILURE);
+ }
+ len = fprintf(fpue,"%s\n",line_cur);
+ if (len != strlen(line_cur)+1) {
+ error(EXIT_FAILURE,errno,"Error writing %s to file %s.\n",line_cur,buf);
+ }
+ fclose(fpue);
+ }
+ }
+ else {
+ // The path name was truncated, don't make a corrupt directory
+ fprintf(stderr,"Error: the directory name:\n %s\nwas too long, quitting.\n",fullpath);
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ // Free memory
+ for (i = 0; i < max_depth; i++)
+ free(current_dirtree[i]);
+ if (current_dirtree != NULL)
+ free(current_dirtree);
+}
+
+
+// Creates blank highscores files at the specified level of the
+// directory hierarchy. This will be the level at which highscore
+// competition will occur.
+void config_highscores(const char *path,int level)
+{
+ FILE *fp;
+ char buf[PATH_MAX];
+ int n_dirs;
+ int i;
+ int success;
+
+ n_dirs = directory_crawl(path);
+ success = 0; // This will change to 1 if we find a directory of the
+ // right level
+ for (i = 0; i < n_dirs; i++) {
+ if (directory_level[i] == level) {
+ // Create a blank highscores file in this directory
+ strncpy(buf,directory[i],PATH_MAX);
+ strncat(buf,HIGHSCORE_FILENAME,PATH_MAX-strlen(buf)-1);
+ if (strlen(buf) >= PATH_MAX-1) {
+ fprintf(stderr,"confighighscores: pathname %s truncated, exiting.\n",buf);
+ exit(EXIT_FAILURE);
+ }
+ fp = fopen(buf,"w");
+ if (!fp)
+ error(EXIT_FAILURE,errno,"confighighscores: file:\n %s",buf);
+ // That creates a blank file, which is all we have to do
+ fclose(fp);
+ success = 1;
+ }
+ }
+ if (!success) {
+ fprintf(stderr,"Error: no directories of level %d found!",level);
+ exit(EXIT_FAILURE);
+ }
+
+ free_directories(n_dirs);
+}
+
+// Delete all highscores files in the directory hierarchy
+void unconfig_highscores(const char *path)
+{
+ clear_file(path,HIGHSCORE_FILENAME,"unconfighighscores");
+}
+
+// Replaces all highscores files with blank files anywhere in the
+// directory hierarchy. Replacing it with a blank file, rather than
+// just deleting it, insures that the highscores configuration (in
+// terms of the level at which highscore competition occurs) is not
+// altered.
+void clear_highscores(const char *path)
+{
+ FILE *fp;
+ char buf[PATH_MAX];
+ int n_dirs;
+ int i;
+
+ n_dirs = directory_crawl(path);
+ for (i = 0; i < n_dirs; i++) {
+ // Search for a highscores file in this directory
+ strncpy(buf,directory[i],PATH_MAX);
+ strncat(buf,HIGHSCORE_FILENAME,PATH_MAX-strlen(buf)-1);
+ if (strlen(buf) >= PATH_MAX-1) {
+ fprintf(stderr,"clearhighscores: pathname %s truncated, exiting.\n",buf);
+ exit(EXIT_FAILURE);
+ }
+ fp = fopen(buf,"r");
+ if (fp) {
+ // We found such a file, replace it with a blank one
+ fclose(fp);
+ fp = fopen(buf,"w");
+ if (!fp)
+ error(EXIT_FAILURE,errno,"clearhighscores: file:\n %s",buf);
+ // That creates a blank file, which is all we have to do
+ fclose(fp);
+ }
+ }
+
+ free_directories(n_dirs);
+}
+
+// Delete all goldstars files in the directory hierarchy
+void clear_goldstars(const char *path)
+{
+ clear_file(path,GOLDSTAR_FILENAME,"cleargoldstars");
+}
+
+// Create consolidated log files at the next-to-lowest level of the
+// hierarchy. This is basically performing a "cat" operation on all
+// the log.csv files that are below a given point in a directory
+// hierarchy.
+void consolidate_logs(const char *path)
+{
+ int n_dirs;
+ int max_level;
+ int i;
+ int column_names_written = 0;
+ FILE *fplogwrite, *fplogread, *fpusersread;
+ char buf[PATH_MAX], buf2[PATH_MAX], buf3[PATH_MAX];
+ char *line_begin;
+
+ // Determine the maximum level
+ n_dirs = directory_crawl(path);
+ max_level = 0;
+ for (i = 0; i < n_dirs; i++)
+ if (directory_level[i] > max_level)
+ max_level = directory_level[i];
+
+ // For every directory on the next-to-maximum level,...
+ for (i = 0; i < n_dirs; i++) {
+ if (directory_level[i] != max_level-1)
+ continue;
+
+ // Open the user_menu_entries file, so that we can cycle through
+ // all subdirectories
+ strncpy(buf,directory[i],PATH_MAX);
+ strncat(buf,USER_MENU_ENTRIES_FILENAME,PATH_MAX-strlen(buf)-1);
+ if (strlen(buf) >= PATH_MAX-1) {
+ error(EXIT_FAILURE,0,"consolidatelogs: pathname %s is truncated, exiting.\n",buf);
+ }
+ fpusersread = fopen(buf,"r");
+ if (!fpusersread)
+ error(EXIT_FAILURE,errno,"consolidatelogs: file:\n %s",buf);
+
+ // Create a blank consolidated_log.csv file
+ strncpy(buf,directory[i],PATH_MAX);
+ strncat(buf,"consolidated_log.csv",PATH_MAX-strlen(buf)-1);
+ if (strlen(buf) >= PATH_MAX-1) {
+ error(EXIT_FAILURE,0,"consolidatelogs: pathname %s is truncated, exiting.\n",buf);
+ }
+ fplogwrite = fopen(buf,"w");
+ if (!fplogwrite)
+ error(EXIT_FAILURE,errno,"consolidatelogs: file:\n %s",buf);
+
+ // Loop over different users
+ while (fgets(buf, PATH_MAX, fpusersread)) {
+ // Skip over white space, and especially blank lines
+ line_begin = eatwhite(buf);
+ if (strlen(line_begin) == 0)
+ continue;
+ // Create the full path & filename of the user's log.csv file
+ strncpy(buf2,directory[i],PATH_MAX);
+ strncat(buf2,line_begin,PATH_MAX-strlen(buf2)-1);
+ strncat(buf2,"/log.csv",PATH_MAX-strlen(buf2)-1);
+ fplogread = fopen(buf2,"r");
+ if (fplogread) {
+ // Copy the relevant lines from the user's log.csv file to the
+ // consolidated log file. Make sure only one copy of the
+ // column names is written.
+ while(fgets(buf3, PATH_MAX, fplogread)) {
+ line_begin = eatwhite(buf3);
+ if (strlen(line_begin) == 0)
+ continue;
+ if (strncmp(line_begin,"\"User",5) == 0) {
+ if (!column_names_written) {
+ fprintf(fplogwrite,"%s\n",line_begin);
+ column_names_written = 1;
+ }
+ } else {
+ fprintf(fplogwrite,"%s\n",line_begin);
+ }
+ }
+ fclose(fplogread);
+ }
+ }
+ fclose(fpusersread);
+ fclose(fplogwrite);
+ }
+
+ free_directories(n_dirs);
+}
+
+// Delete all log.csv files in the directory hierarchy
+void clear_logs(const char *path)
+{
+ clear_file(path,"log.csv","clearlogs");
+}
+
+// Deletes a named filetype in the directory hierarchy
+void clear_file(const char *path,const char *filename,const char *invoke_name)
+{
+ FILE *fp;
+ char buf[PATH_MAX];
+ int n_dirs;
+ int i;
+
+ n_dirs = directory_crawl(path);
+ for (i = 0; i < n_dirs; i++) {
+ // Search for a goldstars file in this directory
+ strncpy(buf,directory[i],PATH_MAX);
+ strncat(buf,filename,PATH_MAX-strlen(buf)-1);
+ if (strlen(buf) >= PATH_MAX-1) {
+ fprintf(stderr,"%s: pathname %s truncated, exiting.\n",invoke_name,buf);
+ exit(EXIT_FAILURE);
+ }
+ fp = fopen(buf,"r");
+ if (fp != NULL) {
+ // We found such a file, delete it
+ fclose(fp);
+ if (remove(buf) < 0)
+ error(EXIT_FAILURE,errno,"%s: file:\n %s",invoke_name,buf);
+ }
+ }
+
+ free_directories(n_dirs);
+}
+
+
+// Extracts a single variable from a configuration file and puts the
+// string in the variable "value". Returns 1 on success and 0 on
+// failure.
+int extract_variable(FILE *fp, const char *varname, char** value)
+{
+ char buf[PATH_MAX];
+ char *param_begin;
+ char *tmpvalue;
+
+ rewind(fp); // start at the beginning of the file
+
+ // Read in a line at a time:
+ while (fgets (buf, PATH_MAX, fp)) {
+ param_begin = buf;
+ // Skip leading whitespace
+ while (isspace(*param_begin))
+ param_begin++;
+ // Skip comments
+ if ((*param_begin == ';') || (*param_begin == '#'))
+ continue;
+ // Test whether it matches the variable name
+ if (strncmp(param_begin,varname,strlen(varname)) == 0) {
+ // Find the "=" sign
+ tmpvalue = strchr(param_begin+strlen(varname), '=');
+ if (tmpvalue == NULL)
+ continue;
+ // Skip over the "=" sign
+ tmpvalue++;
+ // Skip whitespace
+ while (isspace(*tmpvalue))
+ tmpvalue++;
+ // Eliminate any whitespace at end
+ param_begin = tmpvalue;
+ tmpvalue = param_begin + strlen(param_begin) - 1;
+ while (tmpvalue > param_begin && isspace(*tmpvalue)) {
+ *tmpvalue = '\0';
+ tmpvalue--;
+ }
+ // Abort if empty
+ if (strlen(param_begin) == 0)
+ continue;
+ // Successful, copy the result
+ *value = strdup(param_begin);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+// Recursively generates a list of all subdirectories listed in
+// user_menu_entries starting from the given path. It populates the
+// global variables "directory" and "directory_level", and returns the
+// total number found. Note this function allocated memory with
+// malloc, so after you're done using these directories you should
+// call free_directories.
+//
+// This function checks to make sure that each directory exists, and
+// exits if not, so you can be sure that all listed directories exist.
+//
+// Note this puts the top level directory (assigned in path) as the
+// first entry (which "main" verifies to be valid), so this function
+// is guaranteed to return at least one directory.
+int directory_crawl(const char *path)
+{
+ int current_length;
+ int previous_length;
+ int current_level;
+ FILE *fp;
+ char buf[PATH_MAX];
+ char fullpath[PATH_MAX];
+ int isdone;
+ int i;
+ char *line_begin;
+ DIR *dir;
+
+ current_length = 1;
+ directory[0] = (char*) malloc((strlen(path)+2)*sizeof(char));
+ if (directory[0] == NULL) {
+ fprintf(stderr,"Memory allocation error in directory_crawl.\n");
+ exit(EXIT_FAILURE);
+ }
+ strcpy(directory[0],path);
+ // Append '/' if necessary
+ if (directory[0][strlen(path)-1] != '/')
+ strcat(directory[0],"/");
+ current_level = 1;
+ directory_level[0] = current_level;
+
+ isdone = 0;
+ while (!isdone) {
+ previous_length = current_length;
+ isdone = 1; // We'll be finished if we don't find any new user_menu_entries files
+ for (i = 0; i < previous_length; i++) {
+ // Just parse directories of the most recently-added level
+ // (we've already done the work for previous levels)
+ if (directory_level[i] == current_level) {
+ // Read the user_menu_entries file, if it exists
+ // Note that previous items already have "/" appended, no need
+ // to worry about that here.
+ strncpy(fullpath,directory[i],PATH_MAX);
+ strncat(fullpath,USER_MENU_ENTRIES_FILENAME,PATH_MAX-strlen(fullpath)-1);
+ fp = fopen(fullpath,"r");
+ if (fp != NULL) {
+ // We found the user_menu_entries file, read it and add directories
+ while (fgets (buf, PATH_MAX, fp)) {
+ if (current_length >= MAX_USERS) {
+ fprintf(stderr,"Error: maximum number of users exceeded.");
+ exit(EXIT_FAILURE);
+ }
+ // Skip over leading & trailing white space, and
+ // especially blank lines
+ line_begin = eatwhite(buf);
+ if (strlen(line_begin) == 0)
+ continue;
+
+ directory[current_length] = (char *) malloc((strlen(directory[i])+strlen(line_begin)+2)*sizeof(char));
+ if (directory[current_length] == NULL) {
+ fprintf(stderr,"Memory allocation error in directory_crawl.\n");
+ exit(EXIT_FAILURE);
+ }
+ // Append each new directory to the list
+ strcpy(directory[current_length],directory[i]);
+ strcat(directory[current_length],line_begin);
+ strcat(directory[current_length],"/");
+ directory_level[current_length] = current_level+1;
+ // Check to make sure it's valid
+ dir = opendir(directory[current_length]);
+ if (dir == NULL)
+ error(EXIT_FAILURE,errno,"directory:\n %s",directory[current_length]);
+ closedir(dir);
+ current_length++;
+ }
+ isdone = 0; // We know we need to check the subdirectories
+ fclose(fp);
+ } // end of: if (fp != NULL)
+ } // end of: if (directory_level[i] == current_level)
+ } // end of: loop over previous directories
+ current_level++; // We're all done parsing this level, move on
+ } // end of: while (!isdone)
+
+ return current_length;
+}
+
+void free_directories(int n)
+{
+ int i;
+
+ for (i = 0; i < n; i++) {
+ free(directory[i]);
+ directory[i] = NULL;
+ }
+}
+
+// Modify a string to eliminate leading and trailing
+// whitespace. Returns a pointer to the first non-space character.
+// Note the input string is modified in-place!
+char* eatwhite(char *buf)
+{
+ char *line_begin, *line_end;
+
+ // Eliminate leading whitespace
+ line_begin = buf;
+ while (isspace(*line_begin))
+ line_begin++;
+ // Eliminate trailing whitespace, especially the \n at the end of the line
+ line_end = line_begin+strlen(line_begin)-1;
+ while (line_end >= line_begin && isspace(*line_end)) {
+ *line_end = '\0';
+ line_end--;
+ }
+
+ return line_begin;
+}
diff --git a/src/tuxmathrc.rc b/src/tuxmathrc.rc
new file mode 100644
index 0000000..8d5fa3f
--- /dev/null
+++ b/src/tuxmathrc.rc
@@ -0,0 +1,2 @@
+#define TUXMATH_ICON 104
+TUXMATH_ICON ICON "../data/images/tuxmath.ico"
diff --git a/stamp-h.in b/stamp-h.in
new file mode 100644
index 0000000..e69de29
diff --git a/tmlin.sh b/tmlin.sh
new file mode 100755
index 0000000..7a595b8
--- /dev/null
+++ b/tmlin.sh
@@ -0,0 +1,10 @@
+# An 'all-in-one' script to build and install on the Linux host:
+
+make clean
+make distclean
+./autogen.sh
+./configure
+make
+make install
+
+
diff --git a/tuxmath.desktop b/tuxmath.desktop
new file mode 100644
index 0000000..0e958ba
--- /dev/null
+++ b/tuxmath.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Name=Tux Math
+GenericName=Educational math game
+GenericName[de]=Mathe Spiel
+GenericName[ru]=ÐбÑазоваÑелÑÐ½Ð°Ñ Ð¸Ð³Ñа
+GenericName[fr]=Jeu mathématique
+Comment=Tux Math - Learn math with Tux!
+Comment[pl]=Tux Math - Ucz siê matematyki z Tuxem!
+Comment[de]=Tux Math - Lerne Mathe mit Tux!
+Comment[ru]=ÐбÑÑение аÑиÑмеÑике Ñ Ð¿Ð¸Ð½Ð³Ð²Ð¸Ð½Ð¾Ð¼ в главной Ñоли
+Comment[fr]=Tux Math - Apprenez les mathématiques avec Tux!
+Exec=tuxmath
+Icon=tuxmath
+Type=Application
+Terminal=false
+Categories=Education;Math;
+## X-SuSE-translate=false
+X-Ubuntu-Gettext-Domain=tuxmath
diff --git a/tuxmath.sh b/tuxmath.sh
new file mode 100755
index 0000000..994011f
--- /dev/null
+++ b/tuxmath.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+DIR="`dirname \"$0\"`/.."
+
+BIN="$DIR/bin"
+LIB="$DIR/lib"
+
+DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:$LIB"
+export DYLD_LIBRARY_PATH
+
+exec "$BIN/tuxmath"
diff --git a/tuxmath.spec.in b/tuxmath.spec.in
new file mode 100644
index 0000000..b04bfba
--- /dev/null
+++ b/tuxmath.spec.in
@@ -0,0 +1,144 @@
+## tuxmath.spec.in - process with configure to substitute in PACKAGE
+## VERSION strings
+#
+# spec file for package tuxmath
+#
+# This file and all modifications and additions to the pristine
+# package are under the same license as the package itself.
+#
+
+
+Name: @PACKAGE@
+Obsoletes: tuxmath = 2001.09.07
+Obsoletes: tuxmath_preview <= @VERSION@
+Provides: tuxmath_preview = @VERSION@
+%define realname @PACKAGE@
+%define progname @PACKAGE@
+Summary: Tux Math - educational math game
+Version: @VERSION@
+Release: 1
+License: GPL
+Group: Amusements/Teaching/Mathematics
+Url: http://tux4kids.alioth.debian.org/
+Vendor: openSUSE-Education
+
+BuildRequires: SDL_image-devel >= 1.2.2
+#BuildRequires: SDL_ttf-devel > 2.0.8
+BuildRequires: SDL-devel
+BuildRequires: SDL_mixer-devel
+BuildRequires: SDL_Pango-devel
+BuildRequires: ImageMagick
+
+%if 0%{?suse_version}
+BuildRequires: update-desktop-files
+BuildRequires: fdupes
+%endif
+
+%if 0%{?fedora_version}
+BuildRequires: desktop-file-utils
+%endif
+
+%if 0%{?mandriva_version}
+BuildRequires: desktop-file-utils
+Requires(post): desktop-file-utils
+Requires(postun): desktop-file-utils
+%endif
+%if 0%{?mandriva_version} >= 2009
+BuildRequires: pulseaudio-esound-compat
+%endif
+
+Source0: %realname-%version.tar.bz2
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%description
+An educational math tutorial game starring Tux, the Linux Penguin.
+
+Based on the classic arcade game "Missile Command," Tux must defend his cities.
+In this case, though, he must do it by solving math problems.
+
+Authors:
+========
+ Bill Kendrick
+ David Bruce
+ Tim Holy
+ Brendan Luchen
+ Jesus Mager
+ Sam 'Criswell' Hart
+ Larry Ewing
+
+
+
+# prep section: ---------------------------------------------------------
+
+%prep
+%setup -q -n %realname-%version
+rm -rf $(find . -type d -name CVS)
+rm -rf $(find . -type d -name .svn)
+rm -rf $(find . -type d -name .xvpics)
+
+
+
+# build section: ---------------------------------------------------------
+
+%build
+%configure --disable-rpath
+make %{?jobs:-j %jobs}
+
+
+
+# install section: ---------------------------------------------------------
+
+%install
+install -d %buildroot/{%_bindir,%_datadir/pixmaps,%_datadir/applications,%_datadir/%progname,%_defaultdocdir/%progname}
+make DESTDIR=%{buildroot} install
+install -m 644 data/images/icons/icon.png %buildroot%_datadir/pixmaps/%progname.png
+
+%if 0%{?suse_version}
+# handle special docdir path
+mv %buildroot/%_datadir/doc/%progname/* %buildroot/%_defaultdocdir/%progname/
+rm -rf %buildroot/%_datadir/doc/%progname
+# install desktop file
+%suse_update_desktop_file -i %progname Education Math
+%fdupes -s %buildroot
+%endif
+%if 0%{?fedora_version}
+# install desktop file
+desktop-file-install --vendor="%{vendor}" \
+ --dir=%buildroot/%_datadir/applications \
+ %progname.desktop
+%endif
+%if 0%{?mandriva_version}
+desktop-file-install --vendor="%{vendor}" \
+ --dir=%buildroot/%_datadir/applications \
+ %progname.desktop
+%endif
+# remove invalid locale directories
+rm -rf %buildroot/%{_datadir}/locale/en@*
+%find_lang %progname
+
+%if 0%{?mandriva_version}
+%post
+%{update_menus}
+
+%postun
+%{clean_menus}
+%endif
+
+%clean
+rm -rf %buildroot
+
+
+
+# files section: ---------------------------------------------------------
+
+%files -f %progname.lang
+
+%defattr(-,root,root)
+%doc %_defaultdocdir/%progname
+%_bindir/*
+%_datadir/pixmaps/*
+%_datadir/applications/*
+%_datadir/%progname
+
+%changelog
diff --git a/tuxmath_preview.spec.in b/tuxmath_preview.spec.in
new file mode 100644
index 0000000..799c3c6
--- /dev/null
+++ b/tuxmath_preview.spec.in
@@ -0,0 +1,150 @@
+## tuxmath_preview.spec.in - process with configure to substitute in PACKAGE
+## VERSION strings
+#
+# spec file for preview packages for tuxmath
+#
+# Note: this spec file is intended to produce RPM packages with
+# "tuxmath_preview" rather than "tuxmath" as the package name, but
+# otherwise identical for a given *.bzip2 source archive.
+#
+# It is intended for preview packaging of code that is under active
+# development prior to the next general release.
+#
+# This file and all modifications and additions to the pristine
+# package are under the same license as the package itself.
+#
+
+
+Name: @PACKAGE at _preview
+Obsoletes: tuxmath = 2001.09.07
+Obsoletes: tuxmath <= @VERSION@
+%define realname @PACKAGE@
+%define progname @PACKAGE@
+Summary: Tux Math - educational math game
+Version: @VERSION@
+Release: 1
+License: GPL
+Group: Amusements/Teaching/Mathematics
+Url: http://tux4kids.alioth.debian.org/
+Vendor: openSUSE-Education
+
+BuildRequires: SDL_image-devel >= 1.2.2
+#BuildRequires: SDL_ttf-devel > 2.0.8
+BuildRequires: SDL-devel
+BuildRequires: SDL_mixer-devel
+BuildRequires: SDL_Pango-devel
+BuildRequires: ImageMagick
+
+%if 0%{?suse_version}
+BuildRequires: update-desktop-files
+BuildRequires: fdupes
+%endif
+
+%if 0%{?fedora_version}
+BuildRequires: desktop-file-utils
+%endif
+
+%if 0%{?mandriva_version}
+BuildRequires: desktop-file-utils
+Requires(post): desktop-file-utils
+Requires(postun): desktop-file-utils
+%endif
+%if 0%{?mandriva_version} >= 2009
+BuildRequires: pulseaudio-esound-compat
+%endif
+
+Source0: %realname-%version.tar.bz2
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
+
+%description
+An educational math tutorial game starring Tux, the Linux Penguin.
+
+Based on the classic arcade game "Missile Command," Tux must defend his cities.
+In this case, though, he must do it by solving math problems.
+
+Authors:
+========
+ Bill Kendrick
+ David Bruce
+ Tim Holy
+ Brendan Luchen
+ Jesus Mager
+ Sam 'Criswell' Hart
+ Larry Ewing
+
+
+
+# prep section: ---------------------------------------------------------
+
+%prep
+%setup -q -n %realname-%version
+rm -rf $(find . -type d -name CVS)
+rm -rf $(find . -type d -name .svn)
+rm -rf $(find . -type d -name .xvpics)
+
+
+
+# build section: ---------------------------------------------------------
+
+%build
+%configure --disable-rpath
+make %{?jobs:-j %jobs}
+
+
+
+# install section: ---------------------------------------------------------
+
+%install
+install -d %buildroot/{%_bindir,%_datadir/pixmaps,%_datadir/applications,%_datadir/%progname,%_defaultdocdir/%progname}
+make DESTDIR=%{buildroot} install
+install -m 644 data/images/icons/icon.png %buildroot%_datadir/pixmaps/%progname.png
+
+%if 0%{?suse_version}
+# handle special docdir path
+mv %buildroot/%_datadir/doc/%progname/* %buildroot/%_defaultdocdir/%progname/
+rm -rf %buildroot/%_datadir/doc/%progname
+# install desktop file
+%suse_update_desktop_file -i %progname Education Math
+%fdupes -s %buildroot
+%endif
+%if 0%{?fedora_version}
+# install desktop file
+desktop-file-install --vendor="%{vendor}" \
+ --dir=%buildroot/%_datadir/applications \
+ %progname.desktop
+%endif
+%if 0%{?mandriva_version}
+desktop-file-install --vendor="%{vendor}" \
+ --dir=%buildroot/%_datadir/applications \
+ %progname.desktop
+%endif
+# remove invalid locale directories
+rm -rf %buildroot/%{_datadir}/locale/en@*
+%find_lang %progname
+
+%if 0%{?mandriva_version}
+%post
+%{update_menus}
+
+%postun
+%{clean_menus}
+%endif
+
+%clean
+rm -rf %buildroot
+
+
+
+# files section: ---------------------------------------------------------
+
+%files -f %progname.lang
+
+%defattr(-,root,root)
+%doc %_defaultdocdir/%progname
+%_bindir/*
+%_datadir/pixmaps/*
+%_datadir/applications/*
+%_datadir/%progname
+
+%changelog
--
tuxhistory - Educational history game
More information about the Tux4kids-commits
mailing list